肖 青
(長江工程職業技術學院,湖北武漢 430200)
溫度控制系統利用單片機及其外圍接口電路實現對空氣溫度進行采樣和顯示。系統共分為溫度檢測、溫度顯示、單片機最小系統幾大部分。溫度檢測采用LM35,溫度顯示采用LCD1620液晶顯示屏,單片機最小系統采用AT89S52芯片,它是一個有2kB Flash可編程、可擦除只讀存儲器(E2PROM)的低壓、高性能8位單片機。
溫度顯示系統結構如圖1所示。具體思路如下:①選擇CMOS 8 位微控制器AT89S52 芯片作為控制單元。②利用電容和電阻構成復位電路實現上電復位。③無極性電容和晶振組成時鐘電路,為AT89S52芯片工作提供時鐘。④采用內部存儲了160個不同的點陣字符圖形的LCD1620作為顯示器,可顯示16×2行字符。⑤溫度采樣系統選擇LM35 溫度傳感器具有較高的工作精度和較寬的線性工作范圍。該器件的輸出電壓與攝氏溫度線性成正比,0℃時輸出為0V,每升高1℃,輸出電壓增加10mV。⑥A/D 轉換芯片選擇8 位 COMS 依 次 逼 近 型 的 A/D 轉 換 器ADC0804。主要性能參數:模擬電壓輸入范圍為0-5V,轉換時間為100Us,工作溫度為0-70℃。

圖1 溫度顯示系統結構
控制單元原理如圖2所示,其中AT89S52單片機控制單元的復位電路由10UF 電解電容和10K 電阻構成,其放電時間為RC=100ms。晶振的振蕩頻率為12M,故機器周期為1us。EA=1,則AT89S52單片機的程序存儲器先訪問片內,再訪問片外。
字符型LCDTS1620 共有16 條引腳線。LCD1620顯示單元原理如圖3所示,其中4腳為RS寄存器選擇信號,與單片機AT89S52的P2.0端口連接;5腳為讀寫信號線,與單片機AT89S52的P2.1 端口連接;6 腳為使能端E,與單片機AT89S52的P2.2端口進行連接;7腳至14腳為數據線,與單片機AT89S52的P0 口連接;15腳和16腳分別為背光電源線VCC和地線GND,一般要接限流電阻,此系統中選擇10 歐姆電阻限流。LCD 的3腳是對比度控制電阻,調節與3腳連接的電位器可改變LCD1620的顯示情況。此系統中選擇10K 可調電阻來調節對比度。

圖2 控制單元原理圖

圖3 LCD1620顯示單元原理
溫度采樣系統單元原理如圖4所示。LM35作為溫度傳感器,工作溫度范圍為0℃-100℃,工作電壓為4-30V,精度為±1℃,最大線性誤差為±0.5℃,靜態電流為80uA。由于LM35輸出電壓為毫伏等級,故其輸出電壓需要連接運算放大器LM358。圖4 中LM358 U2A 僅作電壓跟隨器,LM358U2B 作為放大器使用且通過調節R212K 電位器可獲得2-3倍放大倍數。AD 轉換芯片選擇ADC0804,AD0804為8位COMS依次逼近型的A/D 轉換器。模擬電壓輸入范圍為:0-5V,轉換時間為100Us,工作溫度為0-70℃。AD0804的接口設計有3種工作模式:(1)連續轉換方式;(2)軟件詢問方式;(3)中斷控制方式。本系統種選擇軟件詢問方式來控制ADC 動作的電路,ADC 的數字數據送至AT89S52 的端口P1,端口P3做控制信號,WR 引腳產生低電平的脈沖告訴ADC 開始做信號轉換,等待INTR 降為低電平(P3.2=0)即信號轉換完畢,再由RD 引腳輸出低電平信號以讀取數字信號。在RD 信號回升到高電平時,將INTR 信號復位為高電平狀態。

圖4 溫度采樣系統單元原理
主程序流程圖如圖5所示。流程圖中初始化功能包括LCD1620液晶顯示屏的設置顯示方式、顯示模式和清理顯示緩存等功能。啟動A/D 轉換功能主要設置單片與AD0804連接的片選信號CS和寫控制信號WR 的電平變化。在讀取溫度數據過程中,通過不斷查詢單片機的P3.2(INT1)端口電平變化來判斷A/D 轉換是否結束,若A/D 轉換標志位為0,則表明轉換結束,即可進入相應數據計算。主程序主要完成的兩類功能分別為:溫度數據的讀取;LCD1620的顯示。

圖5 軟件設計主程序流程圖

圖6 LCD1620顯示流程圖
溫度數據的讀取功能為:LM35 溫度傳感器將溫度信號轉換為電壓信號經LM358運算放大器輸送給AD0804,在AT89S52單片機中計算得到相應的溫度數值。具體計算公式如式(1)所示,式中T 表示經過單片機計算出的溫度值。K 表示LM358運算放大器對溫度電壓信號的放大倍數。D 表示AD0804P0 口輸出的數據。Vref表示AD0804的參考電壓。式中M 為調整參數,由于LM35 溫度傳感器每升高1℃時,電壓升高10mv,故M 取100。

LCD1620顯示程序流程如圖6 所示。首先確定顯示數據的地址并設置,然后寫入顯示字符的ASCII碼延時一段時間即可顯示溫度。此外溫度顯示的字符℃需自定義代碼。讀取的溫度值的個、十、小數點的處理程序如下:
STR[0]=(int)(T/10)//溫度值的十位
STR[1]=(int)(TC%10)//溫度值的個位
STR[2]=(int)((TC*10)%10)//溫度值的小數點
基于AT89S52溫度顯示系統能廣泛應用于智能化儀表、家居用電器溫度參數的顯示等領域,其系統開發周期短、性價比高,可維護性強,并且可根據用戶要求增設不同的溫度控制指標和要求,具有一定的市場價值。
1 白國政.基于AT89S52溫度自動控制檢測系統設計[J].電子設計工程,2013(6):76-78.
2 陳京培,徐永梅.基于AT89S52單片機的液晶顯示控制電路設計[J].現代電子技術,2008(22):22-25.
3 張東偉,楊中華,楊國付.基于UPSD3224A 單片機和LCD1602液晶顯示模塊的設計[J].楊凌職業技術學院學報,2012(3):8-9.
4 李彩娜,王智磊.基于LCD1602的數字電子鐘設計[J].無錫南洋職業技術學院論叢,2012(6):70-72.
5 陳燕秀.基于單片機的LCD多功能顯示器設計[J].長江大學學報,2013(10):90-91.