基于STC89C58數(shù)字溫度計(jì)的設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
隨著時(shí)代的發(fā)展,數(shù)字化控制無疑是人們追求的目標(biāo)之一,它給人們帶來的方便也是不可否定的,其中數(shù)字溫度計(jì)就是一個(gè)典型的例子,它在信息、電子、物流等許多領(lǐng)域都有廣泛的應(yīng)用。隨著人們對(duì)它的要求越來越高,為現(xiàn)代人工作、科研、生活提供更好、更方便的設(shè)施,就需要從單片機(jī)技術(shù)人手,朝著數(shù)字化、智能化控制方向發(fā)展。
這里介紹一種數(shù)字溫度計(jì)的設(shè)計(jì)制作方案。該設(shè)計(jì)控制器使用單片機(jī)STC89C58,測溫傳感器使用LM94022,用FM1602C液晶顯示實(shí)現(xiàn)溫度顯示,設(shè)計(jì)制作了寬量程高精度多功能數(shù)字溫度計(jì)能準(zhǔn)確達(dá)到各種要求。本文設(shè)計(jì)研制的數(shù)字溫度計(jì)與傳統(tǒng)的溫度計(jì)相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確的特點(diǎn),其輸出溫度和時(shí)間采用數(shù)字顯示,該數(shù)字溫度計(jì)不僅分辨率高,還可以設(shè)置報(bào)警溫度上下限,當(dāng)溫度達(dá)到高、低限溫控制點(diǎn)發(fā)出聲光報(bào)警。該設(shè)備主要用于對(duì)測溫比較準(zhǔn)確的場所或科研實(shí)驗(yàn)室。
1 系統(tǒng)設(shè)計(jì)方案的論證與比較
1.1 運(yùn)用LED數(shù)碼管顯示與運(yùn)用LCD液晶顯示溫度及時(shí)間
運(yùn)用LED顯示,提供的信息較少,界面不美觀,顯示時(shí)間和溫度極不方便,所占體積也大,且在要表達(dá)較多信息時(shí)(如兩路溫度值時(shí)和時(shí)間),需要大量的LED和占用較多的引腳,軟件設(shè)計(jì)也相對(duì)復(fù)雜。
LCD可以提供較強(qiáng)的頁面顯示功能,功率小,頁面相對(duì)于LED顯示更直觀,更明了;在顯示信息較多時(shí),比LED所占的空間小,性價(jià)比更高。
很容易看出,在本設(shè)計(jì)中采用LCD作為顯示更好。
2.2 靈敏度選擇端GS0及GS1
LM94022根據(jù)對(duì)GS0,GS1施加的不同電平有4種靈敏度供用戶選擇,如表2所示。用戶可根據(jù)測溫范圍及接口電路的工作電壓條件合理選擇。靈敏度由GS0及GS1的電平確定,高電平要求VDD>1.5 V;低電平要求VDD<0.5 V。
[!--empirenews.page--]
2.3 LM94022的輸出特性
LM94022的輸出特性如圖2所示,這是測量溫度與輸出電壓在不同靈敏度時(shí)的特性。由于輸出電壓隨溫度升高而下降,其靈敏度為負(fù)值。在VDD=5 V時(shí),不同靈敏度下幾個(gè)特定溫度值的輸出電壓如表2所示(典型值)。
數(shù)字溫度計(jì)電路設(shè)計(jì)的總體方案如圖3所示。采用STC89C58單片機(jī)作為主控器件;LCD采用FM1602,單片機(jī)中的P0作為其接口,并由P2.5~P2.7控制,用以驅(qū)動(dòng)LCD的顯示;時(shí)鐘芯片采用DS1302,用腳P2.2~P2.4作為時(shí)鐘芯片控制引腳;LM94022作為溫度傳感芯片,并用TLC2543將其轉(zhuǎn)化成數(shù)字信號(hào),用P3.2~P3.6作為ADC的控制引腳;P1口作為鍵盤的輸人口,用以接收由鍵盤輸出的信號(hào);用P2.1和P2.0分別作為溫度過高和溫度過低的報(bào)警控制引腳,P3.7作為蜂鳴器的控制引腳。
3.1 溫度采樣
LM94022采用“10”模式,在0~100℃范圍內(nèi),用轉(zhuǎn)化公式:
T=(1 568-V)×0.122 699 38
對(duì)輸出電壓采樣(用運(yùn)放LM2015作電壓跟隨器)并用ADC轉(zhuǎn)化,由單片機(jī)提取,計(jì)算并轉(zhuǎn)化成溫度。
3.2 時(shí)鐘電路
時(shí)鐘采用備用電池,在第一次設(shè)定時(shí)間后,所儲(chǔ)存的信息不會(huì)丟失,待下一次電路啟動(dòng)的時(shí)候,無需再次設(shè)定時(shí)間,方便使用。
3.3 人機(jī)交換電路
系統(tǒng)由鍵盤作為人機(jī)交換器,4×4結(jié)構(gòu)如圖4所示。其中,Time用于時(shí)間設(shè)定;L-tem和H-tem分別用于低溫和高溫設(shè)定;Return用于返回主界面。
3.4 復(fù)位功能
當(dāng)按下復(fù)位鍵時(shí),對(duì)系統(tǒng)初始化,系統(tǒng)的低溫設(shè)置為0.0℃,高溫設(shè)置為90.0℃。
3.5 顯示界面
第一行顯示時(shí)間,第二行顯示第一路和第二路的溫度,當(dāng)出現(xiàn)緊急情況時(shí),第二行顯示原因,第一行顯示第幾路出錯(cuò),并將有蜂鳴器鳴叫和LED燈提示。
3.6 數(shù)據(jù)存儲(chǔ)
硬件存儲(chǔ)功能沒有實(shí)現(xiàn),由于分工出現(xiàn)一些小的問題,導(dǎo)致軟硬件結(jié)合不當(dāng),設(shè)計(jì)脫節(jié),最終沒能實(shí)現(xiàn)存儲(chǔ)功能。
4 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)的軟件由三大模塊組成:主程序模塊、功能實(shí)現(xiàn)模塊和運(yùn)算控制模塊。
4.1 主程序流程
系統(tǒng)上電復(fù)位后,進(jìn)行初始化:選擇T0中斷(工作方式1)并設(shè)置定時(shí)器初值,溫度測試電路初始化,顯示電路初始化。若有按鍵按下,禁止T0中斷,顯示處理相應(yīng)事件的界面。處理完事件后,按下Return鍵,T0中斷重新開啟,回到正常的溫度顯示界面;沒有按鍵按下時(shí),如果T0中斷,則更新溫度值,如圖5所示。
[!--empirenews.page--]
4.2 顯示更新程序流程
圖6為顯示更新程序流程圖。如果T0中斷,讀取溫度值并更新溫度值,溫度更新時(shí)間為50 ms。對(duì)新讀取的溫度值進(jìn)行處理,如果高于或低于設(shè)定溫度值,發(fā)出警報(bào),相應(yīng)二極管發(fā)光。最終讀取并顯示溫度信息及時(shí)間。
5 測試與結(jié)果分析
5.1 系統(tǒng)調(diào)試參數(shù)分析
測試儀器:萬用表,加熱儀器。
采用程序模擬,事先在電腦軟件上將其模擬好后再下載到單片機(jī)中,由于時(shí)間有限,有部分硬件程序并未實(shí)現(xiàn)。下面就測試結(jié)果做大概描述:
表3給出了用萬用表測量LM94022在“10”模式下的電壓輸出值和PDF上的溫度值。
由表3得出顯示溫度比LM94022輸出所代表的溫度小0.46℃,于是將線性公式加以修正:
Tem=Tem+0.46
原因分析:可能是與限流電阻的壓降作用有關(guān),由于限流電阻的作用是必不可少的,而且LM94022輸出電壓波動(dòng)不大,故用一修正值來彌補(bǔ)這一壓降,以達(dá)到較高精度。
5.2 系統(tǒng)實(shí)現(xiàn)的功能
(1)能數(shù)字顯示被測溫度,測量溫度范圍為0~100℃;
(2)分辨率不低于0.5℃;
(3)提高溫度測量精度,使分辨率不低于0.1℃;
(4)帶有計(jì)時(shí)和時(shí)間顯示功能;
(5)至少有高、低兩路限溫控制輸出接口控制外部電路,實(shí)際制作時(shí)可用發(fā)光二極管模擬顯示其控制狀態(tài)輸出;
(6)高、低兩路限溫控制點(diǎn)可在0~100℃范圍內(nèi)獨(dú)立設(shè)置;
(7)當(dāng)溫度達(dá)到高、低限溫控制點(diǎn)發(fā)出聲光報(bào)警;
(8)自動(dòng)順時(shí)測量溫度值;
(9)多路溫度巡檢(至少兩路)。
另外,溫度傳感器可通過導(dǎo)線連接而移動(dòng),方便測量不同地點(diǎn)的溫度,切實(shí)達(dá)到多路測量可移動(dòng)的效果,改變測量地點(diǎn)時(shí)操作方便。
6 結(jié) 語
該文報(bào)道的溫度計(jì)采用了高分辨率的溫度測控芯片LM94022,用FM1602C液晶顯示實(shí)現(xiàn)溫度顯示,以STC89C58單片機(jī)為控制中心,設(shè)計(jì)制作了寬量程、高精度、多功能數(shù)字溫度計(jì)能準(zhǔn)確達(dá)到各種要求。與傳統(tǒng)的溫度計(jì)相比,該數(shù)字溫度計(jì)具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度和時(shí)間采用數(shù)字顯示的特點(diǎn),不僅分辨率高,還可以設(shè)置報(bào)警溫度上下限,當(dāng)溫度達(dá)到高、低限溫控制點(diǎn)發(fā)出聲光報(bào)警,在實(shí)際溫度控制系統(tǒng)中有廣泛的應(yīng)用。