1 系統的組成 系統主要由單片機、溫度報警模塊、液晶顯示模塊、時鐘模塊、ISP編程器和鍵盤模塊等組成,如圖1所示。 2 系統原理 首先通過ISP編程器將程序下載到單片機系統中,利用溫度報警,液晶顯示和時鐘模塊,通過鍵盤控制或人工控制實現實時的溫度報警控制顯示,實現人機交流。 2.1 數字溫度傳感器DS18B20 DS8B20可由用戶設置溫度報警界限,在使用過程中,可由一根I/O數據線既供電又傳輸數據。它的核心是一個直接數字化的溫度傳感器,可將-55℃~+125℃之間的溫度值按9、10、11、12位的分辨率進行量化,與之對應的溫度增量值分別為0.5℃、0.25℃、0.125℃、0.0625℃,器件上電后的默認值為12位的分辨率。 2.2 液晶顯示模塊YXD1602 此模塊將LCD控制器、驅動器、RAM、ROM和LCD顯示器整合在一塊PCB板上,YXD1602為兼容的液晶顯示模塊,支持5×7點陣和2行×16字符兩種模式,背光亮度和顯示對比度可調。這種模塊使用簡單方便,用戶只要向LCM送入相應的命令和數據就可實現所需要的顯示內容,并且它與單片機接口也很簡單。 與數碼管相比,液晶顯示具有功耗低、抗干擾能力強等有優點,因此被廣泛地應用在儀器儀表和控制系統中。 2.3 時鐘芯片DS1302 DS1302是一款涓流充電的時鐘芯片,內含有一個實時時鐘/日歷和31字節靜態RAM,實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息,每月的天數和閏年的天數可自動調整,時鐘操作可通過AM/PM指示決定采用24或12小時格式DS1302與單片機之間能簡單地采用SPI同步串行的方式進行通信,僅需用到三根信號線:RES(復位),I/O(數據線),SCLK(同步串行時鐘)。時鐘/RAM的讀/寫數據以一個字節或多達31個字節的字符組方式通信。DS1302工作時功耗很低,保持數據和時鐘信息時功率小于1mW。 3 硬件的總體設計 本系統因無外接存儲RAM,所以各外接器件與單片機AT89S8252的通信均采用I/O口訪問方式。端口分配如下:P0.0~P0.7以及P2.5~P2.7被液晶顯示模塊YXD1602A占用;P2.0~P2.2被時鐘芯片DS1302占用;P2.3口為溫度傳感器的數據數據輸入輸出口;P2.4為報警發光二極管占用;P1.0~P1.3為按鍵接口;P1.5~P1.7三個SPI串行外部接口在下載程序時使用。圖2為硬件電路原理圖。 單片機AT89S8252的P0.0~P0.7是“準雙向口”,當它們作為外部輸入線,也就是讀引腳時,要先通過指令,把端口鎖存器置1,然后再實行讀引腳操作,否則就可能讀入出錯。因本設計中PO 口作為I/O 口使用,所以在它與YXD1602A連接時需外加上拉電阻。具體設計時使用了4.7kΩ的阻排。 對于液晶顯示模塊YXD1602的引腳3,即液晶顯示驅動電壓引腳,可根據實際需求接地或接一個電位器,經過試驗本系統中接了一個20kΩ的電位器,可以調節驅動電壓。對于它的引腳16,即背光源正極,可接一個100 Ω的電阻到電源,亦可直接接到電源。本設計中直接將它接到電源正極,因接100Ω時亮度不夠。 P2.0~P2.2被時鐘芯片DS1302占用,囚DS1302是SPI接口部件,所以只需三根線即可實現通信,使用時在它的引腳8接了一個3.6V的鎳鉻電池,作為備份電源,它采用外部品振,要求為32.768kHz。 P2.3口是溫度傳感器DS18B20的單總線接口,DS18B20可通過總線竊取電源,但在實際應用中還是使用了外接電源。因外接電源時,我們可以在總線上掛接多個測溫節點。 4 ISP編程器的設計 利用單片機SPI接口的在線串行編程功能和計算機的打印機接口可以制作ISP(In-System Programming)編程器,使用ISP編程器通過3個SPI引腳、計算機的打印機接口和相應的編程軟件就能將程序下載到芯片中去,這樣就為我們節省了購買價格昂貴的燒錄器和編程器的費用。下載器的硬件原理如圖3所示。 計算機打印機接口(LPT)是一個并行接口,通常我們認為它只有輸出功能,是用來連接計算機和打印機并輸出數據到打印機的。實際上,LPT端口同時具有輸入功能,它也可以作為并行輸入的接口。表1為LPT端口各個引腳功能。 需要用電纜連接計算機的打印機接口和編程器。計算機打印機接口是DB25母頭,編程器與計算機的打印機接口連接端需使用DB25公頭。 按照圖3發計編程器,引腳2與12、引腳3與11分別短接;引腳6與SPI接口的SCK信號線相接;引腳7與SPI接口的MOSI信號線相接;引腳9與單片機的RST信號線相接;引腳10與SPI接口的MISO信號線相接;最后,引腳18~25全部接地。 同時,為了緩解并行口狀態線過火的灌電流,在計算機打印機接口和單片機SPI接口之間用74HC244做緩沖。 按照圖3設計編程器,并輔以相應的驅動軟件PonyProg2000,就可以將目標程序下載到單片機中,從而達到編程的功能。利用 PonyProg2000編程后,有一個編程校驗過程,可以確保程序正確完整地寫入單片機。 5 系統的軟件設計 系統的軟件設計,使用單片機C51語言,采用模塊化程序設計方法,使得程序結構清晰,同時也便于今后進一步擴展系統功能。軟件部分包括:主程序、液晶顯示子程序、溫度傳感器子程序、時鐘子程序,鍵盤子程序等。主程序流程圖如圖4所示。溫度傳感器子程序流程圖如圖5所示。 首先,需進行程序的復位,接著是LCD的初始化工作。因為液晶顯示器是一個慢顯示的器件,所以在運行顯示程序前必須進行初始化,否則液晶顯示模塊無法正常顯示。進入啟動畫面后,需進行中斷的設置,包括一個定時中斷和一個外部中斷,外部中斷優先級高。然后初始化時鐘,初始化溫度計后就進行溫度的采集,采集時判斷是否中斷運行中斷處理程序。 6 結束語 本系統制成PCB,經實際調試系統能夠正常高效得達到所需要求。通過單片機對各功能模塊的控制,可以實現將當前溫度、時間通過LCD顯示出來。同時系統在設計時留有充分的擴展作量,只需要加一些簡單的模塊就可以輕松的實現語音及報警控制。經實際應用,此系統有很好的實用價值。系統的3D圖如圖6所示,具休硬件實物如圖7所示。 主要特點: (1)采用先進的技術,設計合理,系統整體結構簡單、操作方便、功耗低、測量精度高,實時性好。 (2)系統的軟硬件設計都采取了抗干擾措施,保證在干擾環境下都能夠正常工作。 (3)數字溫度傳感器的應用,以及LCD顯示都使得系統界面直觀,操作簡單。 (4)系統擴展方便,可以輕松擴展其他功能。 |