基于C51的兩路溫度控制器設(shè)計(jì)
4.1 主程序模塊
本文引用地址:http://2s4d.com/article/247928.htm主程序中先對(duì)數(shù)據(jù)進(jìn)行初始化,然后調(diào)用鍵盤掃描子程序KEY_TEST,溫度比較子程序C O M P A R E,溫度采集子程序G E T _ T E M P,溫度顯示子程序D I S _ S E T和DISPLAY,再判斷采集,顯示第二個(gè)溫度傳感器的溫度值。編寫程序如下:
4.2 LED顯示模塊
LED顯示可以分為動(dòng)態(tài)顯示和靜態(tài)顯示兩種,靜態(tài)顯示占用更多口線,為了減少硬件成本,本設(shè)計(jì)采用動(dòng)態(tài)掃描顯示的方法顯示兩個(gè)溫度傳感器的溫度值。
DISPLAY和DISPLAY1函數(shù)分別讀取第一個(gè)和第二個(gè)溫度傳感器的溫度并根據(jù)暫存單元的數(shù)據(jù)顯示兩個(gè)溫度傳感器的溫度。編程思路:根據(jù)SIGN標(biāo)志來判斷轉(zhuǎn)入不同的顯示,將查表所得的數(shù)據(jù)存入不同的單元并顯示在LED上。
4.3 鍵盤控制模塊
鍵盤通過設(shè)定SIGN標(biāo)志來判斷設(shè)定第一個(gè)或者第二個(gè)溫度傳感器的最高溫或者最低溫,編程思路為:將SIGN初始設(shè)定為0,當(dāng)?shù)谝粋€(gè)按鍵按下時(shí)將其賦為1,再次按下時(shí)加一,直到按到第5次重新賦值為0,根據(jù)SIGN的值確定進(jìn)行不同的設(shè)置。
4.4 溫度傳感器模塊
根據(jù)溫度傳感器DS18B20完成溫度轉(zhuǎn)換所必須經(jīng)過的3個(gè)步驟,程序:MOV A,#0CCH//跳過ROM MOV A,#44H / / 進(jìn)行溫度變換 MOV A,#0BEH//讀暫存存儲(chǔ)器內(nèi)容。
4.5 報(bào)警模塊
當(dāng)實(shí)時(shí)溫度高于設(shè)定的最高溫度時(shí)或者實(shí)時(shí)溫度低于設(shè)定的最低溫度時(shí),單片機(jī)會(huì)控制蜂鳴器或者電風(fēng)扇工作,判斷當(dāng)前溫度是否在正常范圍的函數(shù)為COMPARE,高溫部分程序如下:
5.仿真測(cè)試
我們對(duì)DS18B20寫入程序之前,必須調(diào)試自己的程序。但我們不能看到程序是怎樣運(yùn)行的。因此我們可以用仿真機(jī)來仿真,通過仿真機(jī)我們可以看到DS18B20發(fā)送過來的數(shù)據(jù),讀出來的溫度值,所利用寄存的值的變化。系統(tǒng)連接示意圖如下圖所示:
我們現(xiàn)在能把DS18B20所采集到的溫度在PC機(jī)上顯示出來并且每一個(gè)溫度值顯示后換一行。試驗(yàn)證明了系統(tǒng)實(shí)用性強(qiáng),達(dá)到了預(yù)定的功能。
6.結(jié)語
本文提出了基于51單片機(jī)兩路溫度控制器的設(shè)計(jì)方案,該設(shè)計(jì)方案采用兩個(gè)DS18B20溫度傳感器,采集兩個(gè)不同地方的溫度,通過AT89C51處理進(jìn)行,由四位LED數(shù)碼管顯示所測(cè)量溫度,前兩位為第一個(gè)溫度傳感器的溫度,后兩位為第二個(gè)溫度傳感器的溫度。采用3個(gè)按鍵實(shí)現(xiàn)溫度最高和最低的設(shè)定,采用蜂鳴器和電動(dòng)機(jī)實(shí)現(xiàn)溫度過高或過低報(bào)警。然后又經(jīng)過過仿真測(cè)試證實(shí)了改設(shè)計(jì)方案經(jīng)濟(jì)適用,實(shí)用性強(qiáng),能夠測(cè)量?jī)蓚€(gè)地方的溫度,滿足溫室大棚,室內(nèi)家居,工業(yè)控制等不同環(huán)境下的使用。
手機(jī)電池相關(guān)文章:手機(jī)電池修復(fù)
c語言相關(guān)文章:c語言教程
蜂鳴器相關(guān)文章:蜂鳴器原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評(píng)論