仿真器在單片機(jī)多路開(kāi)發(fā)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
單片機(jī)在線仿真技術(shù)的出現(xiàn),極大地提高了開(kāi)發(fā)單片機(jī)應(yīng)用系統(tǒng)、仿真調(diào)試的效率和可靠性,減輕了開(kāi)發(fā)者的勞動(dòng)強(qiáng) 一般地,單片機(jī)開(kāi)發(fā)采用“宿主機(jī)/目標(biāo)機(jī)”方式(如圖1所示)。首先,利用宿主機(jī)上豐富的資源及良好的開(kāi)發(fā)環(huán)境開(kāi)發(fā)和仿真調(diào)試目標(biāo)機(jī)上的軟件。然后,通過(guò)串行口將編譯生成的目標(biāo)代碼傳輸下載到目標(biāo)板上,并用交叉調(diào)試器在調(diào)試軟件支持下進(jìn)行實(shí)時(shí)分析和在線仿真調(diào)試。最后,目標(biāo)板在特定環(huán)境下編程脫機(jī)運(yùn)行。 這種一對(duì)一式的開(kāi)發(fā),無(wú)疑是很好的開(kāi)發(fā)方式,但它的問(wèn)題是設(shè)備利用率低下,這在單片機(jī)實(shí)驗(yàn)室顯得尤其突出。所以在設(shè)備緊缺情況下,開(kāi)發(fā)一套輔助設(shè)備來(lái)提高仿真開(kāi)發(fā)設(shè)備的利用率是非常有必要的。 性能要求 在現(xiàn)有單片機(jī)仿真設(shè)備的基礎(chǔ)上,設(shè)計(jì)一個(gè)多路開(kāi)發(fā)應(yīng)用裝置,實(shí)現(xiàn)一套可供幾個(gè)用戶(hù)輪流開(kāi)發(fā)仿真的單片機(jī)仿真器。這樣幾人一組共用實(shí)驗(yàn)設(shè)備,既能提高設(shè)備利用率,又能形成良好的開(kāi)發(fā)仿真氛圍,更重要的是降低設(shè)備重復(fù)投入?! ”疚年愂龅脑O(shè)計(jì)實(shí)現(xiàn)了一套單片機(jī)仿真器的多路開(kāi)發(fā)應(yīng)用板,很好地滿(mǎn)足了以上要求,并且在實(shí)踐過(guò)程中取得了較好的效果。其原理如圖2所示?! 《嗦烽_(kāi)發(fā)器的電路設(shè)計(jì) 整機(jī)是通過(guò)一個(gè)控制電路來(lái)實(shí)現(xiàn)多個(gè)用戶(hù)主機(jī)對(duì)一臺(tái)單片機(jī)仿真器的輪流地一對(duì)一的仿真使用。這里選用了at89c2051單片機(jī)芯片、74ls04反相器和電磁繼電器為主要部件,來(lái)組成一個(gè)利用單片機(jī)自動(dòng)控制的選通電路,來(lái)正確地完成每個(gè)用戶(hù)主機(jī)與單片機(jī)仿真器之間串行口的數(shù)據(jù)通信。最終目的是設(shè)計(jì)一個(gè)單片機(jī)仿真器的多路復(fù)用系統(tǒng)板,以實(shí)現(xiàn)4個(gè)用戶(hù)共同使用一個(gè)仿真器?! t89c2051是一個(gè)低電壓,高性能cmos 8位單片機(jī),片內(nèi)含2kb的可反復(fù)擦寫(xiě)的只讀flash程序存儲(chǔ)器和128 字節(jié)的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和flash存儲(chǔ)單元,功能強(qiáng)大at89c2051單片機(jī)可提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合?! ∷挥?0個(gè)引腳,15個(gè)雙向輸入/輸出(i/o)端口,其中p1是一個(gè)完整的8位雙向i/o口,兩個(gè)外中斷口,兩個(gè)16位可編程定時(shí)計(jì)數(shù)器,兩個(gè)全雙向串行通信口,一個(gè)模擬比較放大器?! 《嗦烽_(kāi)發(fā)器電路原理如圖3所示。當(dāng)用戶(hù)1按下連接在單片機(jī)p3.5的按鍵s1時(shí),產(chǎn)生一個(gè)低電平,單片機(jī)查詢(xún)到p3.5變低時(shí),使p1.0變低,讓連接此端口的發(fā)光二極管導(dǎo)通發(fā)光以指示用戶(hù)1正在申請(qǐng)使用,同時(shí)單片機(jī)p1.7產(chǎn)生一個(gè)高電平,經(jīng)過(guò)74ls04反相后再經(jīng)三極管放大,使得繼電器k1導(dǎo)通,從而使得連接用戶(hù)1主機(jī)和單片機(jī)仿真器的串行口txd線,rxd線和地線能夠順利連接,使用戶(hù)j1主機(jī)能順利地使用單片機(jī)仿真器,這樣就完成了用戶(hù)j1主機(jī)與單片機(jī)仿真器的連接使用?! ‘?dāng)用戶(hù)2按下連接在單片機(jī)p3.4的按鍵s2時(shí),產(chǎn)生一個(gè)低電平,單片機(jī)查詢(xún)到p3.4變低時(shí),使p1.0恢復(fù)高電平,此端口的發(fā)光二極管熄滅,此時(shí)單片機(jī)p1.1端口產(chǎn)生一個(gè)低電平,連接在此端口的發(fā)光二極管導(dǎo)通發(fā)光以指示用戶(hù)j2正在申請(qǐng)使用,同時(shí)讓p1.7變成低電平,流經(jīng)繼電器的電流消失,繼電器k1斷開(kāi),使得用戶(hù)j1主機(jī)與單片機(jī)仿真器斷開(kāi)。此時(shí)p1.6端口產(chǎn)生高電平,經(jīng)反相放大后使繼電器k2導(dǎo)通,使得用戶(hù)j2主機(jī)順利使用單片機(jī)仿真器?! ⊥瑯拥牡览?,其他用戶(hù)按下按鍵后,當(dāng)單片機(jī)查詢(xún)到時(shí),就會(huì)使相應(yīng)led發(fā)光指示正在使用,從而相應(yīng)繼電器發(fā)生動(dòng)作,這樣就實(shí)現(xiàn)了單片機(jī)仿真器多路復(fù)用。 軟件編程 軟件流程如圖4所示。整個(gè)程序用c51編寫(xiě)完成,通過(guò)編譯,編程至芯片at89c2051,完成脫機(jī)工作。 單片機(jī)系統(tǒng)應(yīng)用開(kāi)發(fā)仿真調(diào)試借助wave6000仿真器,該調(diào)試器有集成的isp仿真調(diào)試環(huán)境。安裝使用時(shí),其默認(rèn)的編譯系統(tǒng)是匯編語(yǔ)言,為了實(shí)現(xiàn)c51編譯,開(kāi)發(fā)過(guò)程中,為wave6000安裝了keil c51編譯器。 結(jié)語(yǔ) 整個(gè)系統(tǒng)運(yùn)行正常,達(dá)到了單片機(jī)仿真器多路復(fù)用的目的。在開(kāi)發(fā)實(shí)踐過(guò)程中,取得了預(yù)期目的效果,多個(gè)用戶(hù)開(kāi)發(fā)單片機(jī)應(yīng)用系統(tǒng)仿真調(diào)試時(shí),能很好地交替使用,從而提高了實(shí)驗(yàn)設(shè)備利用率。