基于AT89S52單片機的紅外遙控溫度報警器的設計與實現(xiàn)
1.2 系統(tǒng)硬件實現(xiàn)
本文以AT89S52單片機為CPU進行系統(tǒng)搭建,AT89C52是一個低電壓高性能CMOS8位單片機。此外,三端穩(wěn)壓器7805將電壓穩(wěn)定在5V左右。
該系統(tǒng)使用紅外接收模塊1838來進行紅外信號接收,使用通用遙控器對其進行遠程控制。1838有3個引腳,包括供電腳,接地和信號輸出腳。1838的信號輸出管腳接AT89S52的F3.2管腳(外中斷0)。當1838接收到紅外遙控信號時,產(chǎn)生申斷,處理遙控數(shù)據(jù),處理完后返回到主程序。
采用高精度溫度傳感器DS18B20,實現(xiàn)對環(huán)境溫度的實時檢測與采集。DALLAS公司的DS18B20是這樣一種獨特的溫度傳感器,它只需一個接口引腳即可通信,可用數(shù)據(jù)線供電,并具備多點測溫能力。DS18B20可直接與單片機通信,讀取測溫數(shù)據(jù),電路簡單。其測溫范圍-55~+125℃,在-10~+85℃時精度為±0.5℃,可編程的分辨率為9~12位。DS18B20具有測沮系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,因此在P2.2懸掛該溫度傳感器。
本系統(tǒng)采用蜂鳴器以及三極管作為溫度報警電路,蜂鳴器的正極性的一端連接到+5 V電源上面,另一端接到三極管的發(fā)射極,三極管的基極由單片機的P3.5管腳通過一個保護電阻R7來控制。當采集溫度超過設置溫度上限值或低于下限值,或者鬧鐘時間到時,通過軟件控制使P3.5=0,即低電平時,從而使三極管8550導通,蜂鳴器的電流形成回路,發(fā)出聲音報警或鬧鐘響。當P3.5=1,即高電平時,三極管8550截止,蜂鳴器不工作。
采用12864液晶顯示器顯示溫度和萬年歷,12864是一種液晶顯示模塊,其顯示分辨率為128x64,內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集。液晶模塊多采用并行連接,常以I/O口方式進行讀寫訪問,接口由8根數(shù)據(jù)線和3~4根片選/控制線構成。其有兩個控制芯片,分別控制左右半屏。使用P0口直接驅動12864,由P1.0、P1.1、P1.2這3個引腳做控制端。
時鐘模塊采用DS1302時鐘芯片實現(xiàn),DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,DS1302與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到3個接口線:BST(復位)、I/O(數(shù)據(jù)線)、SCLK(串行時鐘)。
用軟件VC6.0開發(fā)上位機系統(tǒng),在計算機上顯示出時鐘、溫度計和視頻界面,構成友好的人機界面,并且可以與下位機系統(tǒng)保持實時通信。
上位機工作界面包括操作提示框、串口、清楚、主頁、打開/關閉串口、時間、日期、溫度、用戶碼、紅外編碼、音樂視頻等部分組成。主頁窗口打開是一個單片機學習、教程、開發(fā)電子主頁,有8個串口,清除窗口可以清除操作提示框的記錄,選歌窗口可以選擇你想播放的歌曲,視頻界面窗口可以看見音樂效果和歌曲相關信息。確定鍵(即電源鍵,用戶碼/紅外編碼:38C7/1CE3)、菜單鍵(用戶碼/紅外編碼:38C7/11EE)、加鍵(用戶碼/紅外編碼:38C7/16E9)、減鍵(用戶碼/紅外編碼:38C7/17E8)、上移鍵(用戶碼/紅外編碼:38C7/OCF3)、下移鍵(用戶碼/紅外編碼:38C7/ODF2)、▲鍵(即報警鬧鐘關閉鍵,用戶碼/紅外編碼:38C7/1FE0)、鍵(即報警鬧鐘開啟鍵,用戶碼/紅外編碼:38C7/1EE1)。
上位機與下位機采用MAX232芯片的第二數(shù)據(jù)通道進行串行通信。單片機的P3.0(RXD),P3.1(TXD)通過電平轉換芯片MAX232連接到9針D型插座DB9上,通過DB9和電纜可以與單片機、PC機進行串行通信。因為上位機與下位機是實時通信的,所以通過上位機工作界面可以很清晰,很人性化的看見下位機即時采集的溫度值和顯示的時間、日期。
2 系統(tǒng)軟件設計
2.1 軟件功能概述
根據(jù)硬件設計,軟件需要完成以下幾個功能:
1)溫度讀取功能:軟件可以正確的控制DS18B20進行溫度的正常讀取。
2)LCD12864顯示功能:包括時間顯示,溫度顯示,鬧鐘顯示。
3)紅外遙控功能:使用遙控器控制,修改系統(tǒng)時間、溫度報警上下限值,設置鬧鐘。
4)報警功能:要求蜂鳴器正常報警。
5)實現(xiàn)上位機與下位機實時通信,實現(xiàn)在計算機上顯示出時鐘、溫度的視頻界面。
評論