陳卓 周瑞乾
摘要:隨著電子信息技術(shù)的飛速發(fā)展,單片機(jī)技術(shù)已日趨成熟,并廣泛應(yīng)用于人們的日常生活和學(xué)術(shù)科研當(dāng)中。本文主要介紹了一種基于STC89C52單片機(jī)的溫度報(bào)警系統(tǒng),闡述了系統(tǒng)的設(shè)計(jì)框架和功能,重點(diǎn)對(duì)各主要模塊的軟件設(shè)計(jì)思想進(jìn)行了描述和分析,并給出了部分源程序。
關(guān)鍵詞:?jiǎn)纹瑱C(jī) 溫度控制 STC89C52
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)06-0189-02
1 系統(tǒng)的設(shè)計(jì)框架
本系統(tǒng)主選取STC89C52單片機(jī)作為中心控制單元,選取DS18B20溫度傳感器作為溫度測(cè)量單元,并以按鍵為輸入裝置,以蜂鳴器和報(bào)警燈為報(bào)警裝置,用LED數(shù)碼管來實(shí)現(xiàn)溫度顯示[1]。單片機(jī)作為“大腦”實(shí)時(shí)與溫度傳感器DS18B20保持著通信狀態(tài),不斷從DS18B20獲取新檢測(cè)到的數(shù)據(jù),并在內(nèi)部進(jìn)行分析處理。接通電源以后LED數(shù)碼管會(huì)將處理后的數(shù)據(jù)以BCD碼的形式進(jìn)行顯示和刷新。當(dāng)檢測(cè)到的實(shí)時(shí)溫度超出提前手動(dòng)進(jìn)行設(shè)置的報(bào)警值上下限的時(shí)候,啟動(dòng)蜂鳴器鳴叫,同時(shí)報(bào)警燈接通間斷性閃爍紅光,溫度檢測(cè)精確到小數(shù)點(diǎn)后一位有效數(shù)字。如果遇到突發(fā)性斷電,數(shù)據(jù)不會(huì)損壞,而會(huì)自動(dòng)儲(chǔ)存與單片機(jī)內(nèi)部EEPROM中。如果長(zhǎng)時(shí)間處于設(shè)置界面而不進(jìn)行相關(guān)鍵入操作,系統(tǒng)會(huì)在15秒之后自動(dòng)退出設(shè)置狀態(tài),恢復(fù)正常測(cè)溫狀態(tài)。
2 主要模塊的功能分析
2.1 主控制器模塊
采用STC89C52單片機(jī)作為整個(gè)系統(tǒng)的核心,即主控單元。通過各元件反饋的信息,及時(shí)進(jìn)行處理并將結(jié)果再傳送到各端口,實(shí)現(xiàn)既定的控制功能,以滿足所需性能指標(biāo)。整個(gè)系統(tǒng)的功能是通過各個(gè)元件獨(dú)立正常運(yùn)行來完成的,其中最關(guān)鍵和最復(fù)雜的部分要數(shù)如何進(jìn)行溫度的自動(dòng)顯示并報(bào)警,這就需要依靠一個(gè)強(qiáng)大的微處理器。STC89C52芯片是一種低功耗、高性能的CMOS8位微處理器,它繼承51系列單片機(jī)內(nèi)核,并在其基礎(chǔ)上有了很大改進(jìn)。具有功能強(qiáng)大的位操作指令,編程自由度高[2]。I/O口均可按位尋址,內(nèi)部程序存儲(chǔ)空間擴(kuò)展到8K,并帶有4K字節(jié)EEPROM存儲(chǔ)空間??s小了元件體積,降低了成本,而且價(jià)格非常經(jīng)濟(jì),是本設(shè)計(jì)的理想選擇。
2.2 溫度測(cè)量與顯示模塊
采用美國(guó)DALLAS半導(dǎo)體公司的生產(chǎn)的 DS18B20 進(jìn)行溫度測(cè)量。DS18B20 相比于老式溫度傳感器,最大特色是采用了單總線的數(shù)據(jù)傳輸,即僅僅用一根線就可以實(shí)現(xiàn)與單片機(jī)芯片數(shù)據(jù)的雙向通信[3]。它不同于傳統(tǒng)熱敏電阻,可直接在檢測(cè)端將溫度轉(zhuǎn)化為成串行數(shù)字信號(hào),省去傳統(tǒng)的測(cè)溫方法的很多外圍電路。而且可將多個(gè) DS18B20并聯(lián)至多根線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能。且該芯片的性能穩(wěn)定,元件線性較好。它的測(cè)溫范圍寬,最低至-55℃,最高至+125V℃。在-10℃~+85℃之間精度可達(dá)±0.5℃,其可編程分辨率為9~12位,測(cè)溫精度極高。當(dāng)分辨率設(shè)定為9位時(shí),甚至可以在94ms內(nèi)實(shí)現(xiàn)溫度信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)化過程,體現(xiàn)了高速高效性。
采用4位共陽極LED數(shù)碼管顯示溫度值,輸出信號(hào)使用三極管8550進(jìn)行放大,作為數(shù)碼管的驅(qū)動(dòng)電路。當(dāng)位選打開時(shí),將對(duì)應(yīng)碼段的數(shù)值送入,使對(duì)應(yīng)的數(shù)碼管接通,而后以BCD碼形式將溫度顯示出來并刷新。
2.3 報(bào)警裝置模塊
采用蜂鳴器與報(bào)警燈結(jié)合的方式,進(jìn)行溫度報(bào)警。在讀取DS18B20測(cè)量的實(shí)時(shí)溫度值以后,將此數(shù)值和預(yù)設(shè)的報(bào)警溫度門限進(jìn)行對(duì)比判斷。如果當(dāng)前溫度小于報(bào)警溫度的下限值或大于報(bào)警溫度的上限值,則啟動(dòng)蜂鳴器和報(bào)警燈進(jìn)行報(bào)警。
3 系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)總流程圖如圖1所示,本溫度報(bào)警系統(tǒng)是通過主程序?qū)θ竽K程序的調(diào)用來實(shí)現(xiàn)的,分為溫度信號(hào)處理程序、數(shù)碼管顯示程序和按鍵設(shè)置報(bào)警門限程序等。每個(gè)模塊獨(dú)立完成各自的任務(wù)。溫度信號(hào)處理程序是將DS18B20測(cè)量的溫度數(shù)據(jù)送入STC89C52處理,進(jìn)行判斷比較。數(shù)碼管顯示程序是把處理以后的結(jié)果通過LED數(shù)碼管以十進(jìn)制形式顯示。按鍵設(shè)定報(bào)警門限程序是通過手動(dòng)按鍵輸入,對(duì)報(bào)警溫度的上下限進(jìn)行設(shè)置,范圍可精確到0.1℃。
4 結(jié)語
本文從系統(tǒng)的整體結(jié)構(gòu)入手,闡述了基于STC89C52單片機(jī)的溫度報(bào)警系統(tǒng)的工作原理。進(jìn)而將重點(diǎn)放在主控制器模塊、溫度測(cè)量與顯示模塊以及報(bào)警裝置模塊三大主要模塊的分析和設(shè)計(jì)上。最后提出了系統(tǒng)的軟件設(shè)計(jì)的要點(diǎn),并給出了部分模塊的源程序,為后續(xù)溫度報(bào)警系統(tǒng)的硬件實(shí)現(xiàn)和調(diào)試打下了基礎(chǔ)。
參考文獻(xiàn)
[1]呂俊亞.一種基于單片機(jī)的溫度控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)仿真,2012(7):242-245.
[2]江世明.單片機(jī)原理及應(yīng)用[M].上海:上海交通大學(xué)出版社,2013(12).
[3]劉青.DS18B20在糧倉恒溫監(jiān)控系統(tǒng)中的應(yīng)用[J].自動(dòng)化應(yīng)用,2013(7):70-71.