劉德春,劉全飛
(1.阿壩師范高等??茖W(xué)校 電子信息工程系,四川 成都 611741;2.阿壩師范高等??茖W(xué)校 圖書館,四川 成都 611741)
隨著社會(huì)的發(fā)展,人民的生活水平逐步提高,智能家居在近年來受到越來越多的關(guān)注。溫度的檢測(cè)與控制,是智能家居必不可少的一部分。比如:通過對(duì)室內(nèi)溫度的檢測(cè),智能控制空調(diào)的運(yùn)行;通過對(duì)水溫的檢測(cè),智能控制水龍頭的水溫,以達(dá)到恒溫作用[1]。而傳統(tǒng)的溫度檢測(cè),是通過溫度傳感器,把溫度轉(zhuǎn)換為電量,得到的是模擬信號(hào)量,需要數(shù)模轉(zhuǎn)換,再顯示出來,操作復(fù)雜,不人性化。本文利用單總線數(shù)字溫度計(jì)DS18B20和液晶顯示器JHD12232D設(shè)計(jì)出一款智能化、人性化的數(shù)字溫度檢測(cè)控制器。通過Proteus仿真和樣機(jī)系統(tǒng)檢測(cè),該系統(tǒng)精度為±0.1℃,可檢測(cè)溫度范圍:-55~128℃,可應(yīng)用在工業(yè)、農(nóng)業(yè)生產(chǎn)和日常生活等各個(gè)領(lǐng)域[2]。
系統(tǒng)的整體設(shè)計(jì)方案如圖1所示。本系統(tǒng)采用DS18B20檢測(cè)溫度,通過4個(gè)按鍵設(shè)置系統(tǒng)的報(bào)警溫度以及復(fù)位,JHD12232D顯示提示消息和溫度值,蜂鳴器報(bào)警。
圖1 系統(tǒng)整體設(shè)計(jì)方案Fig.1 Design of the overall program
系統(tǒng)通電后,液晶顯示器依次顯示:“歡迎使用該系統(tǒng)”,“先設(shè)置最高溫度”,“請(qǐng)按下設(shè)置鍵”。等待用戶第1次按下設(shè)置鍵,通過“增加”“減小”按鍵設(shè)置系統(tǒng)報(bào)警最高溫度,同時(shí)在液晶顯示器上顯示:“最高溫度為XX℃”,“完成請(qǐng)按設(shè)置鍵”。等待用戶第2次按下設(shè)置鍵,液晶顯示器顯示:“現(xiàn)設(shè)置最低溫度”,用戶此時(shí)通過“增加”“減小”按鍵設(shè)置最低溫度,在液晶顯示器上顯示:“最低溫度為XX℃”,“完成請(qǐng)按設(shè)置鍵”。等待用戶設(shè)置好最低溫度,第3次按下設(shè)置鍵后,液晶屏幕上顯示:“設(shè)置已完成”,“當(dāng)前溫度為XX℃”。當(dāng)溫度低于最低溫度值或者高于最高溫度值,報(bào)警器報(bào)警,單片機(jī)控制其它執(zhí)行機(jī)構(gòu)采取相應(yīng)措施,同時(shí)在液晶顯示器上提示“溫度過低”,或者“溫度過高”。
DS18B20是DALLAS公司推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)溫度傳感器相比,它能直接讀出被測(cè)溫度值[3]。 它的測(cè)量范圍為-55~125 ℃,可編程設(shè)置 9~12 位的A/D轉(zhuǎn)換精度,對(duì)應(yīng)的溫度分辨率分別為0.5℃、0.25℃、0.125℃、0.0625℃。在轉(zhuǎn)換精度為12位時(shí),轉(zhuǎn)換時(shí)間小于等于750 ms。當(dāng)DS1820上電后,對(duì)其進(jìn)行初始化,發(fā)送溫度轉(zhuǎn)換命令“44H”,然后芯片就可讀溫度,讀出的溫度存儲(chǔ)在8位寄存器 TH和 TL中,如圖 2 所示[4]。
圖2 溫度寄存器格式Fig.2 Format of temperature register
當(dāng)TH的高5位為0時(shí),溫度值大于零,實(shí)際溫度值為:
其中,T為16位二進(jìn)制變量。()10表示把二進(jìn)制數(shù)字轉(zhuǎn)化為十進(jìn)制。
當(dāng)TH的高5位為1時(shí),溫度值小于零,實(shí)際溫度值為:
例如測(cè)得 TH=11111110,TL=01011010,經(jīng)過式(2),計(jì)算實(shí)際溫度過程為:
單片機(jī)控制DS18B20完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:每一次讀寫之前都要對(duì)DS18B20進(jìn)行復(fù)位;復(fù)位成功后發(fā)送一條ROM指令;最后發(fā)送RAM操作指令,這樣才能對(duì)DS18B20進(jìn)行預(yù)定的操作[5]。單片機(jī)把溫度寄存器的值讀出來,經(jīng)過公式(1)、(2)的運(yùn)算,就得到當(dāng)前溫度是實(shí)際值。
JHD12232D是由JHD公司生產(chǎn)的一種小型液晶顯示器,不僅可以顯示字符,漢字,數(shù)字,還可以顯示圖形,具有滾屏功能,價(jià)格便宜,性能穩(wěn)定。JHD12232D液晶顯示器為122×32 點(diǎn)陣,內(nèi)部由 SED1520 驅(qū)動(dòng)[6-7],可以顯示 2 行 16×16點(diǎn)陣的漢字,或者顯示2行8×16點(diǎn)陣的ASCAL碼,或者顯示4行大小為8×8的字符。由于一個(gè)SED1520只能驅(qū)動(dòng)61×32列點(diǎn)陣,故需要左右兩塊SED1520,分別驅(qū)動(dòng)列地址0~60(主控),61~121(從控),共 122 列。 同時(shí),JHD12232D 共 32行,分為 4 頁:Page0,Page1,Page2,Page3。 由列地址和頁地址就可確定字符顯示的位置,如表1所示。JHD12232D本身不帶字庫(kù),需要自定義字庫(kù),每頁上的每列有8個(gè)點(diǎn)陣,按照從下到上的順序構(gòu)成,由此可以設(shè)計(jì)JHD12232D的字庫(kù)。為方便獲得各種字庫(kù),可以采用字庫(kù)生成軟件,比如字模軟件Zimo21,只需輸入所需要的漢字、字符或圖片,就可得到相應(yīng)的字庫(kù)。
表1 JHD12232D位置表Tab.1 The position of JHD12232D
JHD12232D顯示原理:首先由字模軟件生成字庫(kù),把JHD12232D初始化,按照頁碼從Page0到Page3,列地址從0到121的順序顯示字庫(kù)。一個(gè)16×16的漢字,需要Page0,Page1(或者 Page2,Page3)兩頁,Page0(或者 Page2)顯示漢字上半部分,Page1(或者Page3)顯示漢字下半部分?;蛘咭环?22×32的圖片,分為4頁顯示,每頁顯示圖片的1/4。
系統(tǒng)用STC89C51RC單片機(jī)作為主控制芯片。該芯片是宏晶科技推出的新一代超強(qiáng)抗干擾、高速、低功耗單片機(jī)。其指令代碼完全兼容傳統(tǒng)8051單片機(jī),工作頻率范圍為0~40 MHz,相當(dāng)于 8051 的 0~80 MHz,內(nèi)部有 4k 程序空間,片上集成1 280字節(jié)RAM。系統(tǒng)集成看門狗技術(shù),用戶程序用ISP/IAP機(jī)制寫入,一邊寫一邊校驗(yàn),無讀出命令,徹底無法解密[8]。與傳統(tǒng)的51單片機(jī)相比,該芯片價(jià)格便宜,性能穩(wěn)定,同時(shí)完全能夠滿足溫度檢測(cè)與控制的要求,既提高了穩(wěn)定性,安全性,也降低了成本。
系統(tǒng)中共用了4個(gè)按鍵,其中1個(gè)作系統(tǒng)復(fù)位用,另3個(gè)按鍵為功能按鍵,設(shè)置報(bào)警溫度的最高值和最低值,直接接在單片機(jī)的I/O口上。這4個(gè)按鍵的具體功能如表2所示。
表2 按鍵功能表Tab.2 The function of button
當(dāng)檢測(cè)溫度超過設(shè)定溫度值時(shí),單片機(jī)控制控制系統(tǒng)就采取相應(yīng)的操作。比如在智能家居中,當(dāng)溫度高于設(shè)定值時(shí),單片機(jī)控制空調(diào)的制冷系統(tǒng)開始工作;當(dāng)溫度低于設(shè)定值時(shí),控制空調(diào)的制熱系統(tǒng)工作。在恒溫水龍頭系統(tǒng)中,單片機(jī)可控制冷水和熱水的混合比例,使水達(dá)到恒溫。同時(shí),報(bào)警器發(fā)出報(bào)警信號(hào)。當(dāng)檢測(cè)到的溫度在設(shè)定值范圍內(nèi)時(shí),報(bào)警器停止報(bào)警,控制系統(tǒng)也不采取相應(yīng)措施。
整個(gè)軟件系統(tǒng)采用模塊化設(shè)計(jì),主要包括DS18B20溫度檢測(cè)和處理,JHD12232D顯示,報(bào)警溫度上下限設(shè)置,報(bào)警及智能控制等。其中DS18B20溫度檢測(cè)和處理包括:DS18B20初始化子程序,DS18B20讀字節(jié)子程序,DS18B20寫字節(jié)子程序,DS18B20讀溫度子程序,DS18B20溫度轉(zhuǎn)化子程序。JHD12232D顯示主要包括:JHD12232D主控發(fā)送命令子程序,JHD12232D主控發(fā)送數(shù)據(jù)子程序,JHD12232D從控發(fā)送命令子程序,JHD12232D從控發(fā)送數(shù)據(jù)子程序,JHD12232D初始化子程序,JHD12232D列地址設(shè)置子程序,JHD12232D頁地址設(shè)置子程序,JHD12232D靜態(tài)顯示子程序,JHD12232D動(dòng)態(tài)顯示子程序。報(bào)警溫度上下限設(shè)置包括:報(bào)警溫度設(shè)置提示子程序,鍵盤掃描子程序,報(bào)警溫度上限調(diào)整子程序,報(bào)警溫度下限調(diào)整子程序,報(bào)警溫度動(dòng)態(tài)顯示子程序。報(bào)警及智能控制包括:溫度對(duì)比子程序,報(bào)警子程序等。系統(tǒng)主程序流程圖如圖3所示。
圖3 系統(tǒng)主程序流程圖Fig.3 Flow chart of main program
系統(tǒng) 采 用 單 片 機(jī) C 語 言編 寫[9-10],經(jīng) 在 Keil uVision4 中編譯后,用STC_ISP_V483軟件下載到微處理器中運(yùn)行。
該系統(tǒng)用單片機(jī)STC89C51為控制器,智能溫度傳感器DS18B20檢測(cè)溫度,液晶顯示器JHD12232D動(dòng)態(tài)顯示溫度、操作提示信息、報(bào)警信息,按鍵自由設(shè)定在-55~128℃范圍內(nèi)的報(bào)警溫度上下限。系統(tǒng)操作簡(jiǎn)單,能夠?qū)崿F(xiàn)對(duì)溫度的智能檢測(cè)與控制,我們將該系統(tǒng)用在環(huán)境溫度檢測(cè)和智能家居控制系統(tǒng)中,經(jīng)長(zhǎng)期觀察,性能穩(wěn)定。同時(shí),對(duì)該系統(tǒng)稍加改造,可廣泛的應(yīng)用在工業(yè)、農(nóng)業(yè)、無線溫度檢測(cè)等各種場(chǎng)所。
[1]莫建麟,王玉晶.基于單片機(jī)的恒溫水龍頭設(shè)計(jì)[J].西安:現(xiàn)代電子技術(shù),2009(19):146-150.
MO Jian-lin,WANG Yu-jing.Design for fixed temperature faucet based on single chip computer[J].Modern Electronics Technique,2009(19):146-150.
[2]黃保瑞,賈之豪,邵婷婷.基于AT89C51單片機(jī)的溫度測(cè)控系統(tǒng)設(shè)計(jì)[J].西安:現(xiàn)代電子技術(shù),2011,34(6):142-147.
HUANG Bao-rui,JIA Zhi-hao, SHAO Ting-ting.Design of temperature measurement and control system based on AT89C5[J].Modern Electronics Technique,2011,34(6):142-147.
[3]樓然苗,李光飛.單片機(jī)課程設(shè)計(jì)指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2007.
[4]Maxim Integrated Products.DS18B20 DataSheet[EB/OL].(2008-05-08).[2011-06-26].http://datas- heetts.maximic.com/en/ds/DS18B20.pdf.
[5]張愛平,李金城.基于DS18B20的智能溫度控制器[J].廊坊:北華航天工業(yè)學(xué)院學(xué)報(bào),2007,17(5):1-15.
ZHANG Ai-ping,LI Jin-cheng.Intelligence temperature controllers based on DS18B20[J].Journal of North China Institute of Aerospace Engineering,2007,17(5):1-15.
[6]王輝,于立君.液晶顯示器TM12232在波形顯示中的應(yīng)用[J].應(yīng)用科技,2004,31(2):66-69.
WANG Hui,YU Li-jun.Application of TM12232 LCD to waveform display [J].Applied Science and Technology,2004,31(2):66-69.
[7]JHD 公司.JHD12232D series DataSheet[EB/OL].[2011-06-26].http://www.jhdlcd.com.cn/admin/Software/200811221618 963636.pdf.
[8]宏晶科技.STC89C51RC/RD+系列單片機(jī)器件手冊(cè)[EB/OL]. (2011-03-19).[2011-06-26].http://www.mcumemory.com/datasheet/stc/STC-AD-PDF/STC89C51RC-RD+_GUIDE-CHINESE.pdf.
[9]李朝青.單片機(jī)原理及接口技術(shù)[M].北京:北京航空航天大學(xué)出版社,2005.
[10]馬忠梅,籍順心,張凱,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].4版.北京:北京航空航天大學(xué)出版社,2008.