基于AT89S52單片機(jī)的紅外遙控溫度報警器的設(shè)計與實(shí)現(xiàn)
摘要:溫度報警器系統(tǒng)以AT89S52單片機(jī)為主控制器,對溫度報警和時間的顯示、調(diào)整進(jìn)行控制。采用高精度DS18B20為溫度傳感器,實(shí)現(xiàn)對環(huán)境溫度的實(shí)時檢測與采集,通過12864液晶顯示溫度和時間,當(dāng)實(shí)時溫度高于溫度報警上限或低于下限時可利用蜂鳴器進(jìn)行報警。通過紅外遙控可以修改溫度報警上限和下限、時間參數(shù)以及設(shè)置鬧鐘。本設(shè)計的創(chuàng)新點(diǎn)是增加了用VC6.0開發(fā)的上位機(jī),在計算機(jī)上顯示出時鐘、溫度計和視頻界面,構(gòu)成友好的人機(jī)界面。因此,本系統(tǒng)具有很高的實(shí)用價值。
關(guān)鍵詞:AT89S52;紅外遙控;溫度報警;上位機(jī)
溫度,無論是在日常生活還是工業(yè)生產(chǎn)中都是人們十分關(guān)注的一個參數(shù),而溫度控制是工業(yè)自動控制的重要組成部分,在工業(yè)、電子、化工精度實(shí)驗(yàn)等諸多領(lǐng)域都有重要的應(yīng)用。同時隨著科學(xué)技術(shù)的發(fā)展,家用電器普遍進(jìn)入到人們的家庭生活之中,因此引起的火災(zāi)現(xiàn)象也越來越多,造成的生命危險和財產(chǎn)損失也就越大。在這些情況下,一款好的溫度報警器將起到十分重要的作用,給人們的生產(chǎn)和生活中帶來很大的方便與安全,減少了不必要的損失。
文中以單片機(jī)為控制核心,利用紅外遙控器、數(shù)字式溫度傳感器及其他控制電路組成紅外遙控溫度報警器,具有低成本,高穩(wěn)定性,及時報警,遠(yuǎn)程遙控,功能擴(kuò)展,顯示時間和鬧鐘等功能特點(diǎn),該產(chǎn)品能廣泛的應(yīng)用于中小型電鍋爐、電采暖爐、電茶爐、壁掛爐、空調(diào)、倉庫、機(jī)房、辦公室等,有著很好的實(shí)際用途和發(fā)展前景。
1 系統(tǒng)硬件設(shè)計
本系統(tǒng)硬件部分包含上、下位機(jī)系統(tǒng),以實(shí)現(xiàn)上下位機(jī)的通信。下位機(jī)系統(tǒng)主要由控制器模塊、紅外遙控模塊、顯示模塊、溫度采集報警模塊、電源模塊、時鐘模塊以及串口模塊等部分組成。通過單片機(jī)作為主控制器,對溫度報警和時間的顯示調(diào)整以及鬧鐘進(jìn)行整體控制。
1.1 系統(tǒng)結(jié)構(gòu)圖
本設(shè)計的上位機(jī)和下位機(jī)通信圖結(jié)構(gòu)圖如圖1所示。下位機(jī)系統(tǒng)結(jié)構(gòu)圖如圖2所示。
1.2 系統(tǒng)硬件實(shí)現(xiàn)
本文以AT89S52單片機(jī)為CPU進(jìn)行系統(tǒng)搭建,AT89C52是一個低電壓高性能CMOS8位單片機(jī)。此外,三端穩(wěn)壓器7805將電壓穩(wěn)定在5V左右。
該系統(tǒng)使用紅外接收模塊1838來進(jìn)行紅外信號接收,使用通用遙控器對其進(jìn)行遠(yuǎn)程控制。1838有3個引腳,包括供電腳,接地和信號輸出腳。1838的信號輸出管腳接AT89S52的F3.2管腳(外中斷0)。當(dāng)1838接收到紅外遙控信號時,產(chǎn)生申斷,處理遙控數(shù)據(jù),處理完后返回到主程序。
采用高精度溫度傳感器DS18B20,實(shí)現(xiàn)對環(huán)境溫度的實(shí)時檢測與采集。DALLAS公司的DS18B20是這樣一種獨(dú)特的溫度傳感器,它只需一個接口引腳即可通信,可用數(shù)據(jù)線供電,并具備多點(diǎn)測溫能力。DS18B20可直接與單片機(jī)通信,讀取測溫數(shù)據(jù),電路簡單。其測溫范圍-55~+125℃,在-10~+85℃時精度為±0.5℃,可編程的分辨率為9~12位。DS18B20具有測沮系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點(diǎn),因此在P2.2懸掛該溫度傳感器。
本系統(tǒng)采用蜂鳴器以及三極管作為溫度報警電路,蜂鳴器的正極性的一端連接到+5 V電源上面,另一端接到三極管的發(fā)射極,三極管的基極由單片機(jī)的P3.5管腳通過一個保護(hù)電阻R7來控制。當(dāng)采集溫度超過設(shè)置溫度上限值或低于下限值,或者鬧鐘時間到時,通過軟件控制使P3.5=0,即低電平時,從而使三極管8550導(dǎo)通,蜂鳴器的電流形成回路,發(fā)出聲音報警或鬧鐘響。當(dāng)P3.5=1,即高電平時,三極管8550截止,蜂鳴器不工作。
采用12864液晶顯示器顯示溫度和萬年歷,12864是一種液晶顯示模塊,其顯示分辨率為128x64,內(nèi)置8192個16*16點(diǎn)漢字,和128個16*8點(diǎn)ASCII字符集。液晶模塊多采用并行連接,常以I/O口方式進(jìn)行讀寫訪問,接口由8根數(shù)據(jù)線和3~4根片選/控制線構(gòu)成。其有兩個控制芯片,分別控制左右半屏。使用P0口直接驅(qū)動12864,由P1.0、P1.1、P1.2這3個引腳做控制端。
時鐘模塊采用DS1302時鐘芯片實(shí)現(xiàn),DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時時鐘電路,DS1302與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需用到3個接口線:BST(復(fù)位)、I/O(數(shù)據(jù)線)、SCLK(串行時鐘)。
用軟件VC6.0開發(fā)上位機(jī)系統(tǒng),在計算機(jī)上顯示出時鐘、溫度計和視頻界面,構(gòu)成友好的人機(jī)界面,并且可以與下位機(jī)系統(tǒng)保持實(shí)時通信。
上位機(jī)工作界面包括操作提示框、串口、清楚、主頁、打開/關(guān)閉串口、時間、日期、溫度、用戶碼、紅外編碼、音樂視頻等部分組成。主頁窗口打開是一個單片機(jī)學(xué)習(xí)、教程、開發(fā)電子主頁,有8個串口,清除窗口可以清除操作提示框的記錄,選歌窗口可以選擇你想播放的歌曲,視頻界面窗口可以看見音樂效果和歌曲相關(guān)信息。確定鍵(即電源鍵,用戶碼/紅外編碼:38C7/1CE3)、菜單鍵(用戶碼/紅外編碼:38C7/11EE)、加鍵(用戶碼/紅外編碼:38C7/16E9)、減鍵(用戶碼/紅外編碼:38C7/17E8)、上移鍵(用戶碼/紅外編碼:38C7/OCF3)、下移鍵(用戶碼/紅外編碼:38C7/ODF2)、▲鍵(即報警鬧鐘關(guān)閉鍵,用戶碼/紅外編碼:38C7/1FE0)、▼鍵(即報警鬧鐘開啟鍵,用戶碼/紅外編碼:38C7/1EE1)。
上位機(jī)與下位機(jī)采用MAX232芯片的第二數(shù)據(jù)通道進(jìn)行串行通信。單片機(jī)的P3.0(RXD),P3.1(TXD)通過電平轉(zhuǎn)換芯片MAX232連接到9針D型插座DB9上,通過DB9和電纜可以與單片機(jī)、PC機(jī)進(jìn)行串行通信。因?yàn)樯衔粰C(jī)與下位機(jī)是實(shí)時通信的,所以通過上位機(jī)工作界面可以很清晰,很人性化的看見下位機(jī)即時采集的溫度值和顯示的時間、日期。
2 系統(tǒng)軟件設(shè)計
2.1 軟件功能概述
根據(jù)硬件設(shè)計,軟件需要完成以下幾個功能:
1)溫度讀取功能:軟件可以正確的控制DS18B20進(jìn)行溫度的正常讀取。
2)LCD12864顯示功能:包括時間顯示,溫度顯示,鬧鐘顯示。
3)紅外遙控功能:使用遙控器控制,修改系統(tǒng)時間、溫度報警上下限值,設(shè)置鬧鐘。
4)報警功能:要求蜂鳴器正常報警。
5)實(shí)現(xiàn)上位機(jī)與下位機(jī)實(shí)時通信,實(shí)現(xiàn)在計算機(jī)上顯示出時鐘、溫度的視頻界面。
2.2 系統(tǒng)主程序流程
主程序主要作用是調(diào)用子程序來完成整個系統(tǒng)的正常工作,軟件分成7個不同的模塊來進(jìn)行編譯。分別為:DS1302時鐘模塊,LCD12864液晶顯示模塊,DS18B20溫度檢測模塊,溫度報警、鬧鐘模塊,紅外遙控模塊,下位機(jī)與上位機(jī)通信模塊以及main主程序模塊。這樣不僅方便程序調(diào)和調(diào)試,而且有助于程序的分塊開發(fā)和集成。系統(tǒng)主程序流程圖如圖3所示。
3 系統(tǒng)調(diào)試結(jié)果
經(jīng)過調(diào)試,文中設(shè)計的紅外遙控溫度報警器系統(tǒng)可以正常運(yùn)行。由于篇幅有限,下面將給出系統(tǒng)正常運(yùn)行時的兩個顯示結(jié)果。系統(tǒng)主菜單界面如圖4所示。用VC6.0開發(fā)的上位機(jī)界面顯示結(jié)果如圖5所示。
4 結(jié)論
文中以AT89S52單片機(jī)為核心設(shè)計紅外遙控溫度報警器系統(tǒng)。采用通用遙控器對系統(tǒng)進(jìn)行設(shè)置及更改。本系統(tǒng)經(jīng)過實(shí)際調(diào)試,可以正常運(yùn)行,系統(tǒng)的測量范圍廣泛,適合大多數(shù)民用場合。