劉衛(wèi) 長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院
基于單片機(jī)的空調(diào)溫度顯示器設(shè)計(jì)
劉衛(wèi) 長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院
我們生活在21世紀(jì)無疑是幸福的,在當(dāng)今社會(huì)上各種科學(xué)技術(shù)飛速發(fā)展,經(jīng)濟(jì)快速增長(zhǎng),人們不再擔(dān)心溫飽問題,更多的人追求舒適生活,很多的人家里都安裝了空調(diào)。溫度控制可以將溫度控制在人們生活和生產(chǎn)所需的范圍之內(nèi),而溫度顯示可以讓人們能夠直觀的看到實(shí)時(shí)的溫度值,有助于人們判斷當(dāng)前溫度是否合適。以前溫度監(jiān)控一般都采用模擬電路設(shè)計(jì),弊端是:轉(zhuǎn)換率低,實(shí)時(shí)性差,抗干擾能力不好,尤其是在頻率很高的電路中,常常會(huì)自激。而單片機(jī)由于使用便利,功能強(qiáng)大剛好能解決模擬電路測(cè)溫存在的問題。
選用的溫度傳感器是DS18B20,選擇它主要是因?yàn)樗恍枰馎DC0809要進(jìn)行模數(shù)變換,它可直接進(jìn)行溫度采集顯示,比起使用ADC0809少了好多步驟,因此電路變得簡(jiǎn)單了。應(yīng)用單片機(jī)AT89S51編程控制DS18B20,采集當(dāng)前溫度信息,而后經(jīng)過單片機(jī)芯片處理后由七段數(shù)碼管顯示檢測(cè)到的溫度。另外,設(shè)置限定溫度值,當(dāng)當(dāng)前溫度超出或低于限定溫度,蜂鳴器響發(fā)光二極管亮,通過按鍵來調(diào)節(jié)溫度達(dá)到我們想要的溫度,滿足生活、生產(chǎn)需要的適合溫度。
總體流程圖如下:
DS18B20溫度傳感器產(chǎn)自美國(guó)達(dá)拉斯半導(dǎo)體公司,能夠雙向傳輸數(shù)據(jù),使得外部電路簡(jiǎn)單明了容易看懂。它測(cè)得的溫度可以直接讀取,精度也比較高,熱敏電阻等以前的測(cè)溫元件測(cè)量的溫度值不是特別準(zhǔn)確,不是很可靠,還必須由模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換變成數(shù)字信號(hào),送給單片機(jī)處理,這樣就讓測(cè)溫裝置因?yàn)槎嗔艘粋€(gè)步驟而使電路結(jié)構(gòu)變得復(fù)雜,導(dǎo)致系統(tǒng)的安全性和可靠性降低。DS18B20具備體積小、耗能低、能抗很強(qiáng)的干擾、測(cè)量的溫度很準(zhǔn)確,格外適用于多點(diǎn)溫度測(cè)控系統(tǒng)中。這部分主要是完成溫度溫度信號(hào)的采集和轉(zhuǎn)換,硬件結(jié)構(gòu)非常簡(jiǎn)單,只要用到主控制器件和測(cè)溫器件DS18B20就行。
單片機(jī)與DS18B20之間只要用到一根線來連接,不用溫度補(bǔ)償電路就能夠達(dá)到兩者間的雙向通訊,電路簡(jiǎn)易明了,容易看懂。它能測(cè)-55℃至+125℃的溫度值,測(cè)溫彈性很大,能在高溫和低溫環(huán)境中測(cè)量,測(cè)量精度比較高。工作電源在3.0到5.5V之間。
對(duì)DS18B20的設(shè)計(jì)外部供電方式單點(diǎn)測(cè)溫。DS18B20有三個(gè)引腳,DQ為數(shù)字信號(hào)輸入/輸出,GND必須接地,VDD接5V電源。為了避免出現(xiàn)電源將DS18B20短缺,DS18B20的電源要直接連接到VDD引腳,以確保精度。然而,應(yīng)該注意的是GND必須接地,否則DS18B20就失去了測(cè)溫的功能,不能轉(zhuǎn)換溫度了。
七段數(shù)碼管顯示采用動(dòng)態(tài)掃描方式,能簡(jiǎn)化電路布線,節(jié)省單片機(jī)I/O端口。段碼Q0-Q7由單片機(jī)P0口控制,位碼D0-D3由單片機(jī)P2前4位控制,且使用三極管8550放大電流。要顯示的溫度有設(shè)定值和實(shí)際值。
四個(gè)鍵連接到單片機(jī) P3.4、P3.5、P3.6、P3.7 接口,形成一個(gè)獨(dú)立的鍵盤,按鍵可以設(shè)定溫度上限和下限溫度,調(diào)節(jié)溫度的上下限值。
當(dāng)溫度超過設(shè)定溫度范圍時(shí),蜂鳴器會(huì)發(fā)出響聲,同時(shí)對(duì)應(yīng)的二極管發(fā)光,如果是紅色的點(diǎn)亮表明低溫報(bào)警,綠色的點(diǎn)亮表明高溫報(bào)警。蜂鳴器用三極管驅(qū)動(dòng)。
(1)DS18B20測(cè)溫子程序
(2)實(shí)時(shí)溫度顯示子程序:?jiǎn)纹瑱C(jī)將DS18B20傳回來的溫度訊息處理后顯示溫度在數(shù)碼管上
(3)溫度設(shè)定、報(bào)警子程序:設(shè)定溫度上限和下限,當(dāng)溫度超出限值,蜂鳴器響,同時(shí)綠色二極管發(fā)光表示制冷;當(dāng)溫度低于下限值
(1)DS18B20初始化子程序:讓單片機(jī)了解到DS18B20在總線上做好準(zhǔn)備接受命令進(jìn)行操作
(2)DS18B20寫字節(jié)子程序:對(duì)DS18B20發(fā)出命令
(3)DS18B20讀字節(jié)子程序:從DS18B20讀取內(nèi)存數(shù)據(jù)
(4)延時(shí)子程序:對(duì)DS18B20操作時(shí)的時(shí)序控制
用T0中斷1,50ms的初始值
中斷模塊需調(diào)用兩個(gè)子程序:
(1)讀溫度值子程序:定時(shí)讀取溫度值,實(shí)時(shí)更新溫度值
(2)記錄溫度值子程序:定時(shí)記錄溫度值,以便于查詢當(dāng)前溫度
為了防止調(diào)整報(bào)警溫度或檢查以前的溫度值時(shí),單片機(jī)不再更新記錄當(dāng)前溫度值,所以在中斷中放入這兩個(gè)子程序。
按加減鍵上調(diào)和下調(diào)設(shè)定報(bào)警溫度值,當(dāng)實(shí)時(shí)溫度值超過設(shè)定值時(shí)蜂鳴器鳴叫,并點(diǎn)亮發(fā)光二極管,實(shí)現(xiàn)聲光報(bào)警。
[1]單片機(jī)項(xiàng)目式教程—天津:天津大學(xué)出版社,2011.8
[2]單片機(jī)原理及接口技術(shù)— 北京:北京航空航天大學(xué)出版社,1998
[3]單片機(jī)基礎(chǔ)—北京:北京航空航天大學(xué)出版社,1994
[4]微機(jī)原理與匯編語(yǔ)言—國(guó)防工業(yè)出版社,2010.7
劉衛(wèi),長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院教師,主要研究方向?yàn)殡娐放c系統(tǒng)。