劉書赫,李蘭英,肖 亮,汪明曌,單黎瀟
(哈爾濱理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,黑龍江 哈爾濱150080)
突如其來(lái)的新冠肺炎疫情,對(duì)高校嵌入式方向相關(guān)課程課堂教學(xué)提出了挑戰(zhàn),而挑戰(zhàn)中難度最大的當(dāng)屬硬件相關(guān)的實(shí)驗(yàn)教學(xué)。硬件虛擬仿真實(shí)驗(yàn)平臺(tái)可以在沒有實(shí)驗(yàn)工具和實(shí)驗(yàn)平臺(tái)的情況下,進(jìn)行硬件仿真實(shí)驗(yàn),學(xué)生可在沒有硬件成本支出的情況下,不受時(shí)間空間的限制完成實(shí)驗(yàn),提高實(shí)驗(yàn)的伸縮性和擴(kuò)展性。
由于EDA工具軟件在硬件仿真上的優(yōu)異性能,可營(yíng)造嵌入式系統(tǒng)低成本無(wú)硬件的實(shí)踐教學(xué)環(huán)境。Proteus不僅可將許多嵌入式系統(tǒng)實(shí)例功能形象化,也可將其運(yùn)行過(guò)程形象化。前者可在相當(dāng)程度上得到實(shí)物演示實(shí)驗(yàn)的效果,后者則是實(shí)物演示實(shí)驗(yàn)難以達(dá)到的效果。
為了解決微機(jī)原理與接口技術(shù)課程的線上實(shí)踐教學(xué)的難題,本文基于Proteus和8086CPU,設(shè)計(jì)與實(shí)現(xiàn)了一個(gè)簡(jiǎn)易智能家居虛擬仿真系統(tǒng),該系統(tǒng)涵蓋了課程大綱中要求學(xué)生掌握的總線緩沖驅(qū)動(dòng)器74LS373、74LS244、74LS138譯碼器、并行可編程接口芯片8255、定時(shí)器/計(jì)數(shù)器8253、模數(shù)轉(zhuǎn)換器ADC0809等接口器件,以及嵌入式系統(tǒng)設(shè)計(jì)常用的外圍設(shè)備:按鍵、LCD顯示器、指示燈、繼電器等,還包括Proteus元件庫(kù)中提供的光強(qiáng)檢測(cè)、聲音檢測(cè)、電位器等器件。疫情期間的線上案例實(shí)踐教學(xué)驗(yàn)證了其很好的教學(xué)效果,有助于學(xué)生全面、系統(tǒng)地達(dá)成課程的教學(xué)目標(biāo)。
簡(jiǎn)易智能家居虛擬仿真控制系統(tǒng)可完成的功能如下:
在液晶屏上實(shí)時(shí)顯示溫度,溫度超過(guò)設(shè)定值可以啟動(dòng)空調(diào)(電風(fēng)扇),低于設(shè)定值則停止。
在鍵盤上連續(xù)輸入4位密碼,在液晶屏上顯示,當(dāng)輸入正確的密碼后,顯示OK,門鎖打開,5秒后門鎖自動(dòng)熄滅。
天黑后,光線低于設(shè)定值后,如果有聲音,樓道燈自動(dòng)點(diǎn)亮10秒鐘后熄滅。
Proteus軟件是英國(guó)Lab Center Electronics公司出版的EDA工具軟件。它不僅具有其他EDA工具軟件的仿真功能,還能仿真單片機(jī)及外圍器件。它是比較好的仿真單片機(jī)及外圍器件的工具。雖然國(guó)內(nèi)推廣剛起步,但已受到單片機(jī)愛好者、從事嵌入式教學(xué)的教師、致力于嵌入式系統(tǒng)開發(fā)應(yīng)用的科技工作者的青睞。
Proteus是世界上唯一將電路仿真軟件、PCB設(shè)計(jì)軟件和虛擬模型仿真軟件三合一的設(shè)計(jì)平臺(tái),其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MATLAB等多種編譯器,另外Proteus還支持多種通用外設(shè)模型[1]。
簡(jiǎn)易智能家居虛擬仿真系統(tǒng)硬件結(jié)構(gòu)總體框圖如圖1所示。包括8086處理器及其接口電路、按鍵電路、LCD液晶顯示電路、室內(nèi)溫度檢測(cè)電路、樓道燈控制電路、密碼鎖控制電路和風(fēng)扇控制電路等。

圖1 智能家居硬件總體結(jié)構(gòu)框圖
8086CPU總線控制、譯碼電路和可編程并行接口芯片8255的接口電路[2]如圖2所示。

圖2 8086CPU總線控制與譯碼電路圖
矩陣鍵盤控制電路如圖3所示。0~15共16個(gè)按鍵通過(guò)74LS373和74LS244與8086接口。

圖3 矩陣鍵盤控制電路圖
溫度測(cè)量及液晶顯示電路如圖4所示。溫度檢測(cè)采用一個(gè)10k電位器RV1進(jìn)行模擬。電位器滑動(dòng)頭與ADC0808的IN0連接,通過(guò)改變滑動(dòng)頭的位置來(lái)模擬溫度的變化。液晶顯示器采用LCD1602。8086通過(guò)8255控制1602進(jìn)行溫度的顯示。

圖4 溫度測(cè)量及液晶顯示電路圖
ADC0808接口電路如圖5所示。通過(guò)8255的PC0~PC1控制通道的選擇。

圖5 ADC0809接口電路圖
樓道燈、密碼鎖控制電路如圖6所示。采用定時(shí)器8253接口芯片[3]控制樓道燈和密碼鎖的開關(guān),8253的通道0控制樓道燈,通道1控制密碼鎖,用繼電器作為電子開關(guān)控制電燈,用三色燈模擬密碼鎖的開關(guān)。風(fēng)扇的控制和樓道燈類似。

圖6 樓道燈、密碼鎖控制電路圖
樓道燈聲光檢測(cè)電路如圖7所示。采用器件庫(kù)里面的APDS-9002作為光強(qiáng)度檢測(cè)電路,A/D轉(zhuǎn)換值最暗為2,最亮為282。采用器件庫(kù)里面的VUMETER測(cè)量聲音的大小。

圖7 樓道燈聲光檢測(cè)電路圖
系統(tǒng)軟件采用8086匯編語(yǔ)言進(jìn)行設(shè)計(jì),其主程序流程如圖8所示。

圖8 主程序流程圖
包括AD轉(zhuǎn)換、溫度代碼轉(zhuǎn)換和溫度顯示、電風(fēng)扇控制、密碼門控制和樓道燈控制等子程序。
由于Proteus提供了修改電路設(shè)計(jì)的靈活性、提供了實(shí)驗(yàn)室在數(shù)量、質(zhì)量上難以相比的虛擬儀器、儀表,因而也提供了一個(gè)培養(yǎng)提高學(xué)生創(chuàng)新實(shí)踐能力的平臺(tái)。使用Proteus軟件進(jìn)行嵌入式系統(tǒng)虛擬仿真設(shè)計(jì),是虛擬仿真技術(shù)和計(jì)算機(jī)多媒體技術(shù)相結(jié)合的綜合運(yùn)用,有利于培養(yǎng)學(xué)生的電路設(shè)計(jì)能力及仿真軟件的操作能力。
除此之外,由于經(jīng)費(fèi)以及時(shí)間成本問(wèn)題,很多情況下學(xué)生沒有能力購(gòu)置所需的儀器以及元器件,大多數(shù)學(xué)生只能在實(shí)驗(yàn)室進(jìn)行硬件實(shí)驗(yàn)和嵌入式系統(tǒng)相關(guān)技術(shù)的學(xué)習(xí)。所以本文設(shè)計(jì)的智能家居仿真系統(tǒng)也可作為基于其他處理器的仿真系統(tǒng)設(shè)計(jì)的參考案例。學(xué)習(xí)和掌握基于Proteus的仿真系統(tǒng)的設(shè)計(jì)方法,既能提高嵌入式系統(tǒng)線上實(shí)踐教學(xué)質(zhì)量,又能大大降低嵌入式系統(tǒng)人才培養(yǎng)的成本和門檻。