1.基于AT89C52單片機(jī)和DS18B02溫度測(cè)量接口的溫度控制調(diào)節(jié)完整電路;
2.采用4位共陽(yáng)極數(shù)碼管顯示設(shè)定溫度值與實(shí)際溫度值(℃);
3.利用蜂鳴器實(shí)現(xiàn)達(dá)到預(yù)設(shè)溫度的報(bào)警
2 總體方案設(shè)計(jì) 2.1 硬件方案

圖1.1系統(tǒng)結(jié)構(gòu)框圖
圖1.1為簡(jiǎn)易溫度控制器的系統(tǒng)結(jié)構(gòu)框圖,由鍵盤(pán),DS18B20溫度采集接口,數(shù)碼管,蜂鳴器,繼電器連接加熱設(shè)備組成。。 2.1.1.溫度檢測(cè)部分 采用美國(guó)DALLAS半導(dǎo)體公司的DS18B20智能型溫度傳感器,使用方便、接口簡(jiǎn)單,與CPU通信采用并口通信方式。 - 測(cè)量范圍:-55℃~125℃(在-10℃~85℃范圍內(nèi)測(cè)量誤差為±0.5℃;12位分辨率時(shí),最多750ms完成溫度值的數(shù)字轉(zhuǎn)換,溫度分辨率為0.0625)
結(jié)構(gòu):該器件有3個(gè)引腳:輸入/輸出引腳及電源和地;內(nèi)部有三個(gè)主要器件:64位ROM、溫度傳感器和報(bào)警觸發(fā)器。 - 電源連接:該器件可由外部5V電源VDD供電,也可以從單總線上取得電源。

圖1.2 DS18B20內(nèi)部結(jié)構(gòu) 
圖1.3 DS18B20封裝圖 2.1.2.顯示部分 顯示模塊電路采用4個(gè)共陽(yáng)極八位數(shù)碼管顯示。位選口為單片機(jī) P1.0~P1.3 I/O口,四個(gè)數(shù)碼管共用一組段選口為單片機(jī) P0~P7 I/O口。采用動(dòng)態(tài)顯示方法。電路如圖1.4所示: 
圖1.4 數(shù)碼管電路圖
2.1.3.鍵盤(pán)部分 鍵盤(pán)部分采用單一按鍵形式,設(shè)置兩個(gè)鍵:加1鍵、減1鍵用來(lái)調(diào)節(jié)溫度顯示。 
圖1.5 鍵盤(pán)電路圖 2.1.4.溫度控制部分 繼電器 2.2 軟件方案2.2.1.主程序 主要功能是完成DS18的初始化工作,并進(jìn)行讀溫度,將溫度轉(zhuǎn)化為壓縮BCD碼并在顯示器上顯示傳感器實(shí)際溫度。
2.2.2.讀出溫度子程序 讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時(shí)需要進(jìn)行CRC校驗(yàn),校驗(yàn)有錯(cuò)時(shí)不進(jìn)行溫度數(shù)據(jù)的改寫(xiě),其程序框圖如下圖所示: 
圖2.1系統(tǒng)程序框圖
3 硬件設(shè)計(jì)與實(shí)踐
3.1 測(cè)量電路本系統(tǒng)由主控模塊、信號(hào)顯示模塊、溫度檢測(cè)模塊、報(bào)警模塊、設(shè)定報(bào)警溫度和自動(dòng)調(diào)溫6個(gè)模塊。
3.2 硬件連接 
圖3.2硬件連接
3.2.1溫度檢測(cè)  模數(shù)轉(zhuǎn)換器ADC0808引腳圖 電壓信號(hào)模擬溫度信號(hào),通過(guò)ADC0808的轉(zhuǎn)換,將模擬信號(hào)變成數(shù)字信號(hào)傳輸給AT89C52單片機(jī).單片機(jī)根據(jù)程序做出反應(yīng),控制各個(gè)引腳輸出相應(yīng)高低電平信號(hào)使外圍模塊做出相應(yīng)的反應(yīng),從而達(dá)到當(dāng)溫度超出或低于溫度上限時(shí)蜂鳴器報(bào)警,且指示燈點(diǎn)亮,繼電器閉合。
4 軟件設(shè)計(jì)與實(shí)踐 4.1 主程序- void main(void)
- {
- unsigned char c=0;
- unsigned char c0=0;
- unsigned long ldata=2500; //作為顯示的數(shù)據(jù)
- while(1)
- { //循環(huán)掃描按鍵及顯示
- c0=c;
- c=ReadTemperature();
- c=(c/7);
- ldata=(ldata-c0+c);
- switch(ReadKey())
- { //讀取鍵值做以下相應(yīng)處理
- case 1:ldata=ldata+100; //1鍵顯示內(nèi)容加1
- break;
- case 2:ldata=ldata-100; //2鍵顯示內(nèi)容減1
- break;
- case 3:ldata=c; //3鍵顯示內(nèi)容清0
- break;
- }
- display(ldata); //顯示相應(yīng)的數(shù)值,這里用函數(shù)的形式調(diào)用顯示
- delay(10);
- if(c>30)
- Warning();
- else if(c<(ldata/100))
- {
- JDQ=0;
- EJG=1;
- FMQ=1;
- }
- else
- {
- JDQ=1;
- EJG=1;
- FMQ=1;
- }
- }
- }
復(fù)制代碼
4.2 子程序1.鍵盤(pán)部分 - unsigned char ReadKey(void)
- {
- unsigned char lkey=0;
- if((P3&0xe0)!=0xe0){ //檢測(cè)所有按鍵是否有按鍵按下
- FMQ=0; //按鍵按下則蜂鳴器發(fā)聲
- delay(10); //有按鍵按下則延時(shí)一段時(shí)間,以消除按鍵拌動(dòng)
- if(oldkey!=(P3&0xe0)){//檢測(cè)按鍵未松開(kāi)而且不是之前按下的按健就進(jìn)入讀鍵值,否則不作處理
- oldkey=P3&0xe0; //保存當(dāng)前狀態(tài),為下一次掃描做判斷,請(qǐng)看上一行
- if(key1==0)
- lkey=1; //第一個(gè)鍵按下復(fù)值1
- else if(key2==0)
- lkey=2; //第二個(gè)鍵按下復(fù)值2
- else if(key3==0)
- lkey=3; //第三個(gè)鍵按下復(fù)值3
- }
- }
- else{
- oldkey=0xe0; //如果都沒(méi)有按鍵按下,將復(fù)值初始狀態(tài)
- FMQ=1; //無(wú)按鍵按下則退出蜂鳴
- }
- return lkey;
- }
- 2. 顯示部分
- void display(unsigned int da)
- {
- P0=0XFF; //
- da=da%10000;
- switch(l_posit){
- case 0: //選擇千位數(shù)碼管,關(guān)閉其它位
- SMG_q=1;
- SMG_b=0;
- SMG_s=0;
- SMG_g=0;
- P0=table[da/1000]; //輸出顯示內(nèi)容
- break;
- case 1: //選擇百位數(shù)碼管,關(guān)閉其它位
- SMG_q=0;
- SMG_b=1;
- SMG_s=0;
- SMG_g=0;
- P0=table[da%1000/100];
- break;
- case 2: //選擇十位數(shù)碼管,關(guān)閉其它位
- SMG_q=0;
- SMG_b=0;
- SMG_s=1;
- SMG_g=0;
- P0=table[da%100/10];
- break;
- case 3: //選擇個(gè)位數(shù)碼管,關(guān)閉其它位
- SMG_q=0;
- SMG_b=0;
- SMG_s=0;
- SMG_g=1;
- P0=table[da%10];
- break;
- }
- l_posit++; //每調(diào)用一次將輪流顯示一位
- if(l_posit>3)
- l_posit=0; }
復(fù)制代碼
5 調(diào)試及性能分析
5.1調(diào)試分析 本次設(shè)計(jì)溫度控制器根據(jù)溫度傳感器測(cè)得的溫度值,由軟件查詢判斷是否達(dá)到編程設(shè)定的值,如果超過(guò)溫度上限,即預(yù)置溫度小于當(dāng)前溫度,蜂鳴器響報(bào)警,啟動(dòng)風(fēng)扇以溫度值返回到閾值以下;如果溫度達(dá)到下線閾值,則同樣使溫度返回。 5.2性能分析1、對(duì)于設(shè)計(jì)采用89C52單片機(jī)作為溫度控制的主CPU芯片,系統(tǒng)硬件設(shè)備結(jié)構(gòu)簡(jiǎn)單合理,成本低,實(shí)時(shí)性好。 2、采用DS18B20作為溫度測(cè)量接口,它是具有單總線接口的數(shù)字溫度傳感器。該器件具有接線簡(jiǎn)單,功耗低,體積小等特點(diǎn)。 3、針對(duì)采用數(shù)碼管顯示溫度值,直觀、穩(wěn)定,易于實(shí)現(xiàn)。 4、溫度控制器的功能還有待進(jìn)一步擴(kuò)充,如高溫?cái)嚯;電路布局、和抗干擾方面。 結(jié) 論本文給出了一種單片機(jī)實(shí)現(xiàn)簡(jiǎn)易溫度控制系統(tǒng),克服了傳統(tǒng)方法的不足,可以達(dá)到低溫加熱,高溫報(bào)警的效果。該溫度控制系統(tǒng)具有測(cè)量溫度準(zhǔn),調(diào)節(jié)溫度快的優(yōu)點(diǎn)。主要通過(guò)學(xué)習(xí)了DS18B02溫度測(cè)量接口、89C52單片機(jī)、數(shù)碼管顯示等知識(shí),查閱了相關(guān)資料,簡(jiǎn)易溫度控制器的基本要求,低溫上電,高溫報(bào)警,對(duì)溫度上下限進(jìn)行合理地設(shè)置,實(shí)時(shí)顯示溫度。所設(shè)計(jì)的系統(tǒng)具有以下功能: 1、對(duì)于設(shè)計(jì)采用89C52單片機(jī)作為溫度控制的主CPU芯片,系統(tǒng)硬件設(shè)備結(jié)構(gòu)簡(jiǎn)單合理,成本低,實(shí)時(shí)性好。 2、采用DS18B20作為溫度測(cè)量接口,它是具有單總線接口的數(shù)字溫度傳感器。該器件具有接線簡(jiǎn)單,功耗低,體積小等特點(diǎn)。 3、針對(duì)采用數(shù)碼管顯示溫度值,直觀、穩(wěn)定,易于實(shí)現(xiàn)。 4、溫度控制器的功能還有待進(jìn)一步擴(kuò)充,如高溫?cái)嚯;電路布局、和抗干擾方面。 還有很大的提升空間。
調(diào)試系統(tǒng)照片
附錄3 程序全文 完整的Word格式文檔51黑下載地址:
好萊塢的單片機(jī)課程設(shè)計(jì)報(bào)告.doc
(2.44 MB, 下載次數(shù): 54)
2019-6-27 20:06 上傳
點(diǎn)擊文件名下載附件
|