安欣榮,關(guān)振宏
(西南交通大學(xué)電氣工程學(xué)院,成都610031)
現(xiàn)場(chǎng)溫度的監(jiān)測(cè)在現(xiàn)代生產(chǎn)過程中有著廣泛的應(yīng)用。單片機(jī)由于體積小、功耗低、功能強(qiáng)等優(yōu)點(diǎn),在現(xiàn)場(chǎng)溫度監(jiān)測(cè)中到了日益廣泛的應(yīng)用。目前,應(yīng)用EDA仿真技術(shù)進(jìn)行電子設(shè)計(jì)前期仿真開發(fā)已成為一種較流行的方式。Proteus軟件可構(gòu)建基于PIC18F4520的單片機(jī)系統(tǒng),通過和MPLAB的聯(lián)調(diào)可實(shí)現(xiàn)單片機(jī)系統(tǒng)的仿真,本文正是基于這一思想,應(yīng)用先進(jìn)的EDA仿真技術(shù)實(shí)現(xiàn)溫度監(jiān)測(cè)系統(tǒng)的前期開發(fā)。
PIC18F4520是Microchip公司的8位高端產(chǎn)品,該器件采用RISC(精簡(jiǎn)指令計(jì)算機(jī))、兩級(jí)流水線結(jié)構(gòu),時(shí)鐘晶振最高工作頻率可達(dá)40 MHz。PIC18F4520芯片片內(nèi)集成32 KB閃存、1536BSRAM,13路10位A/D輸入通道,引腳數(shù)為40。
英國(guó)Labcenter公司推出的Proteus軟件組合了高級(jí)原理圖設(shè)計(jì)工具ISIS、混合模型SPICE仿真、PCB設(shè)計(jì)以及自動(dòng)布線,形成了一個(gè)完整的電子設(shè)計(jì)系統(tǒng)。通過Proteus ISIS軟件的VSM(虛擬仿真技術(shù)),用戶可以對(duì)基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真[1]。該軟件可在原理圖設(shè)計(jì)階段對(duì)所設(shè)計(jì)的電路進(jìn)行評(píng)估、驗(yàn)證,這樣就避免了傳統(tǒng)電子設(shè)計(jì)中方案更換帶來的多次重復(fù)購(gòu)買元器件及制板,提高了設(shè)計(jì)效率與質(zhì)量。
MPLABIDE是Microchip公司用于其單片機(jī)開發(fā)的編輯、編譯、調(diào)試、項(xiàng)目管理等的集成開發(fā)環(huán)境,具有功能強(qiáng)大的優(yōu)點(diǎn)。該軟件通過與Proteus聯(lián)調(diào),可在沒有硬件仿真器和實(shí)驗(yàn)板情況下完成原理圖設(shè)計(jì)和應(yīng)用程序的仿真開發(fā),從而完成單片機(jī)系統(tǒng)的早期開發(fā)。
溫度監(jiān)測(cè)硬件系統(tǒng)框圖如圖1所示。溫度傳感器將采集的溫度信號(hào)經(jīng)放大電路放大后送至單片機(jī)A/D轉(zhuǎn)換模塊,A/D轉(zhuǎn)換完成后產(chǎn)生中斷,CPU讀取轉(zhuǎn)換后的溫度信號(hào)并經(jīng)軟件放大后同溫度界限進(jìn)行比較,看是否超限,若發(fā)生超限則報(bào)警示意,同時(shí)LCM(液晶模塊)顯示溢出信息;否則將轉(zhuǎn)換后的溫度數(shù)據(jù)送向LCM顯示。
圖1 硬件系統(tǒng)框圖
LM 35是一種雙電源工作的小型溫度傳感器,它的溫度檢測(cè)范圍-55~150℃,檢測(cè)精度為±0.75℃。這種傳感器輸出電壓與攝氏溫度成正比,0℃時(shí)輸出為0 V,溫度每變化1℃時(shí)輸出電壓變化10m V,假若溫度為+20℃時(shí),輸出電壓則為+200 mV。工作電源為±(4~30)V的電源,這里選用±5 V電源。該傳感器在使用時(shí)無需外圍元件,也不需要調(diào)試和校正。圖2為溫度信號(hào)的放大電路。
圖2 溫度信號(hào)放大電路
溫度傳感器LM 35靈敏度為10 mV/℃,將它的輸出電壓信號(hào)在整個(gè)軟件和硬件系統(tǒng)中放大100倍后再將其送入LCM模塊。若當(dāng)前溫度為100℃,則溫度傳感器輸出電壓為1 V。在溫度信號(hào)放大電路中,取R1為3 kΩ,RV1為20 kΩ的滑動(dòng)變阻器,在此將RV1調(diào)節(jié)至約12 kΩ,傳感器輸出電壓經(jīng)運(yùn)算放大器OP77AP后輸出的電壓放大約5倍,則100℃對(duì)應(yīng)的電壓經(jīng)放大,通過簡(jiǎn)單的抗混疊處理后輸入A/D轉(zhuǎn)換模塊模擬通道的電壓值約5 V。
A/D轉(zhuǎn)換電路采用單片機(jī)自帶的A/D外設(shè)模塊,該A/D轉(zhuǎn)換模塊的參考電壓需通過軟件選擇,系統(tǒng)中取參考電壓VREF+=5 V,VREF-=0 V,所以VREF為5 V。A/D模塊為10位分辨率,其精度為1/1023≈0.1%。從而可知單片機(jī)的步長(zhǎng)(最小分辨電壓)為5/1023 V≈4.9m V,本設(shè)計(jì)中以5 V電壓為滿量程,則其對(duì)應(yīng)數(shù)字量為3FFH。A/D轉(zhuǎn)換器的位數(shù)與被測(cè)量對(duì)象的精度有關(guān)。一般情況下,A/D轉(zhuǎn)換器的分辨率要求高于被測(cè)量對(duì)象的信號(hào)最低分辨率,PIC18F4520自身的外圍A/D模塊完全可以滿足此設(shè)計(jì)的需要。由于A/D模塊的采集時(shí)間與轉(zhuǎn)換時(shí)間會(huì)影響A/D轉(zhuǎn)換的結(jié)果,所以必須根據(jù)單片機(jī)數(shù)據(jù)手冊(cè),通過軟件對(duì)其進(jìn)行正確設(shè)置。
顯示電路采用LM 032L液晶顯示模塊,該模塊以HD44780作為控制芯片,該模塊分兩行顯示,每行可顯示20字符。液晶顯示模塊第一行顯示“Cu rren t temperature:”,第二行在溫度未超限的情況下顯示當(dāng)前溫度數(shù)據(jù),否則顯示“overflow!”。由于該控制芯片標(biāo)準(zhǔn)字符庫(kù)中無“℃”代碼,所以用戶必須通過自編字符庫(kù)(CGRAM)構(gòu)造相應(yīng)的字模點(diǎn)陣。另外液晶顯示模塊屬于慢速外設(shè),并且對(duì)時(shí)序有嚴(yán)格要求,在向LCM寫入指令或數(shù)據(jù)前,若液晶顯示模塊處于忙狀態(tài),則不會(huì)響應(yīng)MCU發(fā)出的指令。因此程序中首先通過軟件延時(shí)確保液晶處于空閑狀態(tài),之后再向液晶模塊發(fā)送指令。
溫度監(jiān)測(cè)系統(tǒng)的軟件部分采用模塊化設(shè)計(jì)思想,分別由主程序、LCD子程序、A/D子程序、溫度報(bào)警子程序等模塊構(gòu)成。主程序主要完成A/D模塊初始化、液晶模塊初始化、讀取A/D轉(zhuǎn)換結(jié)果并進(jìn)行數(shù)據(jù)處理、驅(qū)動(dòng)LCM模塊顯示當(dāng)前溫度信息、驅(qū)動(dòng)溫度報(bào)警等功能。當(dāng)主程序完成A/D轉(zhuǎn)換、液晶初始化之后,再啟動(dòng)A/D中斷。由于硬件放大電路部分的電壓放大倍數(shù)為5,則A/D轉(zhuǎn)換完成后需軟件對(duì)其結(jié)果放大20倍,此時(shí)得到的結(jié)果為二進(jìn)制數(shù),需要轉(zhuǎn)化為十進(jìn)制數(shù)后才能求出其對(duì)應(yīng)的溫度數(shù)據(jù),若溫度超出正常范圍則驅(qū)動(dòng)蜂鳴器報(bào)警示意,同時(shí)在LCD上顯示溫度信息。軟件流程如圖3所示。
圖3 軟件流程圖
首先在Proteus中繪制好相關(guān)電路原理圖,然后在MPLABIDE中新建一個(gè)工程Temperature,并建立工程中的有關(guān)各個(gè)文件,之后再對(duì)工程中各文件實(shí)現(xiàn)編譯,編譯成功后即可進(jìn)行MPLABIDE與Proteus聯(lián)調(diào)。首先在Proteus Debug菜單中選擇“Use Remote Debug Monitor”,然后在MPLABIDE的Debugger菜單中選擇“Select Tools”項(xiàng),再選擇“Proteus VSM”,當(dāng)這兩款軟件聯(lián)調(diào)通信成功后,通過各種調(diào)試方法即可實(shí)現(xiàn)Proteus與MPLAB的協(xié)同仿真,在虛擬平臺(tái)上動(dòng)態(tài)顯示單片機(jī)及外圍器件運(yùn)行效果,根據(jù)仿真效果再進(jìn)行軟硬件設(shè)計(jì)的調(diào)整,直至達(dá)到設(shè)計(jì)要求。圖4是單片機(jī)系統(tǒng)在20℃時(shí)的仿真結(jié)果。
圖4 20℃仿真圖
可見該虛擬平臺(tái)較好地實(shí)現(xiàn)了系統(tǒng)設(shè)計(jì)的需要,但由于計(jì)算機(jī)內(nèi)部的數(shù)據(jù)運(yùn)算的誤差以及仿真時(shí)滑動(dòng)變阻器無法實(shí)現(xiàn)連續(xù)調(diào)節(jié)等因素,致使顯示結(jié)果同溫度傳感器輸出有微小的誤差,但作為前期仿真開發(fā),不失為一種有效的方法。
這種基于Proteus和MPLAB的虛擬仿真平臺(tái)可以較好地實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)的早期開發(fā),使設(shè)計(jì)者對(duì)單片機(jī)系統(tǒng)設(shè)計(jì)效果進(jìn)行評(píng)估。該平臺(tái)同時(shí)具有快捷、方便的特點(diǎn),可以節(jié)約開發(fā)的時(shí)間和成本,因此這種虛擬仿真平臺(tái)為從事PIC單片機(jī)學(xué)習(xí)和應(yīng)用開發(fā)的人員提供了一種有效的方法。
[1]周潤(rùn)景,張麗娜.基于Proteus的電路及單片機(jī)系統(tǒng)設(shè)計(jì)與仿真[M].北京:北京航空航天大學(xué)出版社,2006.
[2]Microchip.PIC18F2420/2520/4420/4520 Data Sheet(DS39-631A-CN),2006.
[3]Hitachi.HD44780U(LCD-II)英文參考手冊(cè).
[4]張建民,楊旭.利用單片機(jī)實(shí)現(xiàn)溫度監(jiān)測(cè)系統(tǒng)[J].微計(jì)算機(jī)信息,2007,23(2):98-100.
[5]劉和平,劉釗,鄭群英,等.PIC18F×××單片機(jī)程序設(shè)計(jì)及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2005.
[6]何希才,劉洪梅.新型通用集成電路實(shí)用技術(shù)[M].北京:國(guó)防工業(yè)出版社,1997.