




版權(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-110(2)精度誤差小于0.1(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)資料和圖紙,有心得體會(huì)。5.答辯在規(guī)定時(shí)間內(nèi),完成敘述并回答問題。(一)引言(二)關(guān)鍵字(三)設(shè)計(jì)的題目(四)課程設(shè)計(jì)的基本
2、要求(五)方案設(shè)計(jì)(六)系統(tǒng)設(shè)計(jì)方案及框圖(七)數(shù)據(jù)信號的采集和處理(八)系統(tǒng)硬件電路(九)系統(tǒng)軟件一、引言隨著科技的不斷發(fā)展,二十一世紀(jì)已經(jīng)進(jìn)入電子信息時(shí)代的軌道。為了能夠更好的適應(yīng)社會(huì)的發(fā)展和需要,學(xué)好電子方面的知識對于我們這些二十一世紀(jì)的大學(xué)生是尤為重要的,單片機(jī)更是如此。如此同時(shí),設(shè)計(jì)新的電子產(chǎn)品對我們學(xué)校所學(xué)知識的一種掌握和鞏固。許多情況下需要測量溫度參數(shù)。通常測溫系統(tǒng)的主要器件是熱敏電阻,由于它體積小、重復(fù)性好、測量方法簡單,所以在測溫系統(tǒng)中廣泛應(yīng)用。但采用熱敏電阻的測溫系統(tǒng)需要A/D轉(zhuǎn)換,而且測量溫度不高。我們可以利用學(xué)習(xí)過的知識設(shè)計(jì)一個(gè)智能溫度控制器。二、關(guān)鍵字單片機(jī)Lmo16
3、L液晶顯示器、AT89C51系列芯片、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ù)備階段。這一階段的主要任務(wù)是準(zhǔn)備好實(shí)驗(yàn)所需求的元件功能資料,其包括:畫出方框圖,查閱有關(guān)芯片的功能及引腳圖;搞清楚各個(gè)元
4、件的功能,畫出實(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)前溫度和時(shí)間。ADC數(shù)字溫度傳感器負(fù)責(zé)把溫度變化轉(zhuǎn)換成控制器可以識別的數(shù)字量,然后通過芯片內(nèi)部的總線上傳給控制器。控制器將表征當(dāng)前溫度值的數(shù)字量處理后通過直觀的LCD進(jìn)行溫度顯示,同時(shí)可以通過鍵盤控制進(jìn)行相應(yīng)的操作,如設(shè)溫度的上下限值等。AT89S51為核心、DS18B20為溫度傳感元件。只要在所設(shè)定的上下溫度界限內(nèi),就會(huì)在顯示設(shè)備中精確
5、的顯示出來,如果溫度超過了所設(shè)定的溫度上下限,就會(huì)自動(dòng)發(fā)出報(bào)警信號。另外此溫度控制器操作簡單,靈敏度高,測溫范圍寬,一般能滿足日常測溫的需求。總體設(shè)計(jì)方框圖如圖所示 顯示電路燈顯電路測溫電路(采集溫度復(fù)位清零開關(guān)控制輸入89C51單片機(jī)七、數(shù)據(jù)信號的采集和處理數(shù)據(jù)、溫度信號的采集和處理,各引腳的功能如下所示:LCD液晶顯示引腳功能表引腳符號功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度)。4RSRS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選
6、擇指令寄存器。5R/WR/W為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(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脈沖開始時(shí)初始化E為0,然后置E為1,再清0.busy flag(DB7):在此位為被清除為0時(shí),LCD將無法再處理其他的指令要求。 八、系統(tǒng)硬件電路1控制器內(nèi)部結(jié)構(gòu)本次采用51系列,具體型號為AT89C
7、51,為8們微處理器CPU。擁有數(shù)據(jù)存儲器RAM和功能寄存器SFR和內(nèi)部程序存儲器ROM。如下圖:單片機(jī)的引腳圖及各引腳的功能。(ALE) :地址索存(PSEN非):程序存儲允許輸出端(EA非):程序存儲地址允許輸入端(RST):復(fù)位信號輸入端(XTAL1):接外部石英晶體和微調(diào)電容的一端。(XTAL2):接外部石英晶體和微調(diào)電容的另一端。P0P3是4個(gè)寄存器,也稱為4個(gè)端口,是80C51單片機(jī)與外界聯(lián)系的4個(gè)8位雙向并行I/O口。P0口:是一個(gè)8位的準(zhǔn)雙向I/O口。P1、P2口:是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口。P3口:也是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口。具有第二功能(WR/
8、RD不用時(shí)當(dāng)I/O口用,發(fā)送和接收端)2控制器具體電路整個(gè)系統(tǒng)的控制部分主要完成對溫度感應(yīng)模塊數(shù)據(jù)的讀取和處理。如圖所示,其中包含微控制器、LCD接口電路、端口上拉電阻、溫度傳感器模塊接口電路。引腳結(jié)構(gòu)ADC0808具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端C、B、A(引腳23、24、25)進(jìn)行選擇。引腳22為地址鎖存控制端ALE,當(dāng)輸入為高電平時(shí),C、B、A引腳輸入的地址鎖存與ADC0808內(nèi)部的鎖存器中,經(jīng)內(nèi)部譯碼電路譯碼選中相應(yīng)的模擬通道。引腳6為啟動(dòng)轉(zhuǎn)換控制端START,當(dāng)輸入一個(gè)2 us寬的高電平脈沖時(shí),就啟動(dòng)ADC0808開始對輸入通道的模擬量進(jìn)行轉(zhuǎn)換。引腳7為A/D轉(zhuǎn)
9、換的結(jié)束信號EOC。ADC0808為逐次比較型A/D轉(zhuǎn)換器,當(dāng)開始轉(zhuǎn)換時(shí),EOC信號為低電平,經(jīng)過一定時(shí)間,轉(zhuǎn)換結(jié)束,轉(zhuǎn)換結(jié)束信號EOC輸出高電平,轉(zhuǎn)換結(jié)果存放與ADC0808內(nèi)部的輸出數(shù)據(jù)鎖存器中。引腳9為A/D轉(zhuǎn)換數(shù)據(jù)輸出允許控制端OE,當(dāng)OE為高電平時(shí),存放與輸出數(shù)據(jù)存儲器中的數(shù)據(jù)通過ADC0808的數(shù)據(jù)線D0D7輸出。ADC0808的內(nèi)部邏輯結(jié)構(gòu)九、系統(tǒng)軟件1畫圖開始初始化調(diào)用A/D轉(zhuǎn)換子程序調(diào)用顯示子程序 圖2主程序流程圖*開始啟動(dòng)一次轉(zhuǎn)換 EOC=1A/D轉(zhuǎn)換結(jié)束 否 取數(shù)據(jù)(OE=0)0809地址通道加一地址數(shù)小于8 否是開始圖3 A/D轉(zhuǎn)換子程序流程圖A/D轉(zhuǎn)換子程序用于對AD
10、C0808的輸入模擬電壓進(jìn)行A/D轉(zhuǎn)換,并將轉(zhuǎn)換的數(shù)值存為8個(gè)相應(yīng)的存儲單元中,如圖3所示2清單RSP1.2RWP1.1EP1.0(D0D7)P0口LEDP1.4KZP1.3ON0OFF1KEY0P1.6KEY1P1.7START、ALEP3.5EOCp3.3顯示開關(guān)及光標(biāo)設(shè)置: (初始化)0000 1DCB D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)0000 01NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1),N=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1),S=1 且 N=1 (當(dāng)寫一個(gè)字符后,整屏顯示左移)s=0 當(dāng)寫一個(gè)字符后,整屏顯示不移
11、動(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); /延時(shí)bit LCD_busy(); /LCD判斷void LCD_write
12、_cmdata(uchar); /LCD寫命令void LCD_write_wodata(uchar); /LCD寫數(shù)據(jù)void LCD_Init(); /LCD初始化void chartoasc2(uchar ss); /字節(jié)(無符號字符)型數(shù)據(jù)轉(zhuǎn)ASC2嗎void uinttoasc2(uint ss); /無符號整型數(shù)據(jù)轉(zhuǎn)ASC2嗎void timeadd(void); /時(shí)間進(jìn)位程序uchar ad(uchar td); /AD轉(zhuǎn)化程序float bdbhv(uchar ad_dat); /標(biāo)度變換:轉(zhuǎn)電壓float bdbht(uchar ad_dat); /標(biāo)度變換:轉(zhuǎn)溫度void
13、 tkz(); /溫度測控uchar rkey(); /鍵掃描,返回鍵號void gnkey(); /鍵處理void timedir(); /時(shí)間顯示void addir(); /AD數(shù)據(jù)顯示void vindir(); /電壓顯示void tdir(); /溫度顯示void thdir(); /溫度上限設(shè)定值顯示/端口設(shè)置sbit LCD_RS=P12; /LCD數(shù)據(jù)/命令sbit LCD_RW=P11; /LCD讀/寫sbit LCD_EA=P10; /LCD使能sbit LCD_BF=P07; /LCD忙sbit AD_ST=P35; /AD啟動(dòng)sbit AD_OE=P34; /AD讀s
14、bit AD_EOC=P33; /AD轉(zhuǎn)換結(jié)束sbit LED=P14; /指示燈sbit KZ=P13; /溫度測控端sbit KEY0=P16; /鍵sbit KEY1=P17; uchar b1,b2,b3,b4; /中間變量uchar sec,min,hour;uchar AD_DAT; /AD轉(zhuǎn)換結(jié)果uint TH,TL; /溫度上下限int n; /時(shí)間系數(shù)uchar dis1=" WELCOME TO "uchar dis2=" wo de cheng xu "uchar dis3="
15、; WELCOME TO "uchar dis4="zz tao xiao shou"/延時(shí)函數(shù)void delay_nms(int 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_
16、RW=1; /讀選擇端 LCD_EA=1; /開使能 if(LCD_BF=1) /數(shù)據(jù)滿 flag=1; /標(biāo)志位置1 else flag=0; LCD_EA=0; /關(guān)使能 return flag; /寫命令void LCD_
17、write_cmdata(uchar cmdata) while(LCD_busy(); /等待空閑 LCD_RS=0; /寫命令 LCD_RW=0; /寫選擇端 LCD_EA=1; /開使能 P0=cmdata; LCD_EA=
18、0; /關(guān)使能 /寫數(shù)據(jù)void LCD_write_wodata(uchar wodata) while(LCD_busy(); /等待空閑 LCD_RS=1; /寫數(shù)據(jù) LCD_RW=0; /寫選擇 LCD_EA=1; P0=wodata;
19、 LCD_EA=0; /LCD初始化void LCD_Init() LCD_write_cmdata(0x3c); /顯示設(shè)置 delay_nms(1); /延時(shí) LCD_write_cmdata(0x0e); /顯示開關(guān)與光標(biāo)設(shè)置 delay_nms(1); LCD_write_cmdata(0x06); de
20、lay_nms(1); Void chartoasc2(uchar ss) b1=ss/100;b2=(ss-b1*100)/10;b3=(ss-b1*100-b2*10);b1=b1+0x30;b2=b2+0x30;b3=b3+0x30;Void chartoasc2(uchar ss) b1=ss/1000;b2=(ss-b1*1000)/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
21、;void timeadd() sec+;if(sec>=60) sec=0; min+; if(min>=60) min=0; hour+; if(hour>=24) hour=0; void timedir()LCD_write_cmdata(0xc0);chartoasc2(hour);LCD_write_wodata(b2);delay_nms(1);LCD_write_wodata(b3);delay_nms(1);LCD_write_wodata(:);delay_nms(1);chartoasc2(min);LCD_write_wodata(b2);delay_
22、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(uchar 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_() ;A
23、D_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(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) flo
24、at 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_write_wodata(b2);delay_nms(1);LCD_write_wodata(.);delay_nms(1);LCD_write_wodata(b3);delay_nms(1);LCD_write_wodata(b4);delay_nm
25、s(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);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_woda
26、ta(c);delay_nms(1); void tkz() if(bdbht(AD_DAT)>= TH) KZ=OFF;LED=ON; else KZ=OFF;LED=OFF;Uchar rkey()uchar k; k=0; if(KEY0=0) k=1; else if(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; v
27、oid 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);delay_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 1 TF0=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; TL0=176; TR0=
溫馨提示
- 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)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度游樂場地租賃合同協(xié)議(含設(shè)備升級)
- 新型儲能行業(yè)趨勢及市場前景分析報(bào)告
- 2025年度智能住宅買賣合同糾紛審理策略解析
- 2025年度服裝廠員工職業(yè)年金計(jì)劃勞動(dòng)合同
- 二零二五年房地產(chǎn)增值稅專用發(fā)票轉(zhuǎn)讓及抵扣服務(wù)合同
- 2025年度特色火鍋店加盟合作協(xié)議
- 2025年度離婚撫養(yǎng)權(quán)變更調(diào)解與共同監(jiān)護(hù)協(xié)議書
- 二零二五年度城市公園綠植花卉租賃與生態(tài)保護(hù)協(xié)議
- 二零二五年度醫(yī)院病理科技術(shù)人員服務(wù)協(xié)議
- 第二單元第3課《資源的管理與貢獻(xiàn)》 教學(xué)設(shè)計(jì) 2023-2024學(xué)年蘇教版信息科技七年級上冊
- HJ 193-2013 環(huán)境空氣氣態(tài)污染物(SO2、NO2、O3、CO)連續(xù)自動(dòng)監(jiān)測系統(tǒng)安裝驗(yàn)收技術(shù)規(guī)范
- 質(zhì)量環(huán)境職業(yè)健康安全管理體系三合一整合全套體系文件(管理手冊+程序文件)
- 六年級《環(huán)境教育》計(jì)劃及教案設(shè)計(jì)
- 2019年壓力性損傷預(yù)防治療臨床實(shí)踐指南
- 2024年湖南郵電職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫附答案
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫匯編
- JBT 2231.3-2011 往復(fù)活塞壓縮機(jī)零部件 第3部分:薄壁軸瓦
- 旅游學(xué)概論(郭勝 第五版) 課件 第1、2章 旅游學(xué)概述、旅游的產(chǎn)生與發(fā)展
- 科普知識小學(xué)生電力科普小講座
-
評論
0/150
提交評論