大神手把手教你STC單片機(jī)片上仿真法
什么是仿真?
本文引用地址:http://m.butianyuan.cn/article/201808/385973.htm我們舉一個汽車設(shè)計(jì)的例子來說明一下吧。大家一定在影視劇或電視廣告中看過這樣的鏡頭:在一個大大的廠房里,一輛嶄新的小汽車正在以很高的速度撞向一面厚厚的水泥墻。坐在車上的兩個人面不改色心不跳,一動不動地等待著死亡。他們?yōu)楹稳绱死潇o,因?yàn)?ldquo;他們”是實(shí)驗(yàn)用的假人。說時(shí)遲那時(shí)快,汽車已經(jīng)撞到了墻上,巨大的聲響夾雜著飛濺的碎片充滿了空間,汽車在撞擊中破了相。旁邊的幾臺高速攝像機(jī)記錄下了這一切。這是一次真實(shí)的撞擊實(shí)驗(yàn),目的是為了得出這款車型在出現(xiàn)意外時(shí),是否能保住人的小命。安裝在假人身上的傳感器所得出的數(shù)據(jù),能幫助工程師們發(fā)現(xiàn)安全隱患,改進(jìn)汽車的設(shè)計(jì)??梢哉f,以上就是一次仿真,一輛真車和兩個假人有計(jì)劃地撞墻,模擬了真實(shí)車禍情況。仿真讓實(shí)驗(yàn)變得可能,因?yàn)闆]有一個真人愿意坐在車?yán)飬⑴c這場實(shí)驗(yàn)。當(dāng)真實(shí)情況很難在開發(fā)時(shí)再現(xiàn)時(shí),仿真就可以幫助開發(fā)者完成必要的實(shí)驗(yàn)。這就如同單片機(jī)開發(fā)中,我們在自己的實(shí)驗(yàn)板上去開發(fā)一款產(chǎn)品一樣。當(dāng)我們設(shè)計(jì)好了一個產(chǎn)品的功能,我們要在實(shí)驗(yàn)板上模擬用戶的操作,看看操作是否正常,產(chǎn)品的反應(yīng)速度和穩(wěn)定性如何。這些都是在仿真——模仿用戶使用的真實(shí)情況。
而本文要介紹的是僅使用單片機(jī)的“片上仿真”。片上仿真是基于單片機(jī)本身的仿真,也就是說只要一片單片機(jī),不需要額外購買別的東西,就可以實(shí)現(xiàn)仿真。對于單片機(jī)愛好者來說,片上仿真是最高性價(jià)比的選擇,你甚至不需要修改電路,用給單片機(jī)下載HEX文件的電路就能實(shí)現(xiàn)仿真。各大單片機(jī)公司都已開發(fā)出不同性能的支持片上仿真的單片機(jī)。其中STC公司有一款性能很不錯的片上仿真單片機(jī)——IAP15F2K61S2。下面我就給大家介紹一下片上仿真環(huán)境的建立,還有進(jìn)入仿真界面的操作流程,最后以一個實(shí)例告訴大家如何進(jìn)行仿真調(diào)試。這是一些非常簡單的操作,只要按照本文的步驟操作,就一定能順利學(xué)會。
仿真電路連接
建立單片機(jī)仿真環(huán)境,最主要的工作是設(shè)置軟件的參數(shù),而硬件電路的連接是很簡單的事。如果你已經(jīng)制作出了ISP下載線,并成功地給單片機(jī)寫入了HEX文件。那么從某種意義上講,你已經(jīng)完成了單片機(jī)仿真的硬件電路連接。也就是說,單片機(jī)仿真電路與ISP下載電路是完全相同的。如果是這樣,我為什么還要花時(shí)間來講仿真電路的連接呢?因?yàn)殡m然電路連接相同,但單片機(jī)不同了。所以我們不能使用STC12C5A60S2和STC12C4052AD來仿真,因?yàn)檫@兩款芯片不帶仿真功能。而唯一帶仿真功能的單片機(jī)IAP15F2K61S2是最新發(fā)布的15系列單片機(jī),它有著不相同的引腳定義。我們只要熟悉了它的新引腳定義,再來制作電路就不難了。
首先最明顯的是引腳定義的不同,雖然IAP15F2K61S2也是40腳的單片機(jī),但如果把它直接插在我們做好的ISP下載線里,你會發(fā)現(xiàn)單片機(jī)是不工作的。不僅IO接口不兼容,連VCC電源輸入的位置也不同。接下來是外部晶體的使用, IAP15F2K61S2單片機(jī)不需要接外部晶體,因?yàn)樗膬?nèi)部集成了一個高精度的時(shí)鐘源,可以用軟件設(shè)置成5~30MHz的時(shí)鐘頻率。這一改進(jìn)對我們使用者的意義是:不論我們做何應(yīng)用,都不需要外接晶體的電路了。只要連接VCC和GND,單片機(jī)就可以工作。再連接TXD和RXD,單片機(jī)就能ISP下載和仿真了。
可仿真單片機(jī)IAP15F2K61S2
下載/仿真電路原理圖
新建仿真環(huán)境
硬件電路連接完畢后,下面開始步驟較多的軟件設(shè)置,請大家一定按我介紹的步驟仔細(xì)進(jìn)行。
第1步:下載到STC-ISP V6.36軟件,目前只有V6.36及以上版本支持仿真功能。
第2步:點(diǎn)擊軟件右側(cè)的“KEIL關(guān)聯(lián)設(shè)置”選項(xiàng)卡。仿真相關(guān)的操作都在這個選項(xiàng)卡里完成。
第3步:接著點(diǎn)擊“添加MCU型號到Keil中”。這個操作效果是把STC芯片的仿真程序與KEIL軟件綁定在一起,這樣KEIL軟件中的仿真功能才能操作STC單片機(jī)硬件。
第4步:在彈出的“瀏覽文件夾”窗口中找到KEIL軟件的安裝目錄,并點(diǎn)擊“確定”(默認(rèn)是在C:Keil中)。
第5步:點(diǎn)擊“將IAP15F2K61S2設(shè)置為2.0版仿真芯片”,在此處可以仿真的芯片有兩款:IAP15F2K61S2和IAP15L2K61S2,前一款是F表示5V電源電壓的芯片,后一款是L表示3.3V電源電壓的芯片。我們以5V芯片為例。
第6步:按下第5步的按鈕后,按鍵變灰,下方狀態(tài)窗口出現(xiàn)“正在檢測目標(biāo)單片機(jī)……”。這個提示的意思是你需要給單片機(jī)重新上電了,和之前給單片機(jī)寫入HEX文件的方法相同。此時(shí)在硬件上讓單片機(jī)冷啟動,即會出現(xiàn)下載程序的提示,最后顯示下載完成。大家可能不明白了,不是要仿真嗎,為什么還要下載程序呢?其實(shí)這次下載的是仿真所需要的仿真處理程序,而不是我們要運(yùn)行的HEX程序文件。仿真處理程序的功能是接收KEIL軟件通過串口發(fā)出的仿真指令,再用這個指令去操控單片機(jī)寄存器和IO接口什么的。由此可見仿真處理程序是必不可少的。
評論