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