安欣榮,關振宏
(西南交通大學電氣工程學院,成都610031)
現場溫度的監測在現代生產過程中有著廣泛的應用。單片機由于體積小、功耗低、功能強等優點,在現場溫度監測中到了日益廣泛的應用。目前,應用EDA仿真技術進行電子設計前期仿真開發已成為一種較流行的方式。Proteus軟件可構建基于PIC18F4520的單片機系統,通過和MPLAB的聯調可實現單片機系統的仿真,本文正是基于這一思想,應用先進的EDA仿真技術實現溫度監測系統的前期開發。
PIC18F4520是Microchip公司的8位高端產品,該器件采用RISC(精簡指令計算機)、兩級流水線結構,時鐘晶振最高工作頻率可達40 MHz。PIC18F4520芯片片內集成32 KB閃存、1536BSRAM,13路10位A/D輸入通道,引腳數為40。
英國Labcenter公司推出的Proteus軟件組合了高級原理圖設計工具ISIS、混合模型SPICE仿真、PCB設計以及自動布線,形成了一個完整的電子設計系統。通過Proteus ISIS軟件的VSM(虛擬仿真技術),用戶可以對基于微控制器的系統連同所有外圍接口電子元器件一起仿真[1]。該軟件可在原理圖設計階段對所設計的電路進行評估、驗證,這樣就避免了傳統電子設計中方案更換帶來的多次重復購買元器件及制板,提高了設計效率與質量。
MPLABIDE是Microchip公司用于其單片機開發的編輯、編譯、調試、項目管理等的集成開發環境,具有功能強大的優點。該軟件通過與Proteus聯調,可在沒有硬件仿真器和實驗板情況下完成原理圖設計和應用程序的仿真開發,從而完成單片機系統的早期開發。
溫度監測硬件系統框圖如圖1所示。溫度傳感器將采集的溫度信號經放大電路放大后送至單片機A/D轉換模塊,A/D轉換完成后產生中斷,CPU讀取轉換后的溫度信號并經軟件放大后同溫度界限進行比較,看是否超限,若發生超限則報警示意,同時LCM(液晶模塊)顯示溢出信息;否則將轉換后的溫度數據送向LCM顯示。

圖1 硬件系統框圖
LM 35是一種雙電源工作的小型溫度傳感器,它的溫度檢測范圍-55~150℃,檢測精度為±0.75℃。這種傳感器輸出電壓與攝氏溫度成正比,0℃時輸出為0 V,溫度每變化1℃時輸出電壓變化10m V,假若溫度為+20℃時,輸出電壓則為+200 mV。工作電源為±(4~30)V的電源,這里選用±5 V電源。該傳感器在使用時無需外圍元件,也不需要調試和校正。圖2為溫度信號的放大電路。

圖2 溫度信號放大電路
溫度傳感器LM 35靈敏度為10 mV/℃,將它的輸出電壓信號在整個軟件和硬件系統中放大100倍后再將其送入LCM模塊。若當前溫度為100℃,則溫度傳感器輸出電壓為1 V。在溫度信號放大電路中,取R1為3 kΩ,RV1為20 kΩ的滑動變阻器,在此將RV1調節至約12 kΩ,傳感器輸出電壓經運算放大器OP77AP后輸出的電壓放大約5倍,則100℃對應的電壓經放大,通過簡單的抗混疊處理后輸入A/D轉換模塊模擬通道的電壓值約5 V。
A/D轉換電路采用單片機自帶的A/D外設模塊,該A/D轉換模塊的參考電壓需通過軟件選擇,系統中取參考電壓VREF+=5 V,VREF-=0 V,所以VREF為5 V。A/D模塊為10位分辨率,其精度為1/1023≈0.1%。從而可知單片機的步長(最小分辨電壓)為5/1023 V≈4.9m V,本設計中以5 V電壓為滿量程,則其對應數字量為3FFH。A/D轉換器的位數與被測量對象的精度有關。一般情況下,A/D轉換器的分辨率要求高于被測量對象的信號最低分辨率,PIC18F4520自身的外圍A/D模塊完全可以滿足此設計的需要。由于A/D模塊的采集時間與轉換時間會影響A/D轉換的結果,所以必須根據單片機數據手冊,通過軟件對其進行正確設置。
顯示電路采用LM 032L液晶顯示模塊,該模塊以HD44780作為控制芯片,該模塊分兩行顯示,每行可顯示20字符。液晶顯示模塊第一行顯示“Cu rren t temperature:”,第二行在溫度未超限的情況下顯示當前溫度數據,否則顯示“overflow!”。由于該控制芯片標準字符庫中無“℃”代碼,所以用戶必須通過自編字符庫(CGRAM)構造相應的字模點陣。另外液晶顯示模塊屬于慢速外設,并且對時序有嚴格要求,在向LCM寫入指令或數據前,若液晶顯示模塊處于忙狀態,則不會響應MCU發出的指令。因此程序中首先通過軟件延時確保液晶處于空閑狀態,之后再向液晶模塊發送指令。
溫度監測系統的軟件部分采用模塊化設計思想,分別由主程序、LCD子程序、A/D子程序、溫度報警子程序等模塊構成。主程序主要完成A/D模塊初始化、液晶模塊初始化、讀取A/D轉換結果并進行數據處理、驅動LCM模塊顯示當前溫度信息、驅動溫度報警等功能。當主程序完成A/D轉換、液晶初始化之后,再啟動A/D中斷。由于硬件放大電路部分的電壓放大倍數為5,則A/D轉換完成后需軟件對其結果放大20倍,此時得到的結果為二進制數,需要轉化為十進制數后才能求出其對應的溫度數據,若溫度超出正常范圍則驅動蜂鳴器報警示意,同時在LCD上顯示溫度信息。軟件流程如圖3所示。

圖3 軟件流程圖
首先在Proteus中繪制好相關電路原理圖,然后在MPLABIDE中新建一個工程Temperature,并建立工程中的有關各個文件,之后再對工程中各文件實現編譯,編譯成功后即可進行MPLABIDE與Proteus聯調。首先在Proteus Debug菜單中選擇“Use Remote Debug Monitor”,然后在MPLABIDE的Debugger菜單中選擇“Select Tools”項,再選擇“Proteus VSM”,當這兩款軟件聯調通信成功后,通過各種調試方法即可實現Proteus與MPLAB的協同仿真,在虛擬平臺上動態顯示單片機及外圍器件運行效果,根據仿真效果再進行軟硬件設計的調整,直至達到設計要求。圖4是單片機系統在20℃時的仿真結果。

圖4 20℃仿真圖
可見該虛擬平臺較好地實現了系統設計的需要,但由于計算機內部的數據運算的誤差以及仿真時滑動變阻器無法實現連續調節等因素,致使顯示結果同溫度傳感器輸出有微小的誤差,但作為前期仿真開發,不失為一種有效的方法。
這種基于Proteus和MPLAB的虛擬仿真平臺可以較好地實現單片機應用系統的早期開發,使設計者對單片機系統設計效果進行評估。該平臺同時具有快捷、方便的特點,可以節約開發的時間和成本,因此這種虛擬仿真平臺為從事PIC單片機學習和應用開發的人員提供了一種有效的方法。
[1]周潤景,張麗娜.基于Proteus的電路及單片機系統設計與仿真[M].北京:北京航空航天大學出版社,2006.
[2]Microchip.PIC18F2420/2520/4420/4520 Data Sheet(DS39-631A-CN),2006.
[3]Hitachi.HD44780U(LCD-II)英文參考手冊.
[4]張建民,楊旭.利用單片機實現溫度監測系統[J].微計算機信息,2007,23(2):98-100.
[5]劉和平,劉釗,鄭群英,等.PIC18F×××單片機程序設計及應用[M].北京:北京航空航天大學出版社,2005.
[6]何希才,劉洪梅.新型通用集成電路實用技術[M].北京:國防工業出版社,1997.