【摘 要】本文介紹了一種基于單片機(jī)的多用途溫度測量系統(tǒng),控制器為單片機(jī)STC89C51,測溫模塊使用了溫度傳感器DS18B20,所測溫度值實(shí)時顯示在七段數(shù)碼管上。為了使本系統(tǒng)功能更加完善,特為其配置了報警功能和語言提示功能,當(dāng)溫度達(dá)到預(yù)設(shè)溫度時,蜂鳴器開始報警,提示語言顯示在12864液晶顯示屏上。此溫度測量系統(tǒng)具有多用途、實(shí)時性、精度高、低功耗、測溫范圍廣等諸多優(yōu)點(diǎn)。
【關(guān)鍵詞】單片機(jī); DS18B20; 實(shí)時; 多用途
1 引言
隨著信息技術(shù)和電子工業(yè)的不斷發(fā)展,單片機(jī)和傳感器技術(shù)也越來越成熟,應(yīng)用范圍也更加廣闊。溫度與人們的生活息息相關(guān),本文就介紹了基于單片機(jī)和溫度傳感器的溫度測量系統(tǒng),相比于市場上我們常見的溫度計(jì),本溫度測量系統(tǒng)具有多用途、實(shí)時性、精度高、低功耗、測溫范圍廣等諸多優(yōu)點(diǎn)。我們不僅可以在家庭使用本系統(tǒng),還可以將本系統(tǒng)應(yīng)用于工業(yè)、養(yǎng)殖業(yè)、大棚種植等多種行業(yè)。通過數(shù)碼管以數(shù)字的形式實(shí)時顯示當(dāng)前溫度值,讓我們讀數(shù)非常方便,更具特色的是此系統(tǒng)具有報警功能,我們可以在程序里設(shè)置溫度限定,當(dāng)溫度達(dá)到此限制值時,蜂鳴器立馬報警,以提醒人們注意,可以通過功能按鍵關(guān)閉報警器。而且在液晶顯示屏上顯示必要的提示語言使得本設(shè)計(jì)更加的人性化。
2 總體方案設(shè)計(jì)
測溫系統(tǒng)的總體設(shè)計(jì)框圖如圖1所示。單片機(jī)選用的是宏晶公司的STC89C51,溫度傳感器采用DS18B20,溫度傳感器將采集到的溫度模擬量轉(zhuǎn)換為數(shù)字量傳送給單片機(jī),單片機(jī)處理后將溫度值送到4個七段數(shù)碼管顯示。當(dāng)溫度超過限定值(過高或過低)時,報警器立刻報警,通過按鍵可以關(guān)閉報警器。在溫度限定范圍內(nèi)與范圍外LCD液晶顯示屏都可以顯示必要的提示信息。
圖1 總體設(shè)計(jì)框圖
3 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件主要由以下幾部分組成:單片機(jī)、溫度傳感器、七段數(shù)碼管、LCD液晶顯示屏、蜂鳴器、按鍵,下面分別對這幾部分加以介紹,整體硬件原理圖見圖2。
3.1單片機(jī)
單片機(jī)選用的是宏晶公司的STC89C51,此款單片機(jī)具有低成本、低功耗、高速、工作穩(wěn)定等優(yōu)點(diǎn),其片內(nèi)置有四個8位 的并行端口、3個定時器、FLASH、RAM、看門狗等,可以3V~5V供電。
3.2溫度傳感器
溫度傳感器采用DS18B20,它是目前常用的溫度傳感器,具有體積小、成本低、抗干擾能力強(qiáng)、精度高等優(yōu)點(diǎn),具體歸納如下:
獨(dú)特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊;
測溫范圍 -55℃~+125℃,固有測溫誤差為1℃;
支持多點(diǎn)組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,最多只能并聯(lián)8個,實(shí)現(xiàn)多點(diǎn)測溫;
在使用中不需要任何外圍元件;
工作電源: 3.0~5.5V/DC;
測量結(jié)果以9~12位數(shù)字量方式串行傳送;
應(yīng)用范圍廣:可以用于冷凍庫、糧倉、電機(jī)房、空調(diào)、蔬果大棚、養(yǎng)殖圈、家庭室溫測量等多種領(lǐng)域。
表1 DS18B20溫度值格式表
表2 DS18B20溫度數(shù)據(jù)表
DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以 0.0625℃/LSB形式表達(dá),其中S為符號位。12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0, 這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實(shí)際溫度;如果溫度小于0,這5位為1,測到的數(shù)值需要取反加1再乘于0.0625即可得到實(shí)際 溫度。 例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FE6FH,-55℃的數(shù)字輸出為FC90H 。單片機(jī)通過P3_7與DS18B20連接。
3.3七段數(shù)碼管
采用4個七段數(shù)碼管來顯示實(shí)時溫度,數(shù)碼管的位選由單片機(jī)的P1_4、P1_5、P1_6、P1_7 這4個I/O口來控制,單片機(jī)的P0口(P0_0~P0_7)控制數(shù)碼管的8個段選。
3.4LCD液晶顯示屏
LCD選用的是12864液晶顯示屏,其以并行的工作方式可以顯示漢字、數(shù)字、字母等字幕,LCD的作用就是顯示一些人性化的提示語言,本測溫系統(tǒng)用作家庭溫度計(jì)時,如當(dāng)溫度在20℃左右時,提示“氣溫適宜,今天是個不錯的日子!”,當(dāng)夏日炎熱時,提示”氣溫偏高,注意防暑降溫!”。
3.5蜂鳴器與按鍵
蜂鳴器用來報警,可以在程序中設(shè)置我們規(guī)定的溫度限定值,當(dāng)實(shí)時溫度值越過限定值時,蜂鳴器就會鳴響報警,單片機(jī)的P1_3端口控制蜂鳴器。通過功能按鍵key1可以停止蜂鳴器報警,由單片機(jī)P2_4端口來控制按鍵。
圖2 硬件原理圖
4 系統(tǒng)軟件設(shè)計(jì)
C51程序在Keil 4軟件中編寫,編譯通過后下載到單片機(jī),執(zhí)行溫度測量系統(tǒng)的測溫工作。整個程序分為主程序與子程序,子程序包括溫度傳感器子程序、數(shù)碼管顯示子程序、LCD液晶顯示子程序、蜂鳴器及按鍵子程序。在溫度傳感器子程序里完成對溫度采集、溫度轉(zhuǎn)換、溫度計(jì)算等操作,數(shù)碼管子程序處理顯示實(shí)時溫度,LCD子程序處理數(shù)據(jù)的讀寫,顯示提示語言,蜂鳴器子程序?qū)崿F(xiàn)報警功能(P1_3置1),按鍵按下后停止報警,主函數(shù)通過調(diào)用子函數(shù)實(shí)現(xiàn)所需功能。
5 結(jié)語
本測溫系統(tǒng)在設(shè)計(jì)方面分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大塊,經(jīng)過多次調(diào)節(jié)與測試后工作正常且穩(wěn)定,精度高,操作簡便。整個系統(tǒng)功耗小,成本低,用途廣泛,可為人們的生活和工作帶來便利,建議推廣使用。
參考文獻(xiàn):
[1]郭天祥 .新概念51單片機(jī)C語言教程[M].北京:電子工業(yè)出版社,2009.
[2]張俊謨 .單片機(jī)中級教程——原理與應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[3]王建,宋永昌,魏福江.單片機(jī)實(shí)用技術(shù)[M].北京:機(jī)械工業(yè)出版社,2011.
[4]楊欣,王玉鳳,劉湘黔.電路設(shè)計(jì)與仿真[M].北京:清華大學(xué)出版社,2006.