馬雪林
摘 要:?jiǎn)纹⑿陀?jì)算機(jī)(MCU)經(jīng)過(guò)多年的發(fā)展,在性能上有很大的進(jìn)步,在型號(hào)上發(fā)展到上千種類,已經(jīng)廣泛應(yīng)用于人類社會(huì)生活的各個(gè)領(lǐng)域。單片機(jī)課程已經(jīng)成為高校計(jì)算機(jī)、自動(dòng)化、測(cè)控以及電子信息工程等專業(yè)的重要課程。在掌握理論知識(shí)之余,必須通過(guò)編寫(xiě)程序、設(shè)計(jì)硬件電路、仿真、調(diào)試這一系列的實(shí)驗(yàn)過(guò)程,才能更好地掌握單片機(jī)的結(jié)構(gòu)原理和應(yīng)用技能。隨著單片機(jī)及其接口技術(shù)的飛速發(fā)展,目前市場(chǎng)上供應(yīng)的編程仿真實(shí)驗(yàn)資源并不能完全滿足高校單片機(jī)課程教與學(xué)的需求,構(gòu)建低成本、技術(shù)先進(jìn)、源碼公開(kāi)的單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng),對(duì)我國(guó)單片機(jī)課程的教學(xué)和單片機(jī)領(lǐng)域人才的培養(yǎng)具有重要的現(xiàn)實(shí)意義。
關(guān)鍵詞:超聲波流量計(jì);時(shí)差法;自動(dòng)增益控制
單片機(jī)也叫嵌入式微控制器,它的出現(xiàn)是計(jì)算機(jī)發(fā)展史上重要的里程碑,使計(jì)算機(jī)的用途從海量數(shù)據(jù)計(jì)算發(fā)展到智能化控制,它具有體積小、功能強(qiáng)、可靠性高、價(jià)格低、使用方便、性能穩(wěn)定等優(yōu)點(diǎn)。單片機(jī)系統(tǒng)廣泛應(yīng)用于工業(yè)自動(dòng)化、儀器儀表、家用電器、信息和通信產(chǎn)品和軍事裝備等方面。在工業(yè)自動(dòng)化技術(shù)中,無(wú)論是過(guò)程控制技術(shù)、數(shù)據(jù)采集和測(cè)控技術(shù),還是生產(chǎn)線上的機(jī)器人技術(shù),都需要單片機(jī)的參與;單片機(jī)的使用又將使儀器儀表向數(shù)字化、智能化、多功能化和柔性化方向發(fā)展;汽車的安全保障系統(tǒng),計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,飛機(jī)上的各種儀表控制,導(dǎo)彈的導(dǎo)航裝置等,都有單片機(jī)在其中發(fā)揮著作用。學(xué)習(xí)、開(kāi)發(fā)與應(yīng)用單片機(jī)并掌握其應(yīng)用技術(shù)具有重要意義。
1 單片機(jī)編程仿真試驗(yàn)系統(tǒng)設(shè)計(jì)
1.1 單片機(jī)選型。在單片機(jī)家族中,80C51 系列是其中的佼佼者,Intel 公司將其 MCS-51 系列中的 80C51內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)讓給全世界許多著名 IC 設(shè)計(jì)廠商,如 Philips、NEC、Atmel、AMD、華邦等,這些公司都在保持與 80C51 單片機(jī)兼容的基礎(chǔ)上改善了 80C51 的許多特性。目前,單片機(jī)進(jìn)一步向著 CMOS 化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展,越來(lái)越多的高性能和多品種單片機(jī)出現(xiàn)[1]。一個(gè)好的單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)必須有與之適合的 MCU,本實(shí)驗(yàn)系統(tǒng)主要是根據(jù)單片機(jī)的 ISP在系統(tǒng)編程功能,使程序下載到實(shí)驗(yàn)板目標(biāo)單片機(jī)中并即時(shí)運(yùn)行,系統(tǒng)選用了 Atmel 公司生產(chǎn)的具有 ISP 功能的 AT89S51 單片機(jī)。
1.2 編程控制設(shè)計(jì)。根據(jù) MCU 芯片編程手冊(cè)上規(guī)定的命令協(xié)議,通過(guò)一定的時(shí)序向不同的引腳置高或低的編程電壓實(shí)現(xiàn)對(duì)單片機(jī)的編程,將代碼寫(xiě)入單片機(jī)的 ROM 中。單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)中的編程器模塊就是根據(jù)這一原理,在 PC 上位機(jī)和單片機(jī)間規(guī)定通訊協(xié)議,按照通訊協(xié)議實(shí)現(xiàn) PC 機(jī)上的編程控制軟件與單片機(jī)通訊,使單片機(jī)編程器控制程序中所要求的不同地址的引腳置高或低電平從而實(shí)現(xiàn)單片機(jī)的編程。 單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的子程序查詢模塊通過(guò)把單片機(jī)子程序的各要素按一定的規(guī)則放入數(shù)據(jù)庫(kù),根據(jù) Delphi 強(qiáng)大的數(shù)據(jù)庫(kù)查詢功能,通過(guò)標(biāo)號(hào)和子程序功能字段實(shí)現(xiàn)單片機(jī)子程序的查詢。單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的編程仿真模塊根據(jù)實(shí)驗(yàn)板仿真的結(jié)果,通過(guò) Delphi的編程把實(shí)驗(yàn)結(jié)果在系統(tǒng)中模擬出來(lái)。
1.3 單片機(jī)編程仿真試驗(yàn)系統(tǒng)設(shè)計(jì)
該單片機(jī)編程仿真實(shí)驗(yàn)板利用其在系統(tǒng)可編程(ISP)功能,在軟件仿真正確的前提下,直接對(duì)目標(biāo)單片機(jī)進(jìn)行在系統(tǒng)編程,實(shí)時(shí)運(yùn)行并立刻出現(xiàn)實(shí)際運(yùn)行效果。
根據(jù)單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)硬件資源,我們?cè)O(shè)計(jì)了如下實(shí)驗(yàn):
實(shí)驗(yàn)一、最簡(jiǎn)單的 LED 燈閃爍實(shí)驗(yàn)。實(shí)驗(yàn)二、按鍵控制 LED 亮滅實(shí)驗(yàn)。實(shí)驗(yàn)三、流水燈的左移右移實(shí)驗(yàn) 。實(shí)驗(yàn)四、采用查表方式的花樣流水燈實(shí)驗(yàn) 。實(shí)驗(yàn)五、數(shù)碼管的靜態(tài)顯示實(shí)驗(yàn) 。實(shí)驗(yàn)六、按鍵控制蜂鳴器發(fā)聲實(shí)驗(yàn) 。實(shí)驗(yàn)七、矩陣式鍵盤(pán)識(shí)別技術(shù) 。實(shí)驗(yàn)八、數(shù)碼管動(dòng)態(tài)掃描顯示“1、2、3、4….9、0”。實(shí)驗(yàn)九、時(shí)鐘實(shí)驗(yàn) 。實(shí)驗(yàn)十、0~9999計(jì)數(shù)器實(shí)驗(yàn)。實(shí)驗(yàn)十一、LCD1602顯示實(shí)驗(yàn)。實(shí)驗(yàn)十二、I2C總線(AT24C01)讀寫(xiě)演示實(shí)驗(yàn)。實(shí)驗(yàn)十三、紅外遙控器解碼數(shù)碼管顯示實(shí)驗(yàn) 。實(shí)驗(yàn)十四、繼電器控制實(shí)驗(yàn) 。實(shí)驗(yàn)十五、無(wú)線遙控實(shí)驗(yàn) 。實(shí)驗(yàn)十六、DS18B20溫度采集實(shí)驗(yàn)。實(shí)驗(yàn)十七、8255可編程控制實(shí)驗(yàn)。實(shí)驗(yàn)十八、步進(jìn)電機(jī)控制實(shí)驗(yàn) 。實(shí)驗(yàn)十九、串行通訊實(shí)驗(yàn) 。學(xué)習(xí)者還可以根據(jù)實(shí)際學(xué)習(xí)的內(nèi)容,利用實(shí)驗(yàn)板的硬件資源和輸入輸出接口設(shè)計(jì)拓展實(shí)驗(yàn)。
2 編程仿真軟件設(shè)計(jì)與實(shí)現(xiàn)
2.1 單片機(jī)編程器模塊
單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的編程器模塊總體設(shè)計(jì)主要分為三部分:操作部分、設(shè)置部分和顯示部分[2]。其中,操作部分包括打開(kāi)文件、保存文件、擦除器件、寫(xiě)器件、讀器件、校驗(yàn)數(shù)據(jù)和鎖定部分;設(shè)置部分包括設(shè)置加密位,選擇編程器類型、串口、波特率和下載線性能設(shè)置;顯示部分包括提示信息、緩沖存儲(chǔ)區(qū)1內(nèi)容和緩沖存儲(chǔ)區(qū)2內(nèi)容。
2.2 子程序庫(kù)查詢模塊
目前已有若干版本的 MCS-51 單片機(jī)實(shí)用子程序庫(kù)公開(kāi)發(fā)表,它們各有特色[3]。本程序庫(kù)中的開(kāi)平方算法為快速逼近算法,它能達(dá)到牛頓迭代法同樣的精度,而速度加快二十倍左右,超過(guò)雙字節(jié)定點(diǎn)除法的速度。子程序庫(kù)查詢系統(tǒng)實(shí)現(xiàn)的功能即查詢每一個(gè)子程序的標(biāo)號(hào)、功能、入口條件、出口信息、影響資源、堆棧需求和程序代碼,可以在單片機(jī)編程過(guò)程中方便的查詢所需要的子程序。本子程序庫(kù)查詢系統(tǒng)可以通過(guò)兩種方法查詢:(1)按標(biāo)號(hào)查詢;(2)按功能查詢。也可以通過(guò)導(dǎo)航按鈕逐一查看子程序。
3 編程仿真實(shí)驗(yàn)板設(shè)計(jì)
3.1 總體設(shè)計(jì)
單片機(jī)編程仿真實(shí)驗(yàn)板的編程模塊根據(jù) AT89S51 的 ISP 功能對(duì)單片機(jī)進(jìn)行編程。可以直接對(duì)鎖緊座的目標(biāo)單片機(jī)進(jìn)行在系統(tǒng)編程,實(shí)時(shí)運(yùn)行并立刻出現(xiàn)實(shí)際運(yùn)行效果。單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)可重復(fù)對(duì)目標(biāo)單片機(jī)進(jìn)行編程運(yùn)行,只需在編程前擦除片內(nèi) ROM 內(nèi)容,即可再次編程,省去了拔插芯片的麻煩,使學(xué)習(xí)更加方便、快捷。單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)對(duì)單片機(jī)進(jìn)行編程寫(xiě)入后即時(shí)運(yùn)行,要求在實(shí)驗(yàn)板上設(shè)計(jì)支持實(shí)時(shí)仿真的實(shí)驗(yàn)資源和接口。根據(jù)單片機(jī)編程仿真的原理和實(shí)驗(yàn)過(guò)程,實(shí)驗(yàn)板上需設(shè)計(jì)接口部分、操作部分和顯示部分使芯片編程后即時(shí)地仿真。
3.2 實(shí)驗(yàn)板模塊
單片機(jī)編程仿真實(shí)驗(yàn)板由編程電路和仿真擴(kuò)展電路組成,本系統(tǒng)集成了 8255 可編程I/O 接口芯片構(gòu)成的鍵盤(pán)和8位數(shù)碼管電路,還留有P1口、數(shù)據(jù)總線、地址總線和控制總線以及232串行通信接口等外擴(kuò)接口。下面分以下幾個(gè)模塊對(duì)實(shí)驗(yàn)板進(jìn)行功能設(shè)計(jì)與實(shí)現(xiàn)。實(shí)驗(yàn)板模塊包括電源、ISP接口、發(fā)音、流水燈、行列鍵盤(pán)和數(shù)碼管、紅外接收、繼電器控制、I2C實(shí)驗(yàn)、溫度傳感器。
3.3 編程功能設(shè)計(jì)
ISP(In System Programming)技術(shù)即在系統(tǒng)可編程技術(shù),是指在用戶設(shè)計(jì)的目標(biāo)系統(tǒng)中或印刷電路板上,為重新配置邏輯或?qū)崿F(xiàn)新的功能而對(duì)器件進(jìn)行編程或反復(fù)編程的能力。ISP 技術(shù)無(wú)需編程器和較高的編程電壓,打破了先編程后裝配的慣例,形成產(chǎn)品后還可以在系統(tǒng)內(nèi)反復(fù)編程,使具有FLASH-ROM可多次編程或反復(fù)編程的微控制器的優(yōu)越性得以更充分的發(fā)揮。目前ISP編程器的使用越來(lái)越多,各個(gè)廠商分別推出了自己的使用ISP技術(shù)的新產(chǎn)品。與此同時(shí),ISP 下載電路的種類也非常多,大多數(shù)的區(qū)別僅在于并口信號(hào)引腳配置不同。使用 ISP 技術(shù)可以大大加快硬件開(kāi)發(fā)速度。并且與計(jì)算機(jī)軟件的配合使用也可以降低開(kāi)發(fā)成本,非常適合初學(xué)者使用。
4 結(jié)語(yǔ)
本論文針對(duì)現(xiàn)有單片機(jī)編程仿真實(shí)驗(yàn)資源所存在的種種不足,根據(jù)一些從事實(shí)驗(yàn)教學(xué)的高校教師通過(guò)長(zhǎng)期的教學(xué)實(shí)踐摸索提出的實(shí)驗(yàn)教學(xué)改革意見(jiàn)以及對(duì)單片機(jī)編程仿真實(shí)驗(yàn)資源的要求,根據(jù)單片機(jī)編程仿真原理,采用模塊化的結(jié)構(gòu),精心設(shè)計(jì)了一款單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)。該系統(tǒng)可適用于多層次的實(shí)驗(yàn)教學(xué)和學(xué)生自己編程實(shí)驗(yàn),目前已通過(guò)調(diào)試,并將逐步增加編程支持的芯片和完善其他一些實(shí)驗(yàn)電路板。通過(guò)開(kāi)發(fā)單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng),實(shí)現(xiàn)了理論與實(shí)際相結(jié)合,提高了分析問(wèn)題、解決問(wèn)題和實(shí)際動(dòng)手的能力,同時(shí)也使自己對(duì)單片機(jī)產(chǎn)品的應(yīng)用開(kāi)發(fā)以及單片機(jī)課程的講授作了比較深入地探討和研究。
參考文獻(xiàn)
[1]吳嘗,邊玉亮.基于單片機(jī)的舵機(jī)控制仿真實(shí)驗(yàn)研究[J].淮北職業(yè)技術(shù)學(xué)院學(xué)報(bào),2017,16(01):136-137+142.
[2]周教生.單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[J].自動(dòng)化與儀器儀表,2016(11):202-205.
[3]張欽.基于單片機(jī)仿真實(shí)驗(yàn)平臺(tái)的PLC控制[J].現(xiàn)代制造技術(shù)與裝備,2015(05):147-148.