智能溫度控制器_第1頁
智能溫度控制器_第2頁
智能溫度控制器_第3頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、智能溫度控制器系別:電子信息工程專業(yè):計(jì)算機(jī)控制技術(shù)班級:姓名:控制 ( 一) 班 網(wǎng)學(xué)號:482011 年 11 月 29 日數(shù)字溫控器課程設(shè)計(jì)任務(wù)書1. 設(shè)計(jì)要求(1) 基本范圍-50 C -110 °C(2) 精度誤差小于0.1 C(3) LED數(shù)碼直讀顯示2. 擴(kuò)展功能(1) 實(shí)現(xiàn)語音報(bào)數(shù)(2) 可以任意設(shè)定溫度的上下限報(bào)警功能3. 設(shè)計(jì)內(nèi)容 (1)畫出電路原理圖,正確使用邏輯關(guān)系;(2) 確定元器件及元件參數(shù);(3) 進(jìn)行電路模擬仿真;(4) SCH文件生成與打印輸出;4. 編寫設(shè)計(jì)報(bào)告寫出設(shè)計(jì)的全過程,附上有關(guān)資料和圖紙,有心得體會5. 答辯在規(guī)定時間內(nèi),完成敘述并回答問

2、題(一)引言(二)關(guān)鍵字(三)設(shè)計(jì)的題目(四)課程設(shè)計(jì)的基本要求(五)方案設(shè)計(jì)( 六 ) 系統(tǒng)設(shè)計(jì)方案及框圖( 七 ) 數(shù)據(jù)信號的采集和處理( 八) 系統(tǒng)硬件電路( 九 ) 系統(tǒng)軟件、引言隨著科技的不斷發(fā)展,二十一世紀(jì)已經(jīng)進(jìn)入電子信息時代的軌道。為 了能夠更好的適應(yīng)社會的發(fā)展和需要,學(xué)好電子方面的知識對于我們這些 二十一世紀(jì)的大學(xué)生是尤為重要的,單片機(jī)更是如此。如此同時,設(shè)計(jì)新 的電子產(chǎn)品對我們學(xué)校所學(xué)知識的一種掌握和鞏固。許多情況下需要測量溫度參數(shù)。 通常測溫系統(tǒng)的主要器件是熱敏電阻, 由于它體積小、重復(fù)性好、測量方法簡單,所以在測溫系統(tǒng)中廣泛應(yīng)用。 但采用熱敏電阻的測溫系統(tǒng)需要 A/D 轉(zhuǎn)

3、換,而且測量溫度不高。我們可以 利用學(xué)習(xí)過的知識設(shè)計(jì)一個智能溫度控制器。二、關(guān)鍵字單片機(jī)Lmo16L晶顯示器、AT89C5係列芯片、ADC0808系列芯片三、設(shè)計(jì)題目智能溫度控制器四、課程設(shè)計(jì)的基本要求1 熟悉任務(wù),分析課程要求,熟悉溫度控制的原理,進(jìn)行方案設(shè)計(jì); 掌握系統(tǒng)設(shè)計(jì)要領(lǐng)。2完成溫度測控的設(shè)計(jì)。3相關(guān)知識:單片機(jī)原理、電子技術(shù)、數(shù)字( A/D )轉(zhuǎn)換電路。4完成硬件電路設(shè)計(jì)和裝調(diào),編寫程序?qū)崿F(xiàn)其他功能;撰寫課程設(shè)計(jì) 報(bào)告。五、方案設(shè)計(jì)課程設(shè)計(jì)方法根據(jù)實(shí)驗(yàn)的要求設(shè)計(jì)出一套較為科學(xué)合理的實(shí)驗(yàn)方案,初步 確定嫖和預(yù)期的結(jié)果,畫出一份較為完整實(shí)驗(yàn)原理電路圖,這也是實(shí)驗(yàn)前 期的預(yù)備階段。這一階

4、段的主要任務(wù)是準(zhǔn)備好實(shí)驗(yàn)所需求的元件功能資料,其包括: 畫出方框圖,查閱有關(guān)芯片的功能及引腳圖;搞清楚各個元件的功能,畫 出實(shí)驗(yàn)草圖。將各種方案進(jìn)行可行性論證,然后確定實(shí)驗(yàn)方案。此次題目設(shè)計(jì)中的顯示方式:利用 LCD液晶進(jìn)行相關(guān)數(shù)據(jù)的輸 顯示。傳感器選擇:利用熱敏電阻經(jīng)過 A/D轉(zhuǎn)換后進(jìn)行數(shù)據(jù)處理六、系統(tǒng)設(shè)計(jì)方案及框圖系統(tǒng)設(shè)計(jì)采用AT89C51單片機(jī)控件,LCD液晶顯示當(dāng)前溫度和時間。ADC 數(shù)字溫度傳感器負(fù)責(zé)把溫度變化轉(zhuǎn)換成控制器可以識別的數(shù)字量,然后通 過芯片內(nèi)部的總線上傳給控制器??刂破鲗⒈碚鳟?dāng)前溫度值的數(shù)字量處理 后通過直觀的LCD進(jìn)行溫度顯示,同時可以通過鍵盤控制進(jìn)行相應(yīng)的操作, 如

5、設(shè)溫度的上下限值等。AT89S5偽核心、DS18B2C為溫度傳感元件。只要在所設(shè)定的上下溫度 界限內(nèi),就會在顯示設(shè)備中精確的顯示出來,如果溫度超過了所設(shè)定的溫 度上下限,就會自動發(fā)出報(bào)警信號。另外此溫度控制器操作簡單,靈敏度 高,測溫范圍寬,一般能滿足日常測溫的需求??傮w設(shè)計(jì)方框圖如圖所示七、數(shù)據(jù)信號的采集和處理數(shù)據(jù)、溫度信號的采集和處理,各引腳的功能如下所示:LCD液晶顯示引腳功能表引符號功能說明腳1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產(chǎn)生 鬼影”使用時可以通過一個 10K的電位器調(diào)整對比度)。4RSR

6、S為寄存器選擇,高電平 1時選擇數(shù)據(jù)寄存器、低電平 0時選擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。6ENE(或EN)端為使能(enable)端,下降沿使能。7D0D7數(shù)據(jù)線8VEE對比度的調(diào)節(jié)寄存器選擇控制表RSR/W操作說明00寫入指令寄存器(清除屏等)01都busy flag ( DB7 ),以及讀取位址計(jì)數(shù)器 (DB0DB6 )值10寫入數(shù)據(jù)寄存器(顯示各字型等)11從數(shù)據(jù)寄存器讀取數(shù)據(jù)注:關(guān)于E=H脈沖一一開始時初始化E為0,然后置E為1,再清0.busy flag ( DB7 ):在此位為被清除為 0時,LCD將無法再處理其他的指

7、令要求。八、系統(tǒng)硬件電路1 控制器內(nèi)部結(jié)構(gòu)本次采用 51系列,具體型號為AT89C51,為8們 微處理器CPU。擁有數(shù)據(jù)存儲器RAM和功能寄存器SFR和內(nèi)部程序存 儲器ROM。如下圖:單片機(jī)的引腳圖及各引腳的功能。(ALE):地址索存U5卜 XTAL1XTAL229M31一 123 45 678RSTPSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7PO.O/ADOP0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A

8、13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39v3735f33f3224243262281022一16仃一(PSEN非):程序存儲允許輸出端 (EA非):程序存儲地址允許輸入端(RST):復(fù)位信號輸入端 (XTAL1 ):接外部石英晶體和微調(diào)電容的一端(XTAL2 ):接外部石英晶體和微調(diào)電容的另一端。P0P3是4個寄存器,也稱為4個端口,是80C51單片機(jī)與外界聯(lián)系的 4個8位雙向并行I/O 口。P0 口:是一個8位的準(zhǔn)雙向I/O 口。P1、P2 口 :是一個帶內(nèi)部上拉電阻的

9、 8位準(zhǔn)雙向I/O 口。P3 口:也是一個帶內(nèi)部上拉電阻的 8位準(zhǔn)雙向I/O 口。具有第二功能 (WR/RD不用時當(dāng)I/O 口用,發(fā)送和接收端)2 控制器具體電路整個系統(tǒng)的控制部分主要完成對溫度感應(yīng)模塊數(shù)據(jù)的讀取和處 理。如圖所示,其中包含微控制器、LCD接口電路、端口上拉電阻、 溫度傳感器模塊接口電路。18XTAL2293031 RSTALE= 1.0P3.0/RXDP3.3/INT1J1 5P1 /R4lkR5 I 'SW2SW-SPSTP1.1P1 2P3.6/WRP3.7/RDP3.4/T0P3.5/T1P3.1/TXDP3.2/INT01P3.3/INT1P3.1/TXDP3

10、.2/INT0 IP3.6/WRP3.7/RDRESPACK-8LCD1LM016LPQ.Q/ADuP0.1/AD1P0.2/AD2P0.3/AD3P0.6/AD6P0.7/AD721U2(CLOCK)U21026CLOCKIN0P0.4/AD4P0.5/AD5U2(CLOCK)U21026CLOCKIN0P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13STARTSTARTIN1IN2P2.7/A15P2.6/A14EOCR32121EOCOUT1OUT1OUT2OUT2OUT3OUT3OUT4OUT5OUT6OUT7OUT8OEADC0808IN3

11、+ 12V+ 12VR31U4:A300I N3I N4IN4IN5IN5IN6I N6IN7I N7ADD AADD BADD CALEVREF( + )VREF(-)25R2R15kD1300LED-RED1K-UPIUCUUPLER-NPN+ 12V1212+ 12V+ 12V+ 12VOJ-SH-112DMD2-ED-REDR71.2kRL1引腳結(jié)構(gòu)ADCU8U8具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端 C、B、A(引腳23、24、25)進(jìn)行選擇。引腳 22為地址鎖存控制端 ALE,當(dāng)輸入為高 電平時,C、B、A引腳輸入的地址鎖存與 ADCU8U8內(nèi)部的鎖存器中,經(jīng)內(nèi)部

12、譯碼電路譯碼選中相應(yīng)的模擬通道。引腳6為啟動轉(zhuǎn)換控制端 START,當(dāng)輸入一個2 us寬的高電平脈沖時,就啟動 ADCU8U8開始對輸入通道的模擬量進(jìn)行 轉(zhuǎn)換。引腳7為A/D轉(zhuǎn)換的結(jié)束信號 EOC。ADCU8U8為逐次比較型 A/D轉(zhuǎn)換 器,當(dāng)開始轉(zhuǎn)換時,EOC信號為低電平,經(jīng)過一定時間,轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)束 信號EOC輸出高電平,轉(zhuǎn)換結(jié)果存放與ADCU8U8內(nèi)部的輸出數(shù)據(jù)鎖存器中。引腳9為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制端 OE,當(dāng)OE為高電平時,存放與輸出數(shù) 據(jù)存儲器中的數(shù)據(jù)通過 ADCU8U8的數(shù)據(jù)線D0D7輸出。ADC0808的內(nèi)部邏輯結(jié)構(gòu)九、系統(tǒng)軟件1.畫圖圖2主程序流程圖圖3 A/D轉(zhuǎn)換子

13、程序流程圖A/D轉(zhuǎn)換子程序用于對 ADC0808的輸入模擬電壓進(jìn)行 A/D轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存為 相應(yīng)的存儲單元中,如圖 3所示2.清單RSP1.2RWP1.1EP1.0(D0D7)P0 口LED P1.4KZ P1.3ON0OFF1KEY0 P1.6KEY1 P1.7START、ALE P3.5EOCp3.3顯示開關(guān)及光標(biāo)設(shè)置: ( 初始化 )0000 1DCR顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)0000 01NS N=1 (讀或?qū)懸粋€字符后地址指針加 1 &光標(biāo)加 1),N=0(讀或?qū)懸粋€字符后地址指針減1 &光標(biāo)減1),S=1 且 N=1 ( 當(dāng)寫

14、一個字符后,整屏顯示左移 )s=0 當(dāng)寫一個字符后,整屏顯示不移動數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0); 02H(顯示回車,數(shù)據(jù)指=0) 寫指令 0cH 顯示開及光標(biāo)設(shè)置3. 程序設(shè)計(jì)分析#include<reg51.h> #include<intrins.h>#define uchar unsigned char #define uint unsigned int#define ON 0#define OFF 1void delay_nms(int); / 延

15、時 bit LCD_busy();/LCD判斷void LCD_write_cmdata(uchar); /LCD 寫命令void LCD_write_wodata(uchar); /LCD 寫數(shù)據(jù) void LCD_Init();/LCD初始化void chartoasc2(uchar ss); / void uinttoasc2(uint ss); / void timeadd(void);/uchar ad(uchar td);/ADfloat bdbhv(uchar ad_dat); / float bdbht(uchar ad_dat); / void tkz(); / uchar

16、rkey();/void gnkey();/void timedir();/void addir();/AD字節(jié)(無符號字符)型數(shù)據(jù)轉(zhuǎn) ASC2嗎 無符號整型數(shù)據(jù)轉(zhuǎn)ASC2嗎 時間進(jìn)位程序轉(zhuǎn)化程序 標(biāo)度變換:轉(zhuǎn)電壓 標(biāo)度變換:轉(zhuǎn)溫度 溫度測控 鍵掃描,返回鍵號 鍵處理 時間顯示數(shù)據(jù)顯示void vin dir();/電壓顯示void tdir();/溫度顯示void thdir();/溫度上限設(shè)定值顯示/端口設(shè)置sbit LCD RS=P1A2;/LCD數(shù)據(jù)/命令sbit LCD RW=P1A1;/LCD讀/寫sbit LCD EA=PM0;/LCD使吏能sbit LCD BF=P0A7;/L

17、CD忙sbit AD_ST=P3A5;/AD啟動sbit AD_OE=P3A4;/AD讀sbit AD_EOC=P3A3;/AD轉(zhuǎn)換結(jié)束sbit LED=P1A4;sbit KZ=P1A3;sbit KEY0=PM6;sbit KEY仁 P1A7;/指示燈 溫度測控端 鍵uchar b1,b2,b3,b4;/中間變量uchar sec, min ,hour;uchar AD DAT;/AD轉(zhuǎn)換結(jié)果ui nt TH,TL;/溫度上下限int n;/時間系數(shù)uchar disl=:"WELCOME TO "uchar dis2=" wo de che ng xu &q

18、uot;uchar dis3=:"WELCOME TO "uchar dis4="zz tao xiao shou"/延時函數(shù)void delay_ nm s(i nt mS) uchar i; while(ms-) for(i=0;i<250;i+)_nop_();_nop_();_nop_();_nop_();/檢查LCD是否忙bit LCD_busy() _bit flag;LCD_RS=0; / 寫命令LCD_RW=1;/讀選擇端LCD_EA=1; if(LCD_BF=1) flag=1;else flag=0;LCD_EA=0; retu

19、r n flag;II開使能II數(shù)據(jù)滿II標(biāo)志位置1II 關(guān)使能II寫命令void LCD_write_cmdata(uchar cmdata)/while(LCD_busy();LCD_RS=0;LCD_RW=0;LCD_EA=1;P0=cmdata;LCD_EA=0; _II寫數(shù)據(jù)void LCD_write_wodata(uchar wodata)IIIIII/等待空閑 寫命令 寫選擇端 開使能關(guān)使能/II等待空閑 寫數(shù)據(jù) II寫選擇while(LCD_busy();LCD_RS=1;LCD_RW=0;LCD_EA=1;P0=wodata;LCD_EA=0;/LCD初始化 void LC

20、D_I nit()LCD_write_cmdata(0x3c); delay_ nm s(1);LCD_write_cmdata(0x0e);II顯示設(shè)置II延時II顯示開關(guān)與光標(biāo)設(shè)置delay_ nm s(1);LCD_write_cmdata(0x06);delay_ nm s(1);Void chartoasc2(uchar ss)|b1=ssI100;b2=(ss-b1*100)I10;b3=(ss-b1*100-b2*10);b仁 b1+0x30;b2=b2+0x30;b3=b3+0x30;Void chartoasc2(uchar ss)b仁ss/1000;b2=(ss-b1*10

21、00)/100;b3=(ss-b1*1000-b2*100)/10;b4=(ss-b1*1000-b2*100-b3*10);b1=b1+0x30;b2=b2+0x30;b3=b3+0x30;b4=b4+0x30;void timeadd()sec+;if(sec>=60)sec=0;mi n+;if(mi n>=60)mi n=0;hour+;if(hour>=24) hour=0;void timedir()LCD_write_cmdata(0xc0); chartoasc2(hour); LCD_write_wodata(b2); delay_ nm s(1);LCD_

22、write_wodata(b3); delay_ nm s(1);LCD_write_wodata( :');delay_nms(1);chartoasc2(min);LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata(b3); delay_nms(1); LCD_write_wodata( : ' ); delay_nms(1);chartoasc2(sec); LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata(b3); delay_nms(1);uchar ad(u

23、char td)uchar AD_DAT;/ P3=td;AD_EOC=1;AD_ST=1;_nop_() ;_nop_() ;_nop_() ;AD_ST=0;while(AD_EOC=0);AD_OE=1;_NOP_() ;_NOP_() ;AD_DAT=P2;AD_OE=0; return(AD_DAT);void addir()LCD_write_cmdata(0x80); chartoasc2(AD_DAT); LCD_write_wodata(b1); delay_nms(1) LCD_write_wodata(b2); delay_nms(1); LCD_write_wodata

24、(b3); delay_nms(1);float bdbhv(uchar ad_dat)float vin;vin=(float) ad_dat;vin=vin/51;return(vin);float bdbht(uchar ad_dat)float vin;vin=(float) ad_dat;vin=vin/2.55;return(vin);void vindir()float f1; f1=bdbhv(AD_DAT)*100;LCD_write_cmdata(0x84); uinttoasc2(f1); LCD_write_wodata(b2); delay_nms(1); LCD_w

25、rite_wodata(b2); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(1); LCD_write_wodata(b3); delay_nms(1); LCD_write_wodata(b4); delay_nms(1);LCD_write_wodata( v' ); delay_nms(1);void tdir()float f1; f1=bdbht(AD_DAT)*10; LCD_write_cmdata(0x8a); uinttoasc2(f1); LCD_write_wodata(b1);delay_nms(1)

26、;LCD_write_wodata(b2); delay_nms(1);LCD_write_wodata(b3); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(1);LCD_write_wodata(b4); delay_nms(1);LCD_write_wodata( c' ); delay_nms(1);void tkz()if(bdbht(AD_DAT)>= TH) KZ=OFF;LED=ON;elseKZ=OFF;LED=OFF;Uchar rkey()uchar k;k=0;if(KEY0=0) k=1;els

27、eif(KEY1=0) k=2; return(k);void gnkey()switch(rkey() case 0:break;case 1:TH+;if(TH>100) TH=100; break;case 2:TH-;if(TH<0) TH=0; break;default:break;void thdir()LCD_write_cmdata(0xcd); chartoasc2(TH);LCD_write_wodata(b1); delay_nms(1); LCD_write_wodata(b2); delay_nms(1);LCD_write_wodata(b3); de

28、lay_nms(1);void scom()float f1;f1=bdbht(AD_DAT)*10;uinttoasc2(f1);SBUF=b1;while(TI=0);TI=0;SBUF=b2;while(TI=0);TI=0;SBUF=b3;while(TI=0);TI=0;SBUF= ' . ' ;while(TI=0);TI=0;SBUF=b4;while(TI=0);TI=0;SBUF= ' ;while(TI=0);TI=0;void t0_int() interrupt 1TF0=0;TH0=60;TLO=176;timeadd();/ n+;/ if(n>=20) n=0; timeadd(); timedir();/ 主函數(shù)void main() uchar m;uchar ss;LCD_Init();TMOD=0X21;TH0=60;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論