版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
廣西科技大學(xué)課程設(shè)計說明書 單片機課程設(shè)計 -GuangxiUniversityofScienceandTechnology單片機系統(tǒng)項目設(shè)計實訓(xùn)七報告課題名稱:基于單片機的倉庫溫度控制系統(tǒng)院(系):計算機工程科學(xué)與通信工程學(xué)院專業(yè):物聯(lián)網(wǎng)工程學(xué)生姓名:李興鴻QQ:201942988完成日期:2016年9月7日摘
要隨著智能分析技術(shù)、網(wǎng)絡(luò)技術(shù)的迅速發(fā)展以及經(jīng)濟的不斷發(fā)展、各種產(chǎn)品的騰出不窮,但這些產(chǎn)品對環(huán)境的要求也是挺高的,如果溫度過高就會使產(chǎn)品變壞,我們需要一個解決辦法。然而使用溫度控制系統(tǒng)成為了一個重要的研究課題。
本設(shè)計是基于單片機的溫度控制系統(tǒng),主要是由一個DS18B20溫度傳感器采集溫度信號,通過液晶LCD1602顯示,并且通過串口把溫度發(fā)送到上位機,利用蜂鳴器報警,監(jiān)測倉庫溫度變化,再利用上位機發(fā)送檔位來控制風(fēng)扇的轉(zhuǎn)速使倉庫溫度保持在產(chǎn)品所需溫度范圍內(nèi)。本系統(tǒng)由DS18B20采集溫度、串口發(fā)送和接收數(shù)據(jù)、用ULN2803驅(qū)動芯片驅(qū)動風(fēng)扇、MCU采用STC89C52;完成溫度信號的采集顯示內(nèi)容的顯示、傳輸、報警等功能。本設(shè)計的溫度報警器由三個部分組成:溫度傳感器、LCD1602顯示器、蜂鳴器模塊。軟件上采用C語言編程,結(jié)構(gòu)簡單運行穩(wěn)定。
關(guān)鍵字:溫度檢測,報警,串口,上位機,風(fēng)扇。共24頁目錄TOC\o"1-2"\h\u1、任務(wù)設(shè)計 21.1設(shè)計任務(wù) 21.2設(shè)計要求 21.3創(chuàng)新部分 22、總體方案設(shè)計 22.1系統(tǒng)整體設(shè)計思想 23、系統(tǒng)硬件設(shè)計(各個功能模塊設(shè)計) 33.1STC89C52RC單片機最小系統(tǒng) 33.2蜂鳴器連接電路 43.3串口收發(fā)模塊 53.4DS18B20溫度傳感器模塊 53.5LCD1602液晶顯示屏模塊 73.6直流電機模塊 83.7系統(tǒng)整體電路圖 94、軟件設(shè)計 105、系統(tǒng)測試與調(diào)試結(jié)果分析 115.1測試儀器 115.2測試方法與結(jié)果分析 116、設(shè)計總結(jié) 137、參考文獻 138、附件:源程序 14 1、任務(wù)設(shè)計1.1設(shè)計任務(wù)設(shè)計出一個可以對倉庫溫度監(jiān)控的系統(tǒng),并實現(xiàn)以應(yīng)用。1.2設(shè)計要求1、檢測倉庫溫度,當(dāng)大于28度時驅(qū)動電機低速轉(zhuǎn)動,當(dāng)大于30度時驅(qū)動電機中速轉(zhuǎn)動,當(dāng)大于35度時驅(qū)動電機高速轉(zhuǎn)動;2、檢測倉庫溫度,將溫度數(shù)據(jù)上傳至上位機,上位機收到溫度后做出以下反應(yīng):當(dāng)大于28度時發(fā)送命令01驅(qū)動電機低速轉(zhuǎn)動,當(dāng)大于30度時發(fā)送命令02驅(qū)動電機中速轉(zhuǎn)動,當(dāng)大于35度時發(fā)送命令03驅(qū)動電機高速轉(zhuǎn)動。(可加分)1.3創(chuàng)新部分(1)增加了蜂鳴器報警(2)可以通過串口把數(shù)據(jù)發(fā)送到上位機、并且上位機可以控制風(fēng)扇的轉(zhuǎn)速(3)把直流電機改為風(fēng)扇使得現(xiàn)象更加明顯2、總體方案設(shè)計2.1系統(tǒng)整體設(shè)計思想本系統(tǒng)不僅可以滿足倉庫溫度變量實行全面、實時、長期監(jiān)測的要求,而且還實現(xiàn)上位機控制風(fēng)扇的轉(zhuǎn)速來使倉庫恢復(fù)所需溫度。系統(tǒng)以52單片機為核心,以DS18B20溫度傳感器、通過單片機與智能傳感器相連,采集并存儲智能傳感器的測量數(shù)據(jù),經(jīng)過分析處理將結(jié)果顯示于LCD液晶屏,通過串口模塊把溫度上傳到上位機顯示、再通過上位機發(fā)送檔位控制風(fēng)扇的轉(zhuǎn)速控制溫度,對倉庫的溫度檢測,為名貴產(chǎn)品的保存環(huán)境提供了一種有效的監(jiān)控系統(tǒng)。3、系統(tǒng)硬件設(shè)計(各個功能模塊設(shè)計)3.1STC89C52RC單片機最小系統(tǒng)單片機最小系統(tǒng)是指用最少的元件組成的單片機可以工作的系統(tǒng).對52系列單片機來說,最小系統(tǒng)一般應(yīng)該包括:單片機微處理器芯片、晶振電路、復(fù)位電路。52單片機最小系統(tǒng)復(fù)位電路的極性電容C1的大小直接影響單片機的復(fù)位時間,一般采用10~30uF,52單片機最小系統(tǒng)容值越大需要的復(fù)位時間越短。復(fù)位電路的用途
單片機復(fù)位電路就好比電腦的重啟部分,當(dāng)電腦在使用中出現(xiàn)死機,按下重啟按鈕電腦內(nèi)部的程序從頭開始執(zhí)行。當(dāng)單片機系統(tǒng)在運行中,受到環(huán)境干擾出現(xiàn)程序跑飛的時候,按下復(fù)位按鈕內(nèi)部的程序自動從頭開始執(zhí)行(感覺沒用到,所以沒做這一部分)。52單片機最小系統(tǒng)電路介紹
51單片機最小系統(tǒng)晶振Y1也可以采用12MHz或者11.0592MHz,在正常工作的情況下可以采用更高頻率的晶振,52單片機最小系統(tǒng)晶振的振蕩頻率直接影響單片機的處理速度,頻率越大處理速度越快。
51單片機最小系統(tǒng)起振電容C2、C3一般采用15~33pF,并且電容離晶振越近越好,晶振離單片機越近越好,P0口為開漏輸出,作為輸出口時需加上拉電阻,阻值一般為10k。
設(shè)置為定時器模式時,加1計數(shù)器是對內(nèi)部機器周期計數(shù)(1個機器周期等于12個振蕩周期,即計數(shù)頻率為晶振頻率的1/12)。計數(shù)值N乘以機器周期Tcy就是定時時間t。
設(shè)置為計數(shù)器模式時,外部事件計數(shù)脈沖由T0或T1引腳輸入到計數(shù)器。在每個機器周期的S5P2期間采樣T0、T1引腳電平。當(dāng)某周期采樣到一高電平輸入,而下一周期又采樣到一低電平時,則計數(shù)器加1,更新的計數(shù)值在下一個機器周期的S3P1期間裝入計數(shù)器。由于檢測一個從1到0的下降沿需要2個機器周期,因此要求被采樣的電平至少要維持一個機器周期。當(dāng)晶振頻率為12MHz時,最高計數(shù)頻率不超過1/2MHz,即計數(shù)脈沖的周期要大于2ms。STC89C52RC單片機的最小系統(tǒng)如圖2所示。圖2單片機最小系統(tǒng)3.2蜂鳴器連接電路利用三極管作為蜂鳴器的開關(guān),三極管基極接單片機的P1^3引腳,如果基極高電平三極管反偏,如果基極低電平,三極管正偏。其接線圖如圖3所示。圖3蜂鳴器連接電路3.3串口收發(fā)模塊MAX232芯片是MAXIM公司生產(chǎn)的、包含兩路接收器和驅(qū)動器的IC芯片,它的內(nèi)部有一個電源電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232輸出電平所需的+10V電壓。模塊如圖4所示。圖4串口連接電路 3.4DS18B20溫度傳感器模塊(1)初始化(時序圖如下)先將數(shù)據(jù)線置高電平1。延時(時間不是很嚴(yán)格要求,但要盡可能短一點)。數(shù)據(jù)線拉到低電平。延時750us(該時間范圍可以在480~960us)。數(shù)據(jù)線拉到高電平。延時等待。如果初始化成功則在15~60ms內(nèi)產(chǎn)生一個由DS18B20返回的低電平0,據(jù)該狀態(tài)可以確定它的存在。但是應(yīng)注意不能無限地等待,不然會使程序進入死循環(huán),所以要進行超時判斷。若CPU讀到數(shù)據(jù)線上的低電平0后,還要進行延時,其延時的時間從發(fā)出高電平算起(第5步的時間算起)最少要480us。將數(shù)據(jù)線再次拉到高地平1后結(jié)束。(2)DS18B20寫數(shù)據(jù)(時序圖如下)數(shù)據(jù)線先置低電平0.延時的時間確定為15us。按從低到高的順序發(fā)送數(shù)據(jù)(一次只發(fā)送一位)。延時時間為45us。將數(shù)據(jù)線拉到高電平1。重復(fù)1-5步驟,直到發(fā)送完整個字節(jié)。最后將數(shù)據(jù)線拉高到1。DS18B20讀數(shù)據(jù)(時序圖如下)將數(shù)據(jù)線拉高到1。延時2us。將數(shù)據(jù)線拉低到0。延時6us。將數(shù)據(jù)線拉高到1。延時4us。讀數(shù)據(jù)線的狀態(tài)得到一個狀態(tài)位,并進行數(shù)據(jù)處理。延時30us。重復(fù)1~7步驟,直到讀取完一個字節(jié)。3.5LCD1602液晶顯示屏模塊(1)1602液晶接口信號說明圖如下:3.6直流電機模塊電機驅(qū)動芯片ULN2803內(nèi)部結(jié)構(gòu)如下:1~18、2~17、3~16、4~15、5~14、6~13、7~12、8~11是對應(yīng)的非門,9為地(與電機共地),10為12v輸入。電機模塊的電路圖如下:3.7系統(tǒng)整體電路圖原理圖:PCB圖:4、軟件設(shè)計 開始后程序初始化,LCD1602、DS18B20、串口初始化,并且處于循環(huán)讀取溫度,并且把溫度不斷地在LCD1602上刷新,還發(fā)送到上位機,然后在上位機上輸入檔位使風(fēng)扇達到不同的轉(zhuǎn)速。開始開始LCD1602、DS18B20、串口初始化LCD1602、DS18B20、串口初始化18B20讀溫度18B20讀溫度 STC89C52STC89C52串口串口風(fēng)扇上位機LCD1602顯示溫度風(fēng)扇上位機LCD1602顯示溫度5、系統(tǒng)測試與調(diào)試結(jié)果分析5.1測試儀器萬用表、一字螺絲刀、PC機顯示界面、采用電腦USB通過串口通信模塊進行供電。5.2測試方法與結(jié)果打開電源系統(tǒng)各個模塊開始工作,各模塊正常工作,如圖16、圖17所示:圖16系統(tǒng)初始化工作圖圖17溫度檢測1602顯示和上傳到上位機、上位機輸入檔位控制風(fēng)扇轉(zhuǎn)速6、設(shè)計總結(jié)1、整個設(shè)計過程中團隊的合作最為重要、各隊員既要完成好各自負責(zé)的模塊也要小組內(nèi)成員互相協(xié)作。2、要想實現(xiàn)一個系統(tǒng),那必須對整個系統(tǒng)的設(shè)計有整體的思路。3、目前系統(tǒng)設(shè)置已經(jīng)基本實現(xiàn)功能,不足在于中斷部分沒有弄得進去就沒辦法規(guī)定時間讀取溫度到上位機,因為一開總中斷允許位就會使溫度讀取出錯。4、設(shè)計電路是系統(tǒng)功能實現(xiàn)的前提,合理的選用芯片十分關(guān)鍵,合理設(shè)置元器件參數(shù)更是一個難點。5、焊接電路路需要扎實的基礎(chǔ)功及較強的耐心,調(diào)試電路是必須認真細心。如有問題,耐心排查。6、需要有扎實的知識基礎(chǔ),既懂軟件又懂硬件,會寫程序能搭電路,對常用元器件比較了解。7、任何小的問題都會影響系統(tǒng)的最終功能,所以必須注意細節(jié),同時完成設(shè)計需要投入大量時間和精力,需要極強的毅力。7、參考文獻
[1]郭天祥新概念51單片機C語言教程——入門、提高、開發(fā)、拓展全攻略,電子工業(yè)出版社2014,(05)[2]上網(wǎng)查閱資料。8、附件:源程序#include<reg52.h>#include<intrins.h>#include<stdio.h>#include<math.h>#defineucharunsignedchar#defineuintunsignedintsbitRS=P1^0;sbitrw=P1^1;sbitLCDEN=P1^2;sbitfengmingqi=P1^3;sbitDSPORT=P1^4;sbitdianji=P2^0;floatt;intvalue;uchara;uchartable1[]="wendu:";uchartable2[]="dangwei:";uchartable3[]="0";uchartable4[]="1";uchartable5[]="2";uchartable6[]="3";voiddelayMs(uintz)//延時函數(shù){uinti,j;for(i=z;i>0;i--)for(j=110;j>0;j--);} voidwriteComm(ucharcomm) //寫命令函數(shù){RS=0;P0=comm;LCDEN=1;_nop_();LCDEN=0;delayMs(1);}voidwriteData(uchardat)//寫數(shù)據(jù)函數(shù){RS=1;P0=dat;LCDEN=1;_nop_();LCDEN=0;delayMs(1);}voidinit() //1602初始化{rw=0;writeComm(0x38);writeComm(0x0c);writeComm(0x06);writeComm(0x01);}voidwriteString(uchar*str,ucharlength)//在1602上寫第一行數(shù)據(jù)的格式函數(shù){uchari;for(i=0;i<length;i++){writeData(str[i]);}}/********************************************************************************函數(shù)名:Ds18b20Init*函數(shù)功能 :初始化*輸入:無*輸出:初始化成功返回1,失敗返回0*******************************************************************************/ucharDs18b20Init(){ uchari; DSPORT=0; //將總線拉低480us~960us i=70; while(i--);//延時642us DSPORT=1; //然后拉高總線,如果DS18B20做出反應(yīng)會將在15us~60us后總線拉低 i=0; while(DSPORT) //等待DS18B20拉低總線 { i++; if(i>5)//等待>5MS { return0;//初始化失敗 } delayMs(1); } return1;//初始化成功}/********************************************************************************函數(shù)名:Ds18b20WriteByte*函數(shù)功能 :向18B20寫入一個字節(jié)*輸入:com*輸出:無*******************************************************************************/voidDs18b20WriteByte(uchardat){ uinti,j; for(j=0;j<8;j++) { DSPORT=0; //每寫入一位數(shù)據(jù)之前先把總線拉低1us i++; DSPORT=dat&0x01;//然后寫入一個數(shù)據(jù),從最低位開始 i=6; while(i--);//延時68us,持續(xù)時間最少60us DSPORT=1; //然后釋放總線,至少1us給總線恢復(fù)時間才能接著寫入第二個數(shù)值 dat>>=1; }}/********************************************************************************函數(shù)名:Ds18b20ReadByte*函數(shù)功能 :讀取一個字節(jié)*輸入:com*輸出:無*******************************************************************************/ucharDs18b20ReadByte(){ ucharbyte,bi; uinti,j; for(j=8;j>0;j--) { DSPORT=0;//先將總線拉低1us i++; DSPORT=1;//然后釋放總線 i++; i++;//延時6us等待數(shù)據(jù)穩(wěn)定 bi=DSPORT; //讀取數(shù)據(jù),從最低位開始讀取 /*將byte左移一位,然后與上右移7位后的bi,注意移動之后移掉那位補0。*/ byte=(byte>>1)|(bi<<7); i=4; //讀取完之后等待48us再接著讀取下一個數(shù) while(i--); } returnbyte;}/********************************************************************************函數(shù)名:Ds18b20ChangTemp*函數(shù)功能 :讓18b20開始轉(zhuǎn)換溫度*輸入:com*輸出:無*******************************************************************************/voidDs18b20ChangTemp(){ Ds18b20Init(); delayMs(1); Ds18b20WriteByte(0xcc); //跳過ROM操作命令 Ds18b20WriteByte(0x44); //溫度轉(zhuǎn)換命令// delayMs(100); //等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不用這個延時了}/********************************************************************************函數(shù)名:Ds18b20ReadTempCom*函數(shù)功能 :發(fā)送讀取溫度命令*輸入:com*輸出:無 *******************************************************************************/voidDs18b20ReadTempCom(){ Ds18b20Init(); delayMs(1); Ds18b20WriteByte(0xcc); //跳過ROM操作命令 Ds18b20WriteByte(0xbe); //發(fā)送讀取溫度命令}/********************************************************************************函數(shù)名:Ds18b20ReadTemp*函數(shù)功能 :讀取溫度*輸入:com*輸出:無*******************************************************************************/intDs18b20ReadTemp(){ uinttemp=0; uchartmh,tml; Ds18b20ChangTemp(); //先寫入轉(zhuǎn)換命令 Ds18b20ReadTempCom(); //然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令 tml=Ds18b20ReadByte(); //讀取溫度值共16位,先讀低字節(jié) tmh=Ds18b20ReadByte(); //再讀高字節(jié) temp=tmh; temp<<=8; temp|=tml; value=temp; t=value*0.0625; value=t*100+(value>0?0.5:-0.5);//大于0加0.5,小于0減0.5 returnvalue;}voiddisplay(intv){ucharcount;uchardatas[]={0,0,0,0,0};uinttmp=abs(v); datas[0]=tmp/10000;datas[1]=tmp%10000/1000;datas[2]=tmp%1000/100;datas[3]=tmp%100/10; datas[4]=tmp%10;if(v<0){writeString("-",1);}else{writeString("+",1);}if(datas[0]!=0){writeData('0'+datas[0]);}for(count=1;count!=5;count++){writeData('0'+datas[count]);if(count==2){writeData('.');}} writeComm(0x80+6); Ds18b20ChangTemp(); if((tmp<=3400)|(v<0)) { fengmingqi=1; } elseif((3400<tmp)&&(tmp<=3500)) { fengmingqi=1; delayMs(50); fengmingqi=0; delayMs(50); } elseif((3500<tmp)&&(tmp<=3600)) { fengmingqi=1; delayMs(10); fengmingqi=0; delayMs(10); } elseif(tmp>3600) { fengmingqi=0; } }voidinit_com(void){ TMOD=0x20; PCON=0x00; SCON=0x50; TH1=0xfd; TL1=0xfd; ET2=1; TR1=1; }voidcomm(char*parr){ do { SBUF=*parr++; while(!TI); TI=0;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年湖南省高考生物試卷真題(含答案解析)
- 2024至2030年中國開背式焊服行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國尼龍藍網(wǎng)數(shù)據(jù)監(jiān)測研究報告
- 2024至2030年中國動態(tài)補償控制器行業(yè)投資前景及策略咨詢研究報告
- 2024至2030年中國光盤數(shù)據(jù)監(jiān)測研究報告
- 2024年中國碗袋兩用油炸方便面生產(chǎn)線市場調(diào)查研究報告
- 2024年中國田螺市場調(diào)查研究報告
- 2024年中國法式陳列柜市場調(diào)查研究報告
- 讓孩子更自信更有成就感-培養(yǎng)孩子自信提高學(xué)習(xí)
- 高中物理第二章磁場第五節(jié)磁性材料課件新人教版選修1-
- 對公客戶管理方案(修改版)
- 腎移植術(shù)的解剖(1)
- 《政務(wù)禮儀》PPT課件.ppt
- 文身的危害PPT精選課件
- IFRS17保險合同準(zhǔn)則評析及影響分析
- PLC課程設(shè)計(停車場車位控制 )
- 軟件項目運維工作記錄表
- 《羊道春牧場》讀后感作文5篇
- 上消化道大出血的護理PPT課件
- 鐵塔安裝施工方案(完整版)
- 直接抒情與間接抒情PPT學(xué)習(xí)教案
評論
0/150
提交評論