智能溫度控制器_第1頁
智能溫度控制器_第2頁
智能溫度控制器_第3頁
智能溫度控制器_第4頁
智能溫度控制器_第5頁
免費預覽已結束,剩余20頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、智能溫度控制器電子信息工程專業:計算機控制技術控制 ( 一)班姓名:學號:482011 年 11 月 29 日數字溫控器課程設計任務書1. 設計要求(1)基本范圍-50 C -110 C(2)精度誤差小于0.1 C(3) LED數碼直讀顯示2. 擴展功能1)實現語音報數2)可以任意設定溫度的上下限報警功能3. 設計內容1)畫出電路原理圖,正確使用邏輯關系;確定元器件及元件參數; 進行電路模擬仿真;SCH文件生成與打印輸出;寫出設計的全過程,附上有關資料和圖紙,有心得體會。5. 答辯在規定時間內,完成敘述并回答問題。(一) 引言 (二) 關鍵字 (三) 設計的題目 (四) 課程設計的基本要求 (

2、五) 方案設計(六)系統設計方案及框圖(七)數據信號的采集和處理(八)系統硬件電路 (九) 系統軟件、引言隨著科技的不斷發展,二十一世紀已經進入電子信息時代的軌道。為 了能夠更好的適應社會的發展和需要,學好電子方面的知識對于我們這些 二十一世紀的大學生是尤為重要的,單片機更是如此。如此同時,設計新 的電子產品對我們學校所學知識的一種掌握和鞏固。許多情況下需要測量溫度參數。 通常測溫系統的主要器件是熱敏電阻, 由于它體積小、重復性好、測量方法簡單,所以在測溫系統中廣泛應用。 但采用熱敏電阻的測溫系統需要 A/D 轉換,而且測量溫度不高。我們可以 利用學習過的知識設計一個智能溫度控制器。二、關鍵字

3、單片機Lmo16L液晶顯示器、AT89C5係列芯片、ADC0808系列芯片。三、設計題目智能溫度控制器四、課程設計的基本要求1 熟悉任務,分析課程要求,熟悉溫度控制的原理,進行方案設計; 掌握系統設計要領。2完成溫度測控的設計。3相關知識:單片機原理、電子技術、數字( A/D )轉換電路。4完成硬件電路設計和裝調,編寫程序實現其他功能;撰寫課程設計 報告。五、方案設計課程設計方法根據實驗的要求設計出一套較為科學合理的實驗方案,初步 確定嫖和預期的結果,畫出一份較為完整實驗原理電路圖,這也是實驗前 期的預備階段。這一階段的主要任務是準備好實驗所需求的元件功能資料,其包括: 畫出方框圖,查閱有關芯

4、片的功能及引腳圖;搞清楚各個元件的功能,畫 出實驗草圖。將各種方案進行可行性論證,然后確定實驗方案。此次題目設計中的顯示方式:利用 LCD液晶進行相關數據的輸 顯示。傳感器選擇:利用熱敏電阻經過 A/D轉換后進行數據處理。六、系統設計方案及框圖系統設計采用AT89C51單片機控件,LCD液晶顯示當前溫度和時間。ADC 數字溫度傳感器負責把溫度變化轉換成控制器可以識別的數字量,然后通 過芯片內部的總線上傳給控制器。控制器將表征當前溫度值的數字量處理 后通過直觀的LCD進行溫度顯示,同時可以通過鍵盤控制進行相應的操作, 如設溫度的上下限值等。AT89S5偽核心、DS18B2C為溫度傳感元件。只要在

5、所設定的上下溫度 界限內,就會在顯示設備中精確的顯示出來,如果溫度超過了所設定的溫 度上下限,就會自動發出報警信號。另外此溫度控制器操作簡單,靈敏度 高,測溫范圍寬,一般能滿足日常測溫的需求。總體設計方框圖如圖所示七、數據信號的采集和處理數據、溫度信號的采集和處理,各引腳的功能如下所示:LCD液晶顯示引腳功能表引符號功能說明腳1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高(對比度過高時會產生 鬼影”使用時可以通過一個 10K的電位器調整對比度)。4RSRS為寄存器選擇,高電平 1時選擇數據寄存器、低電平 0時選擇指令寄存器。5R

6、/WR/W為讀寫信號線,高電平(1)時進行讀操作,低電平(0)時進行寫操作。ENE(或EN)端為使能(enable)端,下降沿使能。D0D7數據線VEE對比度的調節寄存器選擇控制表RSR/W操作說明寫入指令寄存器(清除屏等)都busy flag( DB7 ),以及讀取位址計數器 (DB0DB6 )值寫入數據寄存器(顯示各字型等)從數據寄存器讀取數據注:關于busy flagE=H脈沖一一開始時初始化E(DB7 ):在此位為被清除為為0,然后置E為1,再清0.0時,LCD將無法再處理其他的指令要求。八、系統硬件電路51系列,具體型號為AT89C51,為8們1 .控制器內部結構本次采用微處理器CP

7、U。擁有數據存儲器RAM和功能寄存器SFR和內部程序存 儲器ROM。如下圖:單片機的引腳圖及各引腳的功能。19,XTAL1P0.0/AD0P 0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P 2.0/A8P 2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A12EA-P2.5/A13P2.6/A14P2.7/A15P 1.0P 3.0/RXDP 1.1P 3.1/TXDP1.2P3.2/INT0P 1.3P3.3/INT1P 1.4P 3.4/T0P 1.5P 3.5/T1P 1.6P3.6/W

8、RP1.7P3.7/RD189AT89C5117三"45672930U53938-3736-35-34333221222324-5-2627281011 12 13 14 151617(ALE):地址索存(PSEN非):程序存儲允許輸出端(EA 非):程序存儲地址允許輸入端(RST):復位信號輸入端(XTAL1 ):接外部石英晶體和微調電容的一端。理。如圖所示,其中包含微控制器、LCD 溫度傳感器模塊接口電路。RESPACK-88'LCD1LMU16Lrri191829XTAL2RSTALE39日0.0從1 10PU.1/AD1PU.2/AD2PU.3/AD3PU.4/AD4

9、PU.5/AD5PU.6/AD6PU.7/AD7P2.U/A8P2.1/A9P2.2/A1UP2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.U/RXDP3.1/TXDP3.2/IN#P3.3/INT戸3.4"0P3.5/T1+ 5V21U2(CLOCK)1P1.6P1 7R25kP3.6/WP3 7/nteD1LED-REDR3L300SW1SW2SW-SPSISW-SPSR13001P1.UP1.1P1.2P1.3P1.4P1.51 CLOCKIN0'STARTIN1IN2EOCIN3IN4OUT1IN5OUT2IN6OUT3IN7OU

10、T4OUT5ADD AOUT6ADD BOUT7ADD COUT8ALEVREF( + )OEVREF(-)U29ADCU8U8*88.Volts26 RXD TXDRTS CTSU365LQ1NPND2LED-RED+ 12V+ 12VRL1OJ-SH-112DMR71.2k(XTAL2):接外部石英晶體和微調電容的另一端。P0P3是4個寄存器,也稱為4個端口,是8UC51單片機與外界聯系的 4個8位雙向并行I/O 口。P0 口:是一個8位的準雙向I/O 口。P1、P2 口:是一個帶內部上拉電阻的 8位準雙向I/O 口。P3 口:也是一個帶內部上拉電阻的 8位準雙向I/O 口。具有第二功能

11、(WR/RD不用時當I/O 口用,發送和接收端)2.控制器具體電路整個系統的控制部分主要完成對溫度感應模塊數據的讀取和處 接口電路、端口上拉電阻、VCCtJrRP122為地址鎖存控制端 ALE,當輸入為高ADC0808內部的鎖存器中,經內部6為啟動轉換控制端 START,當輸入一個2 us寬的高電平脈沖時,就啟動轉換。引腳7為A/D轉換的結束信號ADC0808開始對輸入通道的模擬量進行EOC。 ADCU8U8為逐次比較型A/D轉換引腳結構ADC0808具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端 C、B、A(引腳23、24、25)進行選擇。引腳電平時,C、B、A引腳輸入的地址鎖存與譯

12、碼電路譯碼選中相應的模擬通道。引腳器,當開始轉換時,EOC信號為低電平,經過一定時間,轉換結束,轉換結束 信號EOC輸出高電平,轉換結果存放與ADC0808內部的輸出數據鎖存器中。引腳9為A/D轉換數據輸出允許控制端 0E,當0E為高電平時,存放與輸出數 據存儲器中的數據通過 ADC0808的數據線D0D7輸出。*ADC0808的內部邏輯結構九、系統軟件1.畫圖圖2主程序流程圖圖3 A/D轉換子程序流程圖A/D轉換子程序用于對 相應的存儲單元中,如圖ADC0808的輸入模擬電壓進行 A/D轉換,并將轉換的數值存為 8個 3所示2.清單RSP1.2RWP1.1EP1.0(D0D7)P0 口LED

13、 P1.4KZ P1.3ON0OFF1KEY0 P 1.6KEY1 P 1.7START、ALE P3.5EOCp3.3顯示開關及光標設置: ( 初始化 ) 0000 1DCR顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效)0000 01NS N=1(讀或寫一個字符后地址指針加 1 &光標加1),N=0(讀或寫一個字符后地址指針減1 &光標減1),S=1 且 N=1 ( 當寫一個字符后,整屏顯示左移 )s=0 當寫一個字符后,整屏顯示不移動數據指針設置:數據首地址為80H,所以數據地址為80H+地址碼(0-27H , 40-67H)其他設置:01H(顯示清屏,數據指針

14、=0,所有顯示=0); 02H(顯示回車,數據指=0)。 寫指令 0cH 顯示開及光標設置3. 程序設計分析#include<reg51.h>#include<intrins.h> #define uchar unsigned char #define uint unsigned int#define ON 0#define OFF 1/LCD/ADvoid delay_nms(int); bit LCD_busy();void LCD_write_cmdata(uchar); /LCD void LCD_write_wodata(uchar); /LCD void L

15、CD_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 rkey(); void gnkey(); void timedir(); void addir();延時判斷 寫命令 寫數據 初始化字節(無符號字符)型數據轉 ASC2嗎 無符號整型數據轉ASC2嗎 時間進位程序轉化程序 標

16、度變換:轉電壓 標度變換:轉溫度 溫度測控 鍵掃描,返回鍵號 鍵處理 時間顯示數據顯示void vin dir(); void tdir();void thdir();/電壓顯示溫度顯示 溫度上限設定值顯示/端口設置sbit LCD_RS=P 1八2; sbit LCD_RW= PIM; sbit LCD_EA=P 19 sbit LCD_BF=P0 八7;/LCD/LCD /LCD /LCD數據/命令 讀/寫 使能忙sbit AD_ST=P3A5; sbit AD_OE=P3A4; sbit AD_EOC=卩3八3;/AD/AD/AD啟動讀轉換結束sbit LED=P 1八4;sbit KZ

17、=P 1八3;sbit KEY 0=P 1八6;sbit KEY仁 P1A7;/指示燈 溫度測控端 鍵uchar b1,b2,b3,b4; uchar sec, min ,hour; uchar AD_DAT; ui nt TH,TL;int n;/pi/ADuchar dis1uchar dis2=" wo de che ng xu "uchar dis3=uchar dis4="zz tao xiao shou"/延時函數void delay_ nm s(i nt mS)pi中間變量轉換結果 溫度上下限 時間系數welcome to "we

18、lcome to " uchar i; while(ms-) for(i=0;iv250;i+) _nop_(); _nop_(); _nop_(); _nop_();/檢查LCD是否忙 bit LCD_busy()"bit flag;LCD_RS=0;LCD_RW=1;/ 寫命令/讀選擇端/開使能/數據滿/標志位置1LCD_EA=1; if(LCD_BF=1) flag=1;else flag=0;/ 關使能LCD_EA=0; retu rn flag;/寫命令void LCD_write_cmdata(uchar cmdata)/while(LCD_busy();LCD

19、_RS=0;LCD_RW=0;LCD_EA=1;P0=cmdata;LCD_EA=0; "/寫數據void LCD_write_wodata(uchar wodata)/等待空閑 寫命令 寫選擇端 開使能關使能/等待空閑 寫數據 /寫選擇while(LCD_busy();/LCD_RS=1;LCD_RW=0;LCD_EA=1;P0=wodata;LCD_EA=0;/LCD初始化 void LCD_I nit()LCD_write_cmdata(0x3c); delay_ nm s(1);LCD_write_cmdata(0x0e);/顯示設置/延時/顯示開關與光標設置delay_ n

20、m s(1);LCD_write_cmdata(0x06);delay_ nm s(1);Void chartoasc2(uchar ss)b仁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)b仁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+

21、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_write_wodata(b3); delay_ nm s(1);LCD_write_wodata( :');delay_nms(1);chartoasc2(min);LCD_write_wodat

22、a(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(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_

23、() ;_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(b3); delay_nms(1);float bdbhv(uchar ad_dat)float vin;vin=(float) ad_dat;vin=vin/51;return(vin);float bdbht(uc

24、har 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_write_wodata(b2); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(1); LCD_write_wodata(b3); delay_nms(1);

25、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);LCD_write_wodata(b2); delay_nms(1);LCD_write_wodata(b3); delay_nms(1);LCD_write_wodata( . ' ); delay_nms(

26、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;elseif(KEY1=0) k=2; return(k);void gnkey()switch(rkey() case 0:break;case 1:TH+;if(TH>100) TH=100; break;case

27、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);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 1TF0=0;TH0=60;TLO=176;timeadd();/ n+;/ if(n>=20) n=0; timeadd(); timedir();/ 主函數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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論