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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、1,為8們微處理器CPU。擁有數據存儲器RAM和功能寄存器SFR和內部程序存儲器ROM。如下圖:單片機的引腳圖及各引腳的功能。(ALE) :地址索存(PSEN非):程序存儲允許輸出端(EA非):程序存儲地址允許輸入端(RST):復位信號輸入端(XTAL1):接外部石英晶體和微調電容的一端。(XTAL2):接外部石英晶體和微調電容的另一端。P0P3是4個寄存器,也稱為4個端口,是80C51單片機與外界聯系的4個8位雙向并行I/O口。P0口:是一個8位的準雙向I/O口。P1、P2口:是一個帶內部上拉電阻的8位準雙向I/O口。P3口:也是一個帶內部上拉電阻的8位準雙向I/O口。具有第二功能(WR/R

8、D不用時當I/O口用,發(fā)送和接收端)2控制器具體電路整個系統的控制部分主要完成對溫度感應模塊數據的讀取和處理。如圖所示,其中包含微控制器、LCD接口電路、端口上拉電阻、溫度傳感器模塊接口電路。引腳結構ADC0808具有8路模擬量輸入通道IN0IN7,通過3位地址輸入端C、B、A(引腳23、24、25)進行選擇。引腳22為地址鎖存控制端ALE,當輸入為高電平時,C、B、A引腳輸入的地址鎖存與ADC0808內部的鎖存器中,經內部譯碼電路譯碼選中相應的模擬通道。引腳6為啟動轉換控制端START,當輸入一個2 us寬的高電平脈沖時,就啟動ADC0808開始對輸入通道的模擬量進行轉換。引腳7為A/D轉換

9、的結束信號EOC。ADC0808為逐次比較型A/D轉換器,當開始轉換時,EOC信號為低電平,經過一定時間,轉換結束,轉換結束信號EOC輸出高電平,轉換結果存放與ADC0808內部的輸出數據鎖存器中。引腳9為A/D轉換數據輸出允許控制端OE,當OE為高電平時,存放與輸出數據存儲器中的數據通過ADC0808的數據線D0D7輸出。ADC0808的內部邏輯結構九、系統軟件1畫圖開始初始化調用A/D轉換子程序調用顯示子程序 圖2主程序流程圖*開始啟動一次轉換 EOC=1A/D轉換結束 否 取數據(OE=0)0809地址通道加一地址數小于8 否是開始圖3 A/D轉換子程序流程圖A/D轉換子程序用于對ADC

10、0808的輸入模擬電壓進行A/D轉換,并將轉換的數值存為8個相應的存儲單元中,如圖3所示2清單RSP1.2RWP1.1EP1.0(D0D7)P0口LEDP1.4KZP1.3ON0OFF1KEY0P1.6KEY1P1.7START、ALEP3.5EOCp3.3顯示開關及光標設置: (初始化)0000 1DCB D顯示(1有效)、C光標顯示(1有效)、B光標閃爍(1有效)0000 01NS N=1(讀或寫一個字符后地址指針加1 &光標加1),N=0(讀或寫一個字符后地址指針減1 &光標減1),S=1 且 N=1 (當寫一個字符后,整屏顯示左移)s=0 當寫一個字符后,整屏顯示不移動

11、數據指針設置: 數據首地址為80H,所以數據地址為80H+地址碼(0-27H,40-67H)其他設置:01H(顯示清屏,數據指針=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 1void delay_nms(int); /延時bit LCD_busy(); /LCD判斷void LCD_write_

12、cmdata(uchar); /LCD寫命令void LCD_write_wodata(uchar); /LCD寫數據void LCD_Init(); /LCD初始化void chartoasc2(uchar ss); /字節(jié)(無符號字符)型數據轉ASC2嗎void uinttoasc2(uint ss); /無符號整型數據轉ASC2嗎void timeadd(void); /時間進位程序uchar ad(uchar td); /AD轉化程序float bdbhv(uchar ad_dat); /標度變換:轉電壓float bdbht(uchar ad_dat); /標度變換:轉溫度void

13、tkz(); /溫度測控uchar rkey(); /鍵掃描,返回鍵號void gnkey(); /鍵處理void timedir(); /時間顯示void addir(); /AD數據顯示void vindir(); /電壓顯示void tdir(); /溫度顯示void thdir(); /溫度上限設定值顯示/端口設置sbit LCD_RS=P12; /LCD數據/命令sbit LCD_RW=P11; /LCD讀/寫sbit LCD_EA=P10; /LCD使能sbit LCD_BF=P07; /LCD忙sbit AD_ST=P35; /AD啟動sbit AD_OE=P34; /AD讀sb

14、it AD_EOC=P33; /AD轉換結束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轉換結果uint TH,TL; /溫度上下限int n; /時間系數uchar dis1="   WELCOME TO   "uchar dis2=" wo de cheng xu "uchar dis3="

15、   WELCOME TO   "uchar dis4="zz tao xiao shou"/延時函數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_R

16、W=1;   /讀選擇端   LCD_EA=1;   /開使能   if(LCD_BF=1)  /數據滿    flag=1;    /標志位置1   else    flag=0;   LCD_EA=0;   /關使能   return flag;      /寫命令void LCD_w

17、rite_cmdata(uchar cmdata)    while(LCD_busy();   /等待空閑   LCD_RS=0;      /寫命令   LCD_RW=0;      /寫選擇端   LCD_EA=1;      /開使能   P0=cmdata;   LCD_EA=0

18、;      /關使能 /寫數據void LCD_write_wodata(uchar wodata)    while(LCD_busy();   /等待空閑   LCD_RS=1;      /寫數據   LCD_RW=0;      /寫選擇   LCD_EA=1;  P0=wodata; 

19、 LCD_EA=0;    /LCD初始化void LCD_Init()     LCD_write_cmdata(0x3c); /顯示設置   delay_nms(1);    /延時   LCD_write_cmdata(0x0e); /顯示開關與光標設置     delay_nms(1);   LCD_write_cmdata(0x06);   del

20、ay_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_n

22、ms(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_() ;AD

23、_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) floa

24、t 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_nms

25、(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_wodat

26、a(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; vo

27、id 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(); /主函數 void main() uchar m; uchar ss; LCD_Init(); TMOD=0X21; TH0=60; TL0=176; T

溫馨提示

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

評論

0/150

提交評論