摘 要:本文介紹了一種浴室水溫控制器,利用STC89C52單片機(jī)作為核心控制部件,可以通過按鍵設(shè)定上限溫度,下限溫度,超過上限保溫,低于下限加熱,溫度傳感器選用高精度、高可靠的數(shù)字式溫度傳感器DS18B20,四位一體數(shù)碼管顯示溫度值。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫度傳感器;數(shù)碼管
1 總體設(shè)計(jì)方案
系統(tǒng)電路采用STC89C52單片機(jī)作為控制核心,它是一種低損耗、高性能、CMOS八位微處理器,片內(nèi)有4k字節(jié)的在線可重復(fù)編程、快速擦除快速寫入程序的存儲(chǔ)器。
浴室水溫控制系統(tǒng)的基本功能:可以設(shè)定上限溫度、下限溫度,超過上限溫度保溫,低于下限溫度加熱,本設(shè)計(jì)中的保溫和加熱用發(fā)光二極管的亮滅來演示。測(cè)溫范圍:0-125度,精度0.1度。系統(tǒng)以單片機(jī)STC89C52為核心,有電源電路、時(shí)鐘電路、復(fù)位電路、溫度傳感器DS18B20、按鍵及LED,發(fā)光二極管,報(bào)警等顯示電路構(gòu)成。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 傳感器的測(cè)溫實(shí)現(xiàn)
本設(shè)計(jì)選用DS18B20“單總線”溫度傳感器,采用外部電源+5V供電,溫度傳感器DS18B20的3腳和單片機(jī)共用5V直流電壓,1腳接地,2腳和單片機(jī)的P3.4相連,因?yàn)镈S18B20的2腳數(shù)據(jù)線是漏極開路,本身不具備輸出高電平的能力,單片機(jī)讀“1”信號(hào)必須通過其他方式來實(shí)現(xiàn),典型的方法就是外接上拉電阻。
根據(jù)DSl8820的通訊協(xié)議,單片機(jī)控制DSl8820完成溫度轉(zhuǎn)換必須經(jīng)過3個(gè)步驟:每一次讀寫之前都要對(duì)DSl8820進(jìn)行復(fù)位操作,復(fù)位成功后發(fā)送跳過ROM指令,然后發(fā)送RAM指令如本設(shè)計(jì)中的發(fā)溫度轉(zhuǎn)換指令44H和發(fā)讀溫度命令0BEH,這樣DSl8B20就可進(jìn)行預(yù)定的操作。
2.2 蜂鳴器電路
單片機(jī)IO引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動(dòng)不了蜂鳴器,因此需要增加一個(gè)電流放大的電路。本設(shè)計(jì)中使用PNP三極管來實(shí)現(xiàn),蜂鳴器的正極接PNP三極管的集電極,負(fù)極接地。三極管的基級(jí)經(jīng)過470Ω的限流電阻接到單片機(jī)的P3.0引腳,程序控制P3.0引腳的電平來使蜂鳴器發(fā)出聲音。
獨(dú)立式按鍵電路。本設(shè)計(jì)一共有3個(gè)獨(dú)立式按鍵,按鍵的作用是對(duì)溫度的上下限值進(jìn)行設(shè)置。三個(gè)按鍵的功能如下:K1:增加按鍵;K2:減少按鍵;K3:功能鍵,實(shí)現(xiàn)當(dāng)前溫度值,上限值,下限值的切換,并且在上下限值時(shí)可通過K1或K2鍵對(duì)上下限值予以更改。
2.3 LED顯示電路
因?yàn)橐壕э@示器的允許的溫度范圍比較小,如0℃以下時(shí)液晶顯示器反應(yīng)非常慢,甚至不工作,本設(shè)計(jì)采用LED顯示電路,選用一個(gè)共陰四位一體數(shù)碼管,四位一體數(shù)碼管的段選A,B,C,D,E,F(xiàn),G,DP分別與單片機(jī)P0口的各位依次相連,四位一體數(shù)碼管的4個(gè)位選與單片機(jī)的P2.0,P2.1,P2.2,P2.3相連。另外所有直流電壓皆是5v,由USB電源線提供。
3 系統(tǒng)軟件設(shè)計(jì)
主函數(shù)循環(huán)調(diào)用讀取溫度函數(shù),溫度顯示函數(shù)、按鍵掃描函數(shù),并把當(dāng)前溫度值與按鍵設(shè)置的上下限值進(jìn)行判斷。主函數(shù)如下所示:
void main()
{f2=0;
mak=1;
while(1)
{delay(1);
read_temp();//讀取溫度
final_temp=tvalue;
if(mak==1)
{display2(final_temp);}
timeset();
if(final_temp/10>HTEMP)
{jiawen=1;
baowen=0;
bebe=0;
baojing=0;
delay(20);
baojing=1;
delay(10);}
else
if(final_temp/10 {jiawen=0; baowen=1; bebe=1;} }} 4 系統(tǒng)仿真與實(shí)物 將在Keil中編譯好的程序,編譯下載后生成.HEX代碼文件,灌入到Proteus軟件繪制的硬件圖的單片機(jī)中,運(yùn)行仿真,會(huì)看到數(shù)碼管顯示溫度傳感器的溫度值,人為改變硬件圖中溫度傳感器的溫度值,會(huì)看到數(shù)碼管顯示的溫度值也隨之改變,再通過按功能鍵K3,配合K1、K2來設(shè)置溫度的上下限值,當(dāng)前顯示的溫度值超過設(shè)置的上下限值時(shí),蜂鳴器會(huì)發(fā)出報(bào)警聲音,聲音的頻率可通過程序的延時(shí)時(shí)間來設(shè)置。根據(jù)可靠的仿真結(jié)果,也制作了相應(yīng)的實(shí)物,實(shí)物調(diào)試也比較成功,總之,本次設(shè)計(jì)能夠達(dá)到溫度控制的要求,取得了比較滿意的效果。 [參考文獻(xiàn)] [1]DS18B20英文數(shù)據(jù)手冊(cè). [2]彭芬.單片機(jī)C語言應(yīng)用技術(shù)[M].西安:西安電子科技大學(xué)出版社,2012.02. [3]周月霞,孫傳友.DSl8820硬件連接及軟件編程[J].傳感器世界,2001(12):25—29. [4]葉丹.基于單片機(jī)的自適應(yīng)溫度控制系統(tǒng)[J].傳感器技術(shù),2002,21(3)27-30.