版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 目錄第1章 恒溫控制系統(tǒng)完成的功能1 第2章 總體設(shè)計(jì)方案1 2.1 單片機(jī)主控制電路1 2.3 溫度測量與控制模塊1 2.2 人機(jī)交互模塊2第3 章 硬件電路詳細(xì)設(shè)計(jì) 2 3.1 單片機(jī)最小系統(tǒng)2 3.2 人機(jī)交互模塊3 3.3 測溫模塊5 3.4 溫度控制模塊5 3.5 總電路圖6 第4 章 系統(tǒng)軟件設(shè)計(jì)6 4.1 原理框圖6 4.
2、2 詳細(xì)程序8 結(jié)論16參考文獻(xiàn)16 第1章 恒溫控制系統(tǒng)完成的功能 本恒溫控制系統(tǒng)設(shè)計(jì)采用現(xiàn)在流行的51系列單片機(jī),配以DS18B20數(shù)字溫度傳感器,能夠較精確的控制溫度,并顯示設(shè)定溫度與當(dāng)前溫度。單片機(jī)將實(shí)時(shí)檢測到的溫度與設(shè)定的溫度進(jìn)行比較,根據(jù)兩者差值決定是否讓加熱電阻加熱以及加熱多長時(shí)間。 實(shí)現(xiàn)了基本的溫度控制功能:當(dāng)溫度低于設(shè)定溫度1時(shí),單片機(jī)輸出高電平,控制大功率三極管導(dǎo)通,進(jìn)而使得加熱電阻通電,加熱電阻加熱,溫度快速上升,同時(shí)紅燈亮。當(dāng)溫度上升到與設(shè)定溫度差值小于1時(shí),單片機(jī)輸出高低電平的時(shí)間不相等,也就是加熱電阻的通斷時(shí)間不等,使得溫度緩慢上升
3、,同時(shí)紅、綠燈都亮。當(dāng)溫度上升到設(shè)定溫度時(shí),單片機(jī)輸出低電平,三極管截止,加熱電阻停止加熱,同時(shí)綠燈亮。 數(shù)碼管實(shí)時(shí)顯示溫度,精確到小數(shù)點(diǎn)后一位,同時(shí)可以通過2個(gè)按鍵調(diào)節(jié)設(shè)定溫度。 第2章 總體設(shè)計(jì)方案系統(tǒng)總體框圖如圖1所示。 單 片 機(jī) 被 控 制 對 象溫度測量人機(jī)交互模塊 溫度控制2.1 單片機(jī)主控制電路 主控制電路采用STC 89C52的單片機(jī)作為控制主機(jī)。89C52作為51系列單片機(jī)的一種,其使用性能穩(wěn)定,價(jià)格便宜,完全能夠滿足此次設(shè)計(jì)的需求。89C52內(nèi)部集成了程序存儲(chǔ)器,可以裝載用戶程序,方便使用。 外 部 接 口 電 路 電 源 ST
4、C 89C52 單 片 機(jī) 時(shí)鐘電路 復(fù)位電路燒錄口2.2 溫度測量與控制模塊 溫度測量模塊采用美國DALLAS半導(dǎo)體公司的DS18B20溫度傳感器。該傳感器與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度。這一部分主要完成對溫度信號(hào)的采集和轉(zhuǎn)換工作,由DS18B20數(shù)字溫度傳感器及其與單片機(jī)的接口部分組成。數(shù)字溫度傳感器DS18B20把采集到的溫度通過數(shù)據(jù)引腳P1.3傳到單片機(jī),單片機(jī)接受溫度并存儲(chǔ)。 溫度控制模塊采用FAIRYCHILD的8N60C開關(guān)管、10W10的水泥電阻。由單片機(jī)根據(jù)設(shè)定溫度與測量溫度之差決定輸出高低電平,控制8N60C開關(guān)管的通斷,近而控制水泥電阻加熱
5、。STC 89C52單片機(jī)被 控 制對 象DS18B20溫度傳感器控制信號(hào)8N60C開關(guān)管10W1的水泥電阻10V直流電2.2 人機(jī)交互模塊 人機(jī)交互模塊主要包括鍵盤、數(shù)碼管、LED指示燈,其中鍵盤用于供用戶輸入溫度期望值,數(shù)碼管用于顯示用戶設(shè)定溫度及控制對象中溫度,LED指示燈用于指示系統(tǒng)工作狀態(tài)(加熱中,加熱過高時(shí))。 鍵盤 STC 89C52 單 片 機(jī) 數(shù)碼管 LED指示燈 第3章 硬件電路詳細(xì)設(shè)計(jì)3.1 單片機(jī)最小系統(tǒng): 包括電源電路、復(fù)位電路、時(shí)鐘電路、燒錄口共四個(gè)單元,其中電源電路與燒錄口省略。電路圖如下: 其中,31端口接高電平,表明單片機(jī)復(fù)位后
6、訪問內(nèi)部程序存儲(chǔ)器;由于P0口作為輸出口時(shí)處于漏極開路狀態(tài),所以必須外接上拉電阻,如果后期實(shí)驗(yàn)中不使用其作為輸出口,則此處可省略。 3.2 人機(jī)交互模塊:(1) 、數(shù)碼管: 其中,采用8段共陰數(shù)碼管,P0、P2口輸出段碼、位碼,P1.4和P1.6為段鎖存,P1.5和P1.7為位鎖存。數(shù)碼管上面四位顯示用戶測量溫度,下面四位顯示用戶設(shè)定溫度。(2) 、LED指示燈: 其中,指示燈綠色用于指示加熱溫度過高、紅色用于指示加熱中,當(dāng)兩個(gè)LED均亮起時(shí),表示當(dāng)前溫度接近設(shè)定溫度,也可理解成保溫狀態(tài)。(3) 、按鍵 其中,上面的按鍵表示溫度上升1、下面的按鍵表示溫度下降1。3.3 測溫
7、模塊: 測溫模塊采用美國DALLAS半導(dǎo)體公司的DS18B20溫度傳感器。其輸出與P1.3相連。3.4 溫度控制模塊: 8N60C是仙童公司出品的一款N溝道的MOSFET,最小開啟電壓為4V,最大關(guān)斷電壓為2V,故可以直接接在單片機(jī)IO口,由高低電平控制通斷。 8N60C的柵極(G)與P1.2相連,源級(S)接地(注意與單片機(jī)控制端共地,否則將導(dǎo)致無法關(guān)斷),漏極(D)接水泥電阻,水泥電阻另一端接10V直流電。 水泥電阻是將電阻線繞在無堿性耐熱瓷件上,外面加上耐熱、耐濕及耐腐蝕材料,并把繞線電阻體放入方形瓷器框內(nèi),用特殊不燃性耐熱水泥充填密封而成。水泥電阻的外側(cè)主要是陶瓷材質(zhì)。3.5
8、 總電路圖: 第4章 系統(tǒng)軟件設(shè)計(jì)4.1 原理框圖:(1) 、主程序 開始 按鍵輸入端口置高,定時(shí)器初始化調(diào)用讀溫度子程序顯示被測溫度和用戶設(shè)定溫度Y是否按下加溫度設(shè)定鍵?設(shè)定溫度加1NY是否按下減溫度設(shè)定鍵?設(shè)定溫度減1N初始設(shè)定溫度為20當(dāng)前溫度<設(shè)定溫度1YP1.2置高電平,加熱電阻加熱,紅燈亮NY當(dāng)前溫度>=設(shè)定溫度?P1.2置低電平,加熱電阻停止加熱,綠燈亮N調(diào)節(jié)P1.2的高低電平時(shí)間長短的比例,紅綠燈同時(shí)亮系統(tǒng)是否斷電?NY 結(jié)束(2) 、定時(shí)器T0中斷程序定時(shí)器T0中斷 定時(shí)器初始化調(diào)用數(shù)碼管顯示子程序N計(jì)數(shù)>300?Y 讀溫度標(biāo)志置1 中斷
9、返回4.2 詳細(xì)程序:(1)、主程序/*- 名稱:恒溫控制系統(tǒng)采用DS18b20并用數(shù)碼管顯示當(dāng)前測的溫度 和用戶設(shè)定的溫度,用戶可用按鍵增加或減小溫度。 編寫:1013105班小組 日期:2013.10 內(nèi)容:精確到小數(shù)點(diǎn)后一位,顯示格式 符號(hào) xxx.x C-*/#include<reg52.h> /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include "18b20.h"#include "delay.h"#define DataPort0 P0 /定義數(shù)據(jù)端口 程序中遇到DataPort0 則用P0
10、替換#define DataPort1 P2 /定義數(shù)據(jù)端口 程序中遇到DataPort1 則用P1 替換sbit LED_Green=P10;/定義綠色指示燈sbit LED_Red=P11;/定義紅色指示燈sbit PWM=P12; /定義加熱端口sbit LATCH1=P14;/定義鎖存使能端口 段鎖存sbit LATCH2=P15;/ 位鎖存sbit LATCH3=P16;/定義鎖存使能端口 段鎖存sbit LATCH4=P17;/ 位鎖存sbit KEY_ADD=P32;/定義按鍵輸入端口 增加1度sbit KEY_DEC=P33;/減小1度bit ReadTempFlag1;/定義
11、讀時(shí)間標(biāo)志1unsigned char code DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 顯示段碼值09unsigned char code WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分別對應(yīng)相應(yīng)的數(shù)碼管點(diǎn)亮,即位碼unsigned char TempData18; /存儲(chǔ)顯示值的全局變量1unsigned char TempData28; /存儲(chǔ)顯示值的全局變量2/*- 函數(shù)聲明-*/void DelayUs2x(unsigned char t);/us延時(shí)函
12、數(shù) void DelayMs(unsigned char t); /ms延時(shí)函數(shù)void Display1(unsigned char FirstBit,unsigned char Num);/數(shù)碼管1顯示當(dāng)前測的溫度函數(shù)void Display2(unsigned char FirstBit,unsigned char Num);/數(shù)碼管2顯示用戶設(shè)定溫度函數(shù)void Init_Timer0(void);/定時(shí)器T0初始化函數(shù)/*- 主函數(shù)-*/void main (void) unsigned int TempH,TempL,temp; unsigned char usertemp=20;
13、/開機(jī)設(shè)定20度 KEY_ADD=1; /按鍵輸入端口電平置高 KEY_DEC=1; Init_Timer0(); while (1) /主循環(huán) /*- 顯示當(dāng)前測得的溫度-*/ if(ReadTempFlag1=1) ReadTempFlag1=0; temp=ReadTemperature(); TempH=temp>>4; TempL=temp&0x0F; TempL=TempL*6/10;/小數(shù)近似處理 if(TempH/10=0) /不考慮負(fù)溫度 TempData10=0;/消隱 else TempData10=DuanMaTempH/10; /十位溫度 Temp
14、Data11=DuanMaTempH%10|0x80; /個(gè)位溫度,帶小數(shù)點(diǎn) TempData12=DuanMaTempL;/顯示小數(shù)點(diǎn)后一位 TempData13=0x39; /顯示C符號(hào) /*- 顯示用戶設(shè)定的溫度-*/ if(!KEY_ADD) /如果檢測到低電平,說明按鍵按下 DelayMs(10); /延時(shí)去抖,一般10-20ms if(!KEY_ADD) /再次確認(rèn)按鍵是否按下,沒有按下則退出 while(!KEY_ADD);/如果確認(rèn)按下按鍵等待按鍵釋放,沒有釋放則一直等待 if(usertemp<50) /加操作 usertemp+; if(!KEY_DEC) /如果檢測
15、到低電平,說明按鍵按下 DelayMs(10); /延時(shí)去抖,一般10-20ms if(!KEY_DEC) /再次確認(rèn)按鍵是否按下,沒有按下則退出 while(!KEY_DEC);/如果確認(rèn)按下按鍵等待按鍵釋放,沒有釋放則一直等待 if(usertemp>10) /減操作 usertemp-; TempData20=DuanMausertemp/10; TempData21=DuanMausertemp%10|0x80; TempData22=DuanMa0; TempData23=0x39; Display2(0,4);/*- 紅綠燈指示加溫狀態(tài) -*/ if(TempH<use
16、rtemp-1)/當(dāng)測的溫度低于用戶設(shè)定溫度1度時(shí),紅燈亮, /PWM=1三極管導(dǎo)通,加熱電阻快速加熱 LED_Red=0; LED_Green=1; PWM=1; else if(TempH>=usertemp)/當(dāng)測的溫度高于用戶設(shè)定溫度時(shí),綠燈亮, /PWM=0三極管關(guān)閉,加熱電阻停止加熱 LED_Red=1; LED_Green=0; PWM=0; else / 當(dāng)測的溫度與用戶設(shè)定溫度的差值小于1度且沒達(dá)到用戶設(shè)定溫度時(shí),加熱 LED_Red=0;/電阻加熱,紅綠燈都亮,當(dāng)溫度超過設(shè)定溫度時(shí),綠燈亮,加熱電阻又 LED_Green=0;/會(huì)斷開,從而導(dǎo)致溫度維持一定范圍,紅燈會(huì)
17、閃爍,代表溫度恒定。 PWM=1; /*- 顯示函數(shù),用于動(dòng)態(tài)掃描數(shù)碼管 輸入?yún)?shù) FirstBit 表示需要顯示的第一位,如賦值2表示從第三個(gè)數(shù)碼管開始顯示 如輸入0表示從第一個(gè)顯示。 Num表示需要顯示的位數(shù),如需要顯示99兩位數(shù)值則該值輸入2-*/void Display1(unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort0=0; /清空數(shù)據(jù),防止有交替重影 LATCH1=1; /段鎖存 LATCH1=0; DataPort0=WeiMai+FirstBit; /取位碼 LATCH2=
18、1; /位鎖存 LATCH2=0; DataPort0=TempData1i; /取顯示數(shù)據(jù),段碼 LATCH1=1; /段鎖存 LATCH1=0; i+; if(i=Num) i=0;void Display2(unsigned char FirstBit,unsigned char Num) unsigned char i; for(i=0;i<Num;i+) DataPort1=0; /清空數(shù)據(jù),防止有交替重影 LATCH3=1; /段鎖存 LATCH3=0; DataPort1=WeiMai+FirstBit; /取位碼 LATCH4=1; /位鎖存 LATCH4=0; Data
19、Port1=TempData2i; /取顯示數(shù)據(jù),段碼 LATCH3=1; /段鎖存 LATCH3=0; DelayMs(2); / 掃描間隙延時(shí),時(shí)間太長會(huì)閃爍,太短會(huì)造成重影 /*- 定時(shí)器T0初始化子程序-*/void Init_Timer0(void) TMOD |= 0x01; /使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響 /TH0=0x00; /給定初值 /TL0=0x00; EA=1; /總中斷打開 ET0=1; /允許定時(shí)器T0中斷 TR0=1; /啟動(dòng)定時(shí)器T0/*- 定時(shí)器T0中斷子程序-*/void Timer0_isr(v
20、oid) interrupt 1 static unsigned int num; TH0=(65536-2000)/256; /重新賦值 2ms TL0=(65536-2000)%256; Display1(0,4); / 調(diào)用數(shù)碼管掃描 num+; if(num=300) / num=0; ReadTempFlag1=1; /讀標(biāo)志位置1(2) 、18B20.c程序#include"delay.h"#include"18b20.h"/*- 18b20初始化-*/bit Init_DS18B20(void) bit dat=0; DQ = 1; /DQ
21、復(fù)位 DelayUs2x(5); /稍做延時(shí) DQ = 0; /單片機(jī)將DQ拉低 DelayUs2x(200); /精確延時(shí) 大于 480us 小于960us DelayUs2x(200); DQ = 1; /拉高總線 DelayUs2x(50); /1560us 后 接收60-240us的存在脈沖 dat=DQ; /如果x=0則初始化成功, x=1則初始化失敗 DelayUs2x(25); /稍作延時(shí)返回 return dat;/*- 讀取一個(gè)字節(jié)-*/unsigned char ReadOneChar(void)unsigned char i=0;unsigned char dat = 0
22、;for (i=8;i>0;i-) DQ = 0; / 給脈沖信號(hào) dat>>=1; DQ = 1; / 給脈沖信號(hào) if(DQ) dat|=0x80; DelayUs2x(25); return(dat);/*- 寫入一個(gè)字節(jié)-*/void WriteOneChar(unsigned char dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; DelayUs2x(25); DQ = 1; dat>>=1; DelayUs2x(25);/*- 讀取溫度-*/unsign
23、ed int ReadTemperature(void)unsigned char a=0;unsigned int b=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號(hào)列號(hào)的操作WriteOneChar(0x44); / 啟動(dòng)溫度轉(zhuǎn)換DelayMs(10);Init_DS18B20();WriteOneChar(0xCC); /跳過讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度a=ReadOneChar(); /低位b=ReadOneChar(); /高
24、位b<<=8;t=a+b;return(t);(3) 、18B20.h程序#ifndef _DS18B20_H_#define _DS18B20_H_#include<reg52.h> /包含頭文件,一般情況不需要改動(dòng),頭文件包含特殊功能寄存器的定義#include<intrins.h>#define uchar unsigned char#define uint unsigned int;/*- 端口定義-*/sbit DQ=P13;/ds18b20 端口/*- 函數(shù)聲明-*/unsigned int ReadTemperature(void);bit I
25、nit_DS18B20(void);unsigned char ReadOneChar(void);void WriteOneChar(unsigned char dat);#endif(4) 、delay.c程序#include "delay.h"/*- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請使用匯編,大致延時(shí) 長度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t) while(-t);/*-
26、 mS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請使用匯編-*/void DelayMs(unsigned char t) while(t-) /大致延時(shí)1mS DelayUs2x(245); DelayUs2x(245); (5) 、delay.h程序#ifndef _DELAY_H_#define _DELAY_H_/*- uS延時(shí)函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號(hào)字符變量,其值的范圍是 0255 這里使用晶振12M,精確延時(shí)請使用匯編,大致延時(shí) 長度如下 T=tx2+5 uS -*/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年工業(yè)地產(chǎn)有償轉(zhuǎn)讓協(xié)議
- 2024年度南京二手房交易合同
- 2024年度水果交易合同模板
- 【初中生物】病毒教學(xué)課件2024-2025學(xué)年人教版生物七年級上冊
- 2024年度法律服務(wù)委托合同
- 2024年度工程監(jiān)理合同標(biāo)的及服務(wù)內(nèi)容具體描述
- 2024年工程勞務(wù)分包補(bǔ)充協(xié)議
- 2024個(gè)人向公司借款合同范本(簡單版)
- 2024冷卻塔填料生產(chǎn)工藝優(yōu)化合同
- 2024年度CFG樁基工程水土保持合同
- 人教版七年級地理上冊:第二章+第二節(jié)海陸變遷海陸的變遷共38張PPT(三亞實(shí)驗(yàn)中學(xué)王玉芳)
- 半導(dǎo)體簡答題
- 附件4:配網(wǎng)安健環(huán)設(shè)施標(biāo)準(zhǔn)配置
- 辦公室工作流程圖示
- (完整版)營銷策劃服務(wù)清單
- OBE理念與人才培養(yǎng)方案制定PPT課件
- 離任審計(jì)工作方案 樣稿
- 四大名著稱四大小說三國演義西游記水滸傳紅樓夢中國古典章回小說PPT資料課件
- 港珠澳大橋項(xiàng)目管理案例分析PPT課件
- GB∕T 12810-2021 實(shí)驗(yàn)室玻璃儀器 玻璃量器的容量校準(zhǔn)和使用方法
評論
0/150
提交評論