單片機(jī)仿真器的作用
答:虛擬軟件仿真,不能看到驅(qū)動(dòng)硬件的實(shí)際效果。
本文引用地址:http://butianyuan.cn/article/201611/315944.htm問(wèn)2.仿真器接電腦,仿真器再通過(guò)仿真頭接目標(biāo)板,然后程序就能在線仿真?
答:是的,連接好了以后,打開(kāi)51開(kāi)發(fā)軟件平臺(tái)KEIL,通過(guò)在KEIL中修改你的程序中不滿意的部分,仿真器會(huì)在軟件平臺(tái)KEIL的控制下時(shí)時(shí)聯(lián)動(dòng)。然后通過(guò)單步運(yùn)行程序或者讓程序運(yùn)行到指定的程序行停止,等等調(diào)試方法調(diào)試你的程序,直到你滿意為止,全部過(guò)程硬件都會(huì)和程序同步運(yùn)行,所見(jiàn)即所得??梢詷O大地提高效率,不用再反復(fù)的用編程器向51芯片中燒錄程序。
問(wèn)3.仿真器的本質(zhì)是什么?
答:仿真器就是通過(guò)仿真頭用軟件來(lái)代替了在目標(biāo)板上的51芯片,關(guān)鍵是不用反復(fù)的燒寫(xiě),不滿意隨時(shí)可以改,可以單步運(yùn)行,指定端點(diǎn)停止等等,調(diào)試方面極為方便。
問(wèn)4.操作仿真器的軟件KEIL都支持那些編程語(yǔ)言?
答:同時(shí)支持匯編語(yǔ)言和C語(yǔ)言。
問(wèn)5.如果我不會(huì)使用KEIL怎么辦?
KEIL是德國(guó)開(kāi)發(fā)的一個(gè)51單片機(jī)開(kāi)發(fā)軟件平臺(tái),最開(kāi)始只是一個(gè)支持C語(yǔ)言和匯編語(yǔ)言的編譯器軟件。后來(lái)隨著開(kāi)發(fā)人員的不斷努力以及版本的不斷升級(jí),使它已經(jīng)成為了一個(gè)重要的單片機(jī)開(kāi)發(fā)平臺(tái),不過(guò)KEIL的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開(kāi)發(fā)的優(yōu)秀程序都是在KEIL的平臺(tái)上編寫(xiě)出來(lái)的。可以說(shuō)它是一個(gè)比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠(yuǎn)遠(yuǎn)超過(guò)偉福等廠家軟件用戶群,操作有不懂的地方只要找相關(guān)的書(shū)看看,到相關(guān)的單片機(jī)技術(shù)論壇問(wèn)問(wèn),很快就可以掌握它的基本使用了。
問(wèn)6.仿真器是不是適合初學(xué)者使用?
答:仿真器適合初學(xué)者使用,這是肯定的,使用它學(xué)習(xí)單片機(jī)自然事半功倍,但是首先必須有一定理論基礎(chǔ)。個(gè)人認(rèn)為它不適合沒(méi)有任何51單片機(jī)基礎(chǔ)的初學(xué)者,比較適合有一定理論基礎(chǔ)和實(shí)踐經(jīng)驗(yàn)的用戶,也適合渴望開(kāi)發(fā)復(fù)雜程序的有經(jīng)驗(yàn)用戶??梢哉f(shuō)如果沒(méi)有單步運(yùn)行調(diào)試等手段來(lái)仿真,很難開(kāi)發(fā)出復(fù)雜的程序,在早些年因?yàn)?1芯片的存儲(chǔ)器是EPROM的,反復(fù)燒寫(xiě)的壽命非常有限,開(kāi)發(fā)程序只能靠專業(yè)的昂貴的專業(yè)仿真器來(lái)完成,排除了所有錯(cuò)誤之后才能寫(xiě)入單片機(jī)芯片中。有了內(nèi)部含有閃存的單片機(jī)之后,才使反復(fù)燒寫(xiě)試驗(yàn)成為可能,但是也還是無(wú)法實(shí)現(xiàn)象仿真器那樣的時(shí)時(shí)調(diào)試。在公司進(jìn)行單片機(jī)程序開(kāi)發(fā)的工程師都是使用仿真器,對(duì)于想真真掌握單片機(jī)開(kāi)發(fā)的人,最終也一定會(huì)熟練的使用仿真器。
問(wèn)7.仿真器的原理是什么?
答:仿真器內(nèi)部的P口等硬件資源和51系列單片機(jī)基本是完全兼容的。仿真主控程序被存儲(chǔ)在仿真器芯片特殊的指定空間內(nèi),有一段特殊的地址段用來(lái)存儲(chǔ)仿真主控程序,仿真主控程序就象一臺(tái)電腦的操作系統(tǒng)一樣控制仿真器的正確運(yùn)轉(zhuǎn)。
仿真器和電腦的上位機(jī)軟件(即KEIL)是通過(guò)串口相連的,通過(guò)仿真器芯片的RxD和TxD端口和電腦的串行口做聯(lián)機(jī)通訊,RxD負(fù)責(zé)接收電腦主機(jī)發(fā)來(lái)的控制數(shù)據(jù),TxD負(fù)責(zé)給電腦主機(jī)發(fā)送反饋信息??刂浦噶钣蒏EIL發(fā)出,由仿真器內(nèi)部的仿真主控程序負(fù)責(zé)執(zhí)行接收到的數(shù)據(jù),并且進(jìn)行正確的處理。進(jìn)而驅(qū)動(dòng)相應(yīng)的硬件工作,這其中也包括把接收到的BIN或者其他格式的程序存放到仿真器芯片內(nèi)部用來(lái)存儲(chǔ)可執(zhí)行程序的存儲(chǔ)單元(這個(gè)過(guò)程和把程序燒寫(xiě)到51芯片里面是類似的,只是仿真器的擦寫(xiě)是以覆蓋形式來(lái)做的),這樣就實(shí)現(xiàn)了類似編程器反復(fù)燒寫(xiě)來(lái)試驗(yàn)的功能!不同的是,通過(guò)仿真主控程序可以做到讓這些目標(biāo)程序,做特定的運(yùn)行,比如單步、指定端點(diǎn)、指定地址的等,并且通過(guò)KEIL可是時(shí)時(shí)觀察到單片機(jī)內(nèi)部各個(gè)存儲(chǔ)單元的狀態(tài)。仿真器和電腦主機(jī)聯(lián)機(jī)后就象是兩個(gè)精密的齒輪互相咬合的關(guān)系,一旦強(qiáng)行中斷這種聯(lián)系(比如強(qiáng)行給仿真器手動(dòng)復(fù)位或者拔去聯(lián)機(jī)線等),電腦就會(huì)提示聯(lián)機(jī)出現(xiàn)問(wèn)題,這也體現(xiàn)了硬件仿真的鮮明特性,即“所見(jiàn)即所得”。這些都是編程器無(wú)法做到的。這些給調(diào)試、修改、以及生成最終程序創(chuàng)造了比較有力的保證,從而實(shí)現(xiàn)較高的效率。
問(wèn)8.為什么商品化的仿真器非常昂貴?
答:因?yàn)樯唐坊姆抡嫫饔布矫嬗玫膹膹S家定制的極為特殊的芯片,操作軟件是特殊開(kāi)發(fā)的,這些都是開(kāi)發(fā)成本,不過(guò)一個(gè)這樣的產(chǎn)品(即使包括機(jī)殼)成本一般也不會(huì)超過(guò)200元,市場(chǎng)售價(jià)一般在1200~3000左右。因?yàn)閷I(yè)廠家的理念是:“對(duì)于比較單一垂直的領(lǐng)域,由于銷量不大,利潤(rùn)即使超過(guò)1000%也是很正常的。”
評(píng)論