




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE19浙江傳媒學(xué)院課程設(shè)計(實訓(xùn))報告學(xué)院__浙江傳媒學(xué)院_專業(yè)電子科學(xué)與技術(shù)班級_11電科2班_學(xué)號110706226____姓名_徐建新____課題溫度控制器的設(shè)計與制作指導(dǎo)教師黃暑娟____報告成績______________日期:2013年11月17日
目錄1引言 31.1設(shè)計意義……………………31.2設(shè)計目的與要求 32.3本組成員所做的工作 32設(shè)計方案論證 32.1各部分方案比較與選擇……………………32.2總體設(shè)計方案 42.3系統(tǒng)組成及框圖 43硬件電路設(shè)計 53.1溫度測量電路設(shè)計 53.2控制器電路設(shè)計 63.3報警器電路設(shè)計 63.4鍵盤電路設(shè)計 73.5液晶顯示電路………………74軟件設(shè)計 74.1主程序 85系統(tǒng)調(diào)試 85.1硬件調(diào)試 …………………85.2軟件調(diào)試……………………86結(jié)果及分析 87心得體會 98參考文獻 99附錄……………9 附錄A原理圖…………………10附錄B源代碼…………………11附錄C作品實物圖……………181引言1.1設(shè)計意義溫度與人們的生活息息相關(guān),隨著經(jīng)濟社會的不斷發(fā)展,對溫度的檢測也顯得越來越重要。在現(xiàn)代農(nóng)業(yè)上,溫度對大規(guī)模化的農(nóng)作物生產(chǎn)起到了關(guān)鍵作用,直接影響了農(nóng)作物的生長和生產(chǎn)。因此掌握溫度的變化顯得尤其重要,而傳統(tǒng)的溫度計需要人工的實時監(jiān)測,浪費時間人力等顯然已經(jīng)不能適用了。在現(xiàn)代工業(yè)上,溫度對機器的影響也不容忽視,當(dāng)溫度過高時稍有不慎輕則造成設(shè)備的故障,重則造成人員傷亡。特別是針對一些高危設(shè)備,人工的溫度檢測不僅麻煩,容易造成誤差,而且對于檢測人員又有一定的危險性。于是對溫度實時監(jiān)控就顯得至關(guān)重要了。本設(shè)計以溫度傳感器DS18B20為測溫元件,AT89S52單片機為核心,讀取溫度信息并寫入控制信息:在液晶顯示屏上顯示溫度,設(shè)置溫度的上下限。我們可以針對不同的應(yīng)用環(huán)境設(shè)置不同需求的溫度上下限,當(dāng)被測物體溫度超過上限或低于下限溫度時,蜂鳴器響動報警。本溫度計的設(shè)計與傳統(tǒng)的溫度計相比,不僅可以減少了人力的溫度檢測,而且具有測量準(zhǔn)確、體積小、壽命長等優(yōu)點。1.2設(shè)計目的與要求利用DS18B20設(shè)計一個溫度控制器,可以顯示環(huán)境溫度,超溫報警。主要子程序溫度轉(zhuǎn)換及讀取子程序溫度計算子程序溫度顯示子程序1.3本組成員所做的工作資料搜集:陳禮杭,劉嬌芳方案原理論證:羨盼盼,劉嬌芳硬件制作:徐建新(組長)軟件設(shè)計:徐建新,羨盼盼,劉嬌芳調(diào)試:陳禮杭2設(shè)計方案論證2.1各部分方案比較與選擇2.1.1此系統(tǒng)所需要的工作量較小,采用8位機足以滿足本系統(tǒng)的要求,故選用AT89S52單片機作為本系統(tǒng)的CPU。2.1.2方案一:采用熱敏電阻,熱敏電阻精度、重復(fù)性、可靠性較差,對于檢測1攝氏度的信號是不適用的,也不能滿足測量范圍。在溫度測量系統(tǒng)中,也常采用單片溫度傳感器,比如AD590,LM35等。但這些芯片輸出的都是模擬信號,必須經(jīng)過A/D方案二:采用單總線數(shù)字溫度傳感器DS18B20測量溫度,直接輸出數(shù)字信號。便于單片機處理及控制,節(jié)省硬件電路。且該芯片的物理化學(xué)性很穩(wěn)定,此元件線形性能好,在0—100攝氏度時,最大線形偏差小于1攝氏度。DS18B20的最大特點之一采用了單總線的數(shù)據(jù)傳輸,由數(shù)字溫度計DS18B20和微控制器AT89C51構(gòu)成的溫度裝置,它直接輸出溫度的數(shù)字信號到微控制器。每只DS18B20具有一個獨有的不可修改的64位序列號,根據(jù)序列號可訪問不同的器件。這樣一條總線上可掛接多個DS18B20傳感器,實現(xiàn)多點溫度測量,輕松的組建傳感網(wǎng)絡(luò)。綜上分析,我們選用第二種方案。2.方案一:采用串行輸入,每個鍵位占用一個I/O口,4個按鍵一共要占用4個I/O口,當(dāng)有鍵按下的時候,直接對單片機的I/O進行操作。方案二:采用并行輸入,總共4個按鍵。4個按鍵的輸入口為P3,當(dāng)有鍵按下的時候,通過分別對各行各列進行掃描并查表得出鍵值。比較兩個方案,采用方案二的方法。這樣可以有效的減少對單片機I/O口的占用,使單片機有更多的I/O口來實現(xiàn)其他的功能。使單片機的設(shè)計更加靈活有效。2.1.4方案一:通過單片機的I/O接上拉電阻直接輸出驅(qū)動數(shù)碼管,可以通過I/O的輸出值來改變數(shù)碼管的顯示字形,由74138來分別選通8個數(shù)碼管,一共需要11個I/O口。方案二:采用1602液晶顯示比較以上兩個方案,方案一所要花費的I/O口較多,對于單片機系統(tǒng)是一個很大的浪費。方案二液晶顯示平穩(wěn)、省電、美觀,更容易實現(xiàn)題目要求,對后續(xù)的園藝通兼容性高,故選用方案二。2.2總體設(shè)計方案以溫度傳感器DS18B20為測溫元件,測溫范圍為1℃-100℃,誤差小于0.01℃,AT89S52單片機為核心,讀取溫度信息并寫入控制信息,通過并行鍵盤輸入設(shè)置溫度的上下限,在16022.3系統(tǒng)組成及框圖AT89S52單片機AT89S52單片機DS18B20溫度傳感1602液晶顯示DS18B20溫度傳感1602液晶顯示鍵盤輸入報警系統(tǒng)鍵盤輸入報警系統(tǒng)3硬件電路設(shè)計本系統(tǒng)包含溫度采集模塊、液晶顯示模塊、鍵盤輸入模塊、單片機控制模塊、報警模塊等5個主要模塊3.1溫度測量電路設(shè)計DQ=P3^6采用DS18B20數(shù)字溫度傳感器測量溫度,DS18B20與單片機是單線雙向通信硬件圖如下:DS18B20數(shù)字溫度傳感器測溫范圍為-55~+125℃,在-10~85℃范圍內(nèi),精度為±0.5DS18B20的6個功能指令:
(1)溫度轉(zhuǎn)換指令(44H)。這個命令用于啟動溫度轉(zhuǎn)換,無實質(zhì)的數(shù)據(jù)要求。如果微控制器在該命令之后輸出讀操作命令,那么DS18B20將使DQ端為低電平,表示DS18B20正忙于溫度轉(zhuǎn)換,不能響應(yīng)該命令。
(2)寫便箋式存儲器(4EH)。寫便箋式存儲器從TH存儲單元開始,三個字節(jié)的數(shù)據(jù)將被定位在2到4號便箋式存儲器單元。所有的三個字節(jié)必須在復(fù)位鉗寫入便箋式存儲器。(3)讀便箋式存儲器(BEH)。該指令讀取便箋式存儲器的內(nèi)容,讀出的數(shù)據(jù)將從Byte0(存儲器的0號單元)開始直到第9字節(jié)(CRC校驗字)被讀走。但如果不想讀完所有字節(jié),微控制器可以再任何時候輸出復(fù)位信號中斷其傳輸。
(4)復(fù)制便箋式存儲器指令(48H)。把2、3、4號存儲單元的內(nèi)容存儲到非易失性SRAM中去。復(fù)制期間,如果有讀指令,DS18B20將把DQ置為低電平,直到轉(zhuǎn)換結(jié)束,把DQ置為高電平。
(5)回讀SRAM(B8H)。將存儲在SRAM中的溫度報警上下限、分別率配置的內(nèi)容寫回相應(yīng)的便箋式存儲器。
(6)讀電源配置結(jié)構(gòu)指令(B4H)。主控制設(shè)備發(fā)出該指令后在輸出讀時序,器件即會送出所使用的電源信息:0為寄生電源,1為外接電源。
DS18B20的ROM指令共有5條,每一個工作周期只能發(fā)一條,ROM指令分別是讀ROM數(shù)據(jù)、指定匹配芯片、跳躍ROM、芯片搜索、報警芯片搜索。
在進行DS18B20操作時一般有以下步驟:(1)初始化DS18B20。(2)ROM指令操作。(3)便箋式存儲器功能指令操作。(4)處理或數(shù)據(jù)傳送。每一次DS18B20的操作都必須滿足以上步驟,若是缺少或順序混亂,期間將不會返回值。3.2控制器電路設(shè)計微處理器是控制系統(tǒng)的核心部件。具有控制功能強,體積小,功耗小等一系列的優(yōu)點,它在工業(yè)控制、智能儀表、節(jié)能技術(shù)改造、通訊系統(tǒng)、信號處理及家用電器產(chǎn)品中都得到了廣泛的應(yīng)用。本設(shè)計采用AT89S52作為微處理器。硬件圖如下:3.3報警器電路設(shè)計FM=P3^7硬件電路如下:3.4鍵盤電路設(shè)計電路按鍵開關(guān):開關(guān)按鍵實現(xiàn)復(fù)位、選擇、溫度加、溫度減按鍵S1(Key0)S2(Key1))S3(Key2)S4(Key3)功能復(fù)位選擇溫度加溫度減連接I/O口P3^2P3^3P3^4P3^5硬件電路如下:3.5液晶顯示電路RS=P2^0;RW=P2^1;EN=P2^2硬件電路如下:4軟件設(shè)計4.1主程序開始開始預(yù)設(shè)溫度讀取溫度判斷溫度是否高于預(yù)設(shè)溫度是顯示溫度蜂鳴器發(fā)出警告鍵盤掃描5系統(tǒng)調(diào)試5.1硬件調(diào)試使用萬用表檢測是否有虛短虛斷現(xiàn)象5.2軟件調(diào)試使用keil軟件,6結(jié)果及分析(1)在焊接完所有元器件后,要注意檢查電路,看是否有焊錯、漏焊、或者虛焊等。在程序調(diào)試的時候,因為板子上有一個電阻虛焊了,以至于無法點亮l1602液晶屏。后來反復(fù)檢查才找到原因。(2)焊接的時候因為焊接技術(shù)不是很熟練,在焊接完后,發(fā)現(xiàn)整體元器件不協(xié)調(diào),焊點不圓滑,走線也很亂,看上去不美觀(3)在對蜂鳴器頻率更改時,由于延遲時間太短時的頻率太小,人耳而聽不到聲音,后將延遲的一微秒改為一毫秒便解決了問題7心得體會通過時間周的學(xué)習(xí),我對單片機的運用了解更加深入了。由于暑假我有參加電子設(shè)計的培訓(xùn),所以硬件制作方面比如畫圖制版相對比較熟練了,但在焊接電路方面還有待改進。軟件設(shè)計是我們這次學(xué)習(xí)的重點,在實踐周前兩天我對溫度控制與設(shè)計的編程工作還一頭霧水,后來通過不停的查閱資料以及我們組成員的共同努力終于在星期四下午把它順利編寫出來,其間有遇到很多問題,比如如何達到顯示溫度的高精度,如何設(shè)置溫度上下限,尤其在蜂鳴器頻率方面花的時間最多,我們本來打算讓蜂鳴器實現(xiàn)音樂報警,可由于時間有限最終未能實現(xiàn),因此我們要在編程方面勤加練習(xí),才能更好的運用單片機。8參考文獻[1]張毅剛.《單片機原理及應(yīng)用》.北京,高等教育出版社,2010年[2]蔡美琴.《MCS-51系列單片機系統(tǒng)及其應(yīng)用》.北京,高等教育出版社,2004年[3]魏立峰,王寶興.《單片機原理與應(yīng)用技術(shù)》,北京大學(xué)出版社,2007,21-24.[4]楊素行.《模擬電子技術(shù)基礎(chǔ)簡明教程》,高等教育出版社,2004,514-529.9附錄附錄A原理圖附錄B源代碼#include<reg52.h>#include"1602.h"#include"18b20.h"#definekey_portP3//定義鍵盤的輸入為P3口sbitFM=P3^7;uinttemprd;ucharTMAX=25,TMIN=15;//設(shè)置溫度上下限的初始值ucharW_s=0;ucharstage=0;ucharu_con=0;uchartable1[13]="Temp:.`C";uchartable2[16]="MAX:`MIN:`";voidkey_delay(void){ uchari,j; for(i=0;i<10;i++) for(j=0;j<200;j++);}voidDelay(uintnum)//延時1微秒{while(num--);}voiddelay_ms(uintn)//延時1毫秒{ uchari; while(n--) { for(i=0;i<121;i++) ; }}voiddisplay(void){ table1[5]=temprd/1000+48; table1[6]=temprd/100%10+48; table1[8]=temprd/10%10+48; table1[9]=temprd%10+48; table1[12]=0; dis_str(1,0,table1); table2[4]=TMAX/10+48; table2[5]=TMAX%10+48; table2[12]=TMIN/10+48; table2[13]=TMIN%10+48; if(stage==1) { table2[7]='<'; } elseif(stage==2) { table2[7]=''; table2[15]='<'; } dis_str(2,0,table2); if(W_s) { dis_str(1,12,"Warn"); } else { dis_str(1,12,"Safe"); } }voidkeysearch(void){ staticucharkey_s=1; if(key_s&&((key_port&0x3c)!=0x3c)) { key_delay(); key_s=0; switch(key_port&0x3c) { case0x2c:if(stage==1)TMAX++;if(TMAX>60)TMAX=60; elseif(stage==2)TMIN++;if(TMIN>TMAX-1)TMIN=TMAX-1;break;//溫度加 case0x1c:if(stage==1)TMAX--;if(TMAX<TMIN+1)TMAX=TMIN+1; elseif(stage==2)TMIN--;if(TMIN<1)TMIN=1;break;//溫度減 case0x34:stage++;if(stage>=3){stage=0;table2[15]='';}break;//選擇 case0x38:u_con=1;break;//復(fù)位 default:break; } } elseif((key_port&0x3c)==0x3c) key_s=1;}voidmain(void){ unsignedchari; lcd_init(); dis_str(1,0,table1); dis_str(2,0,table2); while(1) { temprd=Readtemp(); if(!stage) { if((temprd>(TMAX*100)||temprd<(TMIN*100))) { if(!u_con) { W_s=1;for(i=0;i<200;i++)//循環(huán)兩百次 { delay_ms(500); FM=0; delay_ms(200); FM=1; delay_ms(200); FM=0; delay_ms(200); FM=1; delay_ms(500); FM=0; delay_ms(200); FM=1; }FM=1;Delay(500); /** NAME:1602.H* WRITER:Viter* INTR:8linesLCD1602module* TIME:2012.08.17* */#include<reg52.h>#definelcd_dataP0#defineucharunsignedchar#defineuintunsignedintsbitRS=P2^0;sbitRW=P2^1;sbitEN=P2^2;voidlcd_delay(uchari)//延時{ucharj;for(;i>0;i--){for(j=0;j<121;j++);}}/*voidcheck_busy(void){ do { EN=0; RS=0; RW=1; lcd_data=0xff; EN=1; }while(lcd_data&0x80)}*/voidwrite_com(ucharcom) //向液晶屏寫指令{ RS=0; lcd_data=com;// lcd_delay(5); EN=1; lcd_delay(3); EN=0;}voidwrite_data(ucharx) //向液晶屏寫數(shù)據(jù){ RS=1; lcd_data=x;// lcd_delay(5); EN=1; lcd_delay(3); EN=0;}voidlcd_init(void) //液晶屏初始化{ RW=0; EN=0; write_com(0x38); //8線顯示模式,雙行,5*7。// write_com(0x38); write_com(0x0c); //開顯示,無光標(biāo),光標(biāo)不閃爍。//write_com(0x07); //開顯示,有光標(biāo),光標(biāo)閃爍。 write_com(0x06); //輸入模式,寫入新數(shù)據(jù)光標(biāo)右移,屏幕不動。// write_com(0x07); //輸入模式,寫入數(shù)據(jù)光標(biāo)右移,屏幕右移。 write_com(0x01); //清屏。 lcd_delay(200);} voidaddress(uchara,ucharb){ if(a==1) write_com(0x80+b); else write_com(0x80+0x40+b); }voiddis_str(uchara,ucharb,ucharshuzu[])//顯示數(shù)組{ chari=0; address(a,b); while(shuzu[i]!='\0') { write_data(shuzu[i]); i++; lcd_delay(5); } lcd_delay(100);}/*voiddis_ch(chara,charb,ucharx)//顯示數(shù)字和單個字符{ address(a,b); if(x>=0&&x<=9)write_data(x+0x30); elsewrite_data(x);}*/ #include<reg52.h>/*定義DS18B20數(shù)據(jù)線*/sbitDS=P3^6;voidtmpDelay(intnum)//延時函數(shù){// unsignedchari; while(num--);// for(i=0;i<2;i++);}voidInit_DS18B20(void)//初始化ds1820{ unsignedcharx=0; DS=1;//DS復(fù)位 tmpDelay(8);//稍做延時 DS=0;//單片機將DS拉低 tmpDelay(80);//精確延時大于480us DS=1;//拉高總
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣漢中學(xué)面試題及答案
- 一份完整的調(diào)解協(xié)議書如何寫
- 浙江鴨2025版高考歷史大二輪復(fù)習(xí)上篇板塊三專題十五西方人文精神的演變與科技文藝學(xué)案人民版
- 2025年第六屆中小學(xué)全國國家版圖知識競賽測試題庫及答案
- 2025-2030年中國三聯(lián)觀片燈數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國樹脂雕工藝品數(shù)據(jù)監(jiān)測研究報告
- 八下 1.8吹豎笛(之三) 教案
- 物理治療學(xué)操作手冊
- 優(yōu)化辦公環(huán)境方案
- 公司保潔聘用合同
- 首都師范大學(xué)輔導(dǎo)員考試題庫
- 小學(xué)心理健康教育《第十三課父母的小幫手》
- 【短視頻質(zhì)量對消費者購買行為的影響研究4300字(論文)】
- (通橋【2018】8370)《鐵路橋梁快速更換型伸縮縫安裝圖》
- 新生兒窒息復(fù)蘇演練腳本
- 安全警示標(biāo)志現(xiàn)場檢查表
- 2023屆山東煙臺高三一模作文“柴火不足水減一半”導(dǎo)寫及范文四篇
- 茄子課件完整版
- RFJ01-2008 人民防空工程防護設(shè)備選用圖集
- 05G359-3 懸掛運輸設(shè)備軌道(適用于一般混凝土梁)
- 戰(zhàn)地衛(wèi)生與救護教案-模板
評論
0/150
提交評論