版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
智能儀表原理與設(shè)計綜合訓(xùn)練報告題目:溫度采集儀的設(shè)計班級:姓名:學(xué)號:指導(dǎo)教師:王久龍張紅琴成績:2015年11月13日目錄前言................................................2系統(tǒng)方案...........................................31.1溫度采集的意義和目的1.2主要設(shè)計內(nèi)容1.3課題的任務(wù)要求1.4單片機的選型1.5系統(tǒng)框圖硬件設(shè)計....................................42.1系統(tǒng)硬件原理圖2.2單片機模塊化設(shè)計2.2.1主控模塊2.2.2溫度傳感器模塊2.2.3顯示模塊2.2.4報警模塊2.2.5通信模塊2.2.6按鍵電路2.2.7晶振控制電路2.2.8復(fù)位電路軟件設(shè)計....................................103.1主程序設(shè)計3.2LCD液晶顯示軟件設(shè)計3.3溫度采集儀軟件設(shè)計系統(tǒng)的軟硬件調(diào)試.............................134.1軟件程序下載4.2硬件調(diào)試4.2.1上電前的調(diào)試4.2.2上電后的調(diào)試4.3軟硬件聯(lián)調(diào)結(jié)果4.4軟硬件聯(lián)調(diào)結(jié)果分析參考文獻.....................................................15致謝.........................................................16附錄A硬件原理圖.............................................17附錄B源程序清單.............................................17附錄C元器件清單.............................................32前言溫度是一種根本的環(huán)境參數(shù),人民的生活與環(huán)境的溫度息息相關(guān),在工業(yè)生產(chǎn)過程中需要實時測量溫度,在農(nóng)業(yè)生產(chǎn)中也離不開溫度的測量。因此研究溫度的測量方法和裝置具有重要意義。測量溫度的關(guān)鍵是溫度傳感器,溫度傳感器的開展經(jīng)歷了三個開展階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式,集成化向智能化、網(wǎng)絡(luò)化的方向飛速開展。本文所介紹的智能溫度測量系統(tǒng)是基于DS18B20型數(shù)字式溫度傳感器,在89C52單片機的控制下,對環(huán)境溫度進行實時控制的裝置。該系統(tǒng)測量范圍寬、測量精確度高,該系統(tǒng)可廣泛適用于人民的日常生活和工、農(nóng)業(yè)生產(chǎn)的溫度測量。系統(tǒng)方案1.1溫度采集的意義和目的溫度是一種根本的環(huán)境參數(shù),人們的生活與環(huán)境溫度息息相關(guān),不僅是在工業(yè)生產(chǎn)過程中還是農(nóng)業(yè)生產(chǎn)過程中都離不開溫度的控制,隨著人們生活水平的不斷提高,人們對溫度的要求也越來越高。溫度現(xiàn)場比擬惡劣,遠程溫度測試就變得比擬重要,利用RS-232進行串口接收數(shù)據(jù)來模擬現(xiàn)實生活中隊溫度的實時觀測與控制。1.2主要設(shè)計內(nèi)容溫度傳感器DS18B20采集環(huán)境模擬信號,其輸出送入AT89C52,單片機在程序的控制下,將處理過的數(shù)據(jù)當被測溫度高于一定溫度時,單片機發(fā)出報警信號。1.3課題的任務(wù)要求要求:通過溫度傳感器采集溫度,并將溫度傳到單片機進行處理,并通過液晶顯示,同時以單片機為核心的主控單元通過對按鍵的操作,設(shè)定上下限報警溫度與實測溫度進行比擬,并判斷是否報警,且與PC機通信將監(jiān)測的溫度發(fā)送到PC機〔溫度監(jiān)測界面可用VB進行編程設(shè)計〕。目的〔技術(shù)指標〕:1.可以對0℃~+125℃溫度進行實時采集并能〔通過液晶〕顯示;2.可以通過按鍵人工設(shè)定上下限報警溫度并判斷是否報警〔蜂鳴器發(fā)出響聲〕;3.實現(xiàn)下位機與PC機之間的串行通信〔在PC機上用VB所編寫界面顯示實測溫度值〕。1.4單片機的選型選用單片機AT89C52單片機AT89C52采用采用的是CHMOS工藝:高速度,高密度,低功耗??煽啃愿撸阌跀U展。控制功能強。單片機AT89C52片內(nèi)存儲容量小,除此之外,集成度高,體積小,性價比高,應(yīng)用廣泛。1.5系統(tǒng)框圖圖1.1整體設(shè)計方案圖硬件設(shè)計2.1系統(tǒng)硬件原理圖該溫度采集儀系統(tǒng)由主控模塊,溫度傳感模塊,顯示模塊,按鍵模塊,通信模塊組成。2.2單片機模塊化設(shè)計2.2.1主控模塊圖2.2單片機STC89C52引腳圖端口線制用,每一個引腳并不完全相同,如圖p3口的第二功能:電源線〔2條〕控制線〔6條〕平封鎖狀態(tài)。2.2.2溫度傳感器模塊本設(shè)計選用的數(shù)字式集成溫度傳感器DS18B20。DS18B20是DALLAS半導(dǎo)體公司〔現(xiàn)屬MAXIM公司〕設(shè)計生產(chǎn)的單總線數(shù)字溫度傳感器,其測量溫度范圍為-55℃~+125℃,在-10~+85℃時精度為±0.5℃。DS18B20的測溫原理,低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小,用于產(chǎn)生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產(chǎn)生的信號作為減法計數(shù)器2的脈沖輸入,還隱含著計數(shù)門,當計數(shù)門翻開時,DS18B20就對低溫度系數(shù)振蕩器產(chǎn)生的時鐘脈沖后進行計數(shù),進而完成溫度測量。計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應(yīng)的基數(shù)分別置入減法計數(shù)器1和溫度存放器中,減法計數(shù)器1和溫度存放器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預(yù)置值減到0時溫度存放器的值將加1,減法計數(shù)器1的預(yù)置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度存放器值的累加,此時溫度存放器中的數(shù)值即為所測溫度。DS18B20的封裝與引腳圖如下圖。DS18B20的封裝與引腳圖2.2.3顯示模塊主要采用LCD1602液晶顯示。主要實現(xiàn)的功能是通過單片機讀取溫度傳感器轉(zhuǎn)換的溫度值,再將其所讀取的十六進制數(shù)轉(zhuǎn)換成十制數(shù),通過靜態(tài)顯示,最后在LCD顯示出溫度數(shù)值。本設(shè)計液晶顯示器選用LCD1602,將單片機輸出的數(shù)據(jù)進行動態(tài)顯示。仿真如下圖。LCD1602仿真圖2.2.4報警模塊由一個自我震蕩型的蜂鳴器,蜂鳴器是通過三極管放大信號.在所要求的溫度到達一定的上界或者下界時(我的初始上界溫度20℃,下界溫度為26℃),通過三個按鈕可改變上下界溫度的范圍,一個按鈕是用來加,一個按鈕是用來減,最后一個按鈕是用來設(shè)置模式。只要溫度不在其設(shè)置范圍內(nèi),蜂鳴器就會發(fā)出響聲。仿真圖如下圖。2.2.5通信模塊主要是利用MAX232實現(xiàn)RS232的串行協(xié)議的電平轉(zhuǎn)換,以保證采樣參數(shù)的設(shè)置和溫度向PC機正常發(fā)送。主要實現(xiàn)的功能是利用STC89C52的UART串行通信口和上位PC機實現(xiàn)串行通信。硬件電路如下圖。MAX232硬件圖2.2.6按鍵電路按鍵電路如圖2.7所示。由K2、K3、K4三個按鍵控制上、下限溫度值。P1.0接口接K1按鍵。P1.2接口接入K2按鍵。P1.3接口接K3按鍵。K1溫度上下限減少鍵:減少溫度上下限的值。2.K2溫度上下限增加鍵:增加溫度上下限的值。K3溫控開關(guān)鍵:進入溫控的切換鍵。按鍵電路圖2.2.7晶振控制電路晶振采用的是11.0592MHZ的標準晶振。接入單片機的XTAL1、XTAL2。晶振控制電路如下圖。晶振控制電路圖2.2.8復(fù)位電路本設(shè)計兼有上電復(fù)位和人工復(fù)位。人工復(fù)位即按下K4使單片機復(fù)位。直接接到單片機的RESET引腳。復(fù)位電路如下圖。復(fù)位電路軟件設(shè)計3.1主程序設(shè)計主程序流程圖如下圖:3.2LCD液晶顯示軟件設(shè)計3.3溫度采集儀軟件設(shè)計第四章系統(tǒng)的軟硬件調(diào)試4.1軟件程序下載硬件電路焊接好后,先檢查有無連線錯誤,確認無誤后,先在電腦中安裝單片機下載器PL-2303HX驅(qū)動,STC燒錄下載軟件,選擇單片機芯片為STC89C52RC,翻開程序文件,把自己的程序加載進去,選擇COM口,查看計算機-管理-設(shè)備管理,選擇COM3開始下載程序。下載窗口如圖4.1所示。圖4.1程序下載窗口4.2硬件調(diào)試4.2.1上電前的調(diào)試將板子焊接好,在上電前先進行無電測試,這也是工作的第一步,主要用萬用表來檢測是否存在短路或斷路的情況。4.2.2上電后的調(diào)試確認電路無錯誤后,用杜邦線正確連接好P3.2、P3.3、P3.4,確保電源線和地線均連接正確。將芯片下載好程序,接通電源,看液晶顯示器上有沒有正確的溫度顯示,使用DS18B20傳感器接受溫度,看是否到達報警溫度報警。使用串口線將上位機與下位機連接起來,在上位機檢測下位機的溫度。4.3軟硬件聯(lián)調(diào)結(jié)果軟硬件聯(lián)調(diào)結(jié)果如表4-1所示。表4-1測試結(jié)果統(tǒng)計4.4軟硬件聯(lián)調(diào)結(jié)果分析本設(shè)計中所要求的溫度采集的數(shù)據(jù)在液晶顯示器1602第一行顯示“NowTempurature”,第二行能顯示溫度上下限的范圍〔20°~25°〕,同時通過單片機控制的按鍵來改變溫度上下限范圍值。按鍵一個能手動調(diào)節(jié)溫度的上下限,一個可用來加溫度,一個用來減溫度。MAX232電路工作正常,單片機與PC機能正常實現(xiàn)串行通信并在VB程序編寫的界面顯示實時溫度并且顯示狀態(tài)穩(wěn)定。在設(shè)定的范圍內(nèi)判定然后可實現(xiàn)報警,即蜂鳴器會發(fā)出響聲,告知現(xiàn)在所測溫度不在其設(shè)定溫度范圍內(nèi),因此三個技術(shù)指標都能滿足。參考文獻[1]趙新民.智能化儀器設(shè)計根底.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1999.[2]樓然苗等51系列單片機設(shè)計實例北京航空航天出版社,2003.3.[3]唐俊翟等單片機原理與應(yīng)用冶金工業(yè)出版社,2003.9.[4]劉瑞新等單片機原理及應(yīng)用教程機械工業(yè)出版社,2003.7.[5]吳國經(jīng)等單片機應(yīng)用技術(shù)中國電力出版社,2004.1.[6]VisualBasic程序設(shè)計教程,吳鳳翔,中國林業(yè)出版社,2002-11.
[7]VisualBasic程序設(shè)計教程,龔沛增,清華大學(xué)出版社,2004.
[8]VisualBASIC程序設(shè)計,譚浩強,清華大學(xué)出版社,2000.
[9]VisualBasic6.0程序設(shè)計,劉新民,清華大學(xué)出版社,2004.
[10]VisualBasic程序設(shè)計教程,羅朝盛,人民郵電出版社,2005.
[11]VisualBasic程序設(shè)計教程,劉炳文,許蔓舒清華大學(xué)出版社,2000.[12]徐愛軍,徐陽,智能化測量控制儀表原理與設(shè)計〔第三版〕[M].北京航空航天大學(xué)出版社,2002-11.致謝本次智能儀表實訓(xùn),硬件局部看上去很簡單,其實實際上要想真的焊好,也沒有那么容易,因為還要拆上液晶,所以焊之前的排版很重要。軟件設(shè)計也十分不易,要去找很多資料。當然,這一切的過程都離不開老師的幫助,在此非常感謝王九龍和張紅琴兩位老師的悉心教導(dǎo),真是受益匪淺,希望以后還有這樣的時機。附錄A硬件原理圖附錄B源程序清單#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//DS18B20定義使用單片機P37端口sbitlcden=P2^7;//1602使能sbitlcdrs=P2^5;//1602數(shù)據(jù)/命令選擇端sbitlcdrw=P2^6;//1602讀/寫選擇端sbitGLED=P1^7;//綠色LED正常范圍值點亮,在本次設(shè)計中未參加sbitRLED=P3^3; //紅色LED超過正常范圍值點亮sbitBLED=P3^4; //藍色LED低于正常范圍值點亮〔本次設(shè)計中用紅色LED燈替代〕sbitBELL=P3^2; //蜂鳴器報警控制端#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3^7;//DS18B20定義使用單片機P37端口sbitlcden=P2^7;//1602使能sbitlcdrs=P2^5;//1602數(shù)據(jù)/命令選擇端sbitlcdrw=P2^6;//1602讀/寫選擇端sbitGLED=P1^7;//綠色LED正常范圍值點亮,在本次設(shè)計中未參加sbitRLED=P3^3; //紅色LED超過正常范圍值點亮sbitBLED=P3^4; //藍色LED低于正常范圍值點亮〔本次設(shè)計中用紅色LED燈替代〕sbitBELL=P3^2; //蜂鳴器報警控制端sbitK1=P1^0; //設(shè)置鍵/確定鍵sbitK2=P1^1; //數(shù)字調(diào)整鍵加1sbitK3=P1^2; //箭字調(diào)整鍵減****************************/sbitK1=P1^0; //設(shè)置鍵/確定鍵sbitK2=P1^1; //數(shù)字調(diào)整鍵加1sbitK3=P1^2; //箭字調(diào)整鍵減1uintwendu=0;//溫度初始數(shù)值0度uchartem_h=27,tem_l=15;//溫濕度上下限變量ucharkeyflag_1=0;//按鍵標志位根據(jù)按鍵次數(shù)執(zhí)行操作內(nèi)容/********************延時函數(shù),延時一毫秒************************/voiddelay(uintz){ uintx,y; for(x=z;x>0;x--) for(y=112;y>0;y--);}/**************************1602顯示****************************/voidwrite_cmd(charcmd)//寫指令函數(shù){ lcdrs=0;//低電位送指令 P0=cmd; delay(1); lcden=1; delay(1); lcden=0;}voidwrite_data(uchardat)//寫數(shù)據(jù)函數(shù){ lcdrs=1;//高電位送數(shù)據(jù) P0=dat; delay(1); lcden=1; delay(1); lcden=0;}voidwrite_str(uchar*str)//寫字符串函數(shù){ while(*str!='\0') { write_data(*str++); delay(60); }}/***************************初始化******************************/voidinit(){lcdrw=0;//先將RW拉低 lcden=0;//再把EN拉低 write_cmd(0x38);//顯示模式設(shè)置 write_cmd(0x0c);//開啟顯示屏,關(guān)光標,光標不閃爍 write_cmd(0x06);//顯示地址遞增,即寫一個數(shù)據(jù)后,顯示位置右移一位 write_cmd(0x01);//去除屏幕 write_cmd(0x80);//數(shù)據(jù)指針把光標移到第一行第一個位置}/************************DS18B20程序*************************/bitinit_DS18B20(){ ucharnum; bitflag; DQ=1; for(num=0;num<2;num++);//先拉高 DQ=0; for(num=0;num<200;num++);//480-960us powerup DQ=1; for(num=0;num<20;num++); //>60uswait flag=DQ; //響應(yīng) for(num=0;num<150;num++); // 60-240usds18b20存在信號 DQ=1; returnflag;}voidDS18B20_WR_CHAR(ucharbyte)//寫18b20數(shù)據(jù)//{ ucharnum; ucharnum1; for(num1=0;num1<8;num1++) { DQ=0; //拉低 _nop_(); //下拉1us _nop_(); DQ=byte&0x01; //寫數(shù)據(jù),從地位開始 for(num=0;num<20;num++); //>60uswait byte>>=1; DQ=1; //拉高 _nop_(); _nop_(); } //8位數(shù)據(jù),一位一位的寫入ds18b20}ucharDS18B20_RD_CHAR() //讀18b20數(shù)據(jù){ ucharnum; ucharnum1; ucharbyte=0; for(num1=0;num1<8;num1++) { DQ=0; //拉低 _nop_(); DQ=1; for(num=0;num<1;num++);//<10us byte>>=1; if(DQ==1) byte|=0x80; else byte|=0x00; DQ=1; //拉高 _nop_(); _nop_(); for(num=0;num<20;num++);//>60us } returnbyte;}voidDS18B20_WENDU(){ uchartemperaturel=0; uchartemperatureh=0;if(init_DS18B20()==0) { DS18B20_WR_CHAR(0xcc); //發(fā)命令:SkipROM,跳過讀序列號 DS18B20_WR_CHAR(0x44); //啟動溫度轉(zhuǎn)換if(init_DS18B20()==0) { DS18B20_WR_CHAR(0xcc); //發(fā)命令:SkipROM,跳過讀序列號 DS18B20_WR_CHAR(0xBE); //讀取溫度 _nop_(); temperaturel=DS18B20_RD_CHAR(); //溫度值低8為存入temperaturel temperatureh=DS18B20_RD_CHAR(); //溫度值高8為存入temperatureh wendu=(temperatureh*256+temperaturel)*0.625;//完成數(shù)據(jù)整合,溫度比正常大10倍 init_DS18B20(); } }}voidkeyscan() //按鍵掃描{ if(K1==0) { delay(5); if(K1==0) { keyflag_1++;//鍵一按下,標志位加1 while(!K1); } } if(keyflag_1==3){keyflag_1=0;write_cmd(0x0c);} if(keyflag_1==1){write_cmd(0x89);write_cmd(0x0d);}//溫度上限末位翻開光標 if(keyflag_1==2){write_cmd(0x8f);write_cmd(0x0d);}//溫度下限末位翻開光標 if(keyflag_1!=0) { if(K2==0) //限值加鍵 { delay(5);//按鍵消除抖動判斷 if(K2==0) { while(!K2); if(keyflag_1==1) { tem_h++;if(tem_h==100)tem_h=0;write_cmd(0x88);write_data(tem_h/10+48); write_data(tem_h%10+48); } if(keyflag_1==2) { tem_l++; if(tem_l==100)tem_l=0; write_cmd(0x8e); write_data(tem_l/10+48); write_data(tem_l%10+48); } } } if(K3==0) //限值減鍵 { delay(5);//按鍵消除抖動判斷 if(K3==0) { while(!K3); if(keyflag_1==1) { tem_h--;if(tem_h==0)tem_h=99;write_cmd(0x88);write_data(tem_h/10+48); write_data(tem_h%10+48); } if(keyflag_1==2) { tem_l--; if(tem_l==0)tem_l=99; write_cmd(0x8e); write_data(tem_l/10+48); write_data(tem_l%10+48); } } } } }/**********************報警判斷函數(shù)******************************/voidbaojing() {ucharu;u=((wendu/100)%10)*10+(wendu/10)%10;//如果用同一個wendu變量,進入功能選擇是,wendu原來的值沒有保存變?yōu)?if(u>=tem_h)//溫度大于設(shè)定上限值{RLED=0;GLED=1;BELL=0;}elseif(u<tem_l)//溫度低于下限值{BLED=0;GLED=1;BELL=0;} else{GLED=0;BELL=1;BLED=1;RLED=1;}}/************************主函數(shù)******************************/voidsend(ucharc) //向串口發(fā)送字符{ SBUF=c;while(TI==0); TI=0;}voidmain(){ init();//初始化1602界面+48的作用是實現(xiàn)十進制和ASCII碼之間的轉(zhuǎn)換,目的是使1602液晶正常顯示十進制數(shù)write_str("SET:h=27l=15"); write_cmd(0x88); write_data((tem_h/10)+48); write_data(tem_h%10+48); write_cmd(0x8e); write
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 老年人日常護理技巧
- 隆鼻手術(shù)恢復(fù)期護理細節(jié)
- 護理精神科護理特殊性與挑戰(zhàn)
- 護理中的疼痛管理與緩解策略
- 大豐市小海中學(xué)高中化學(xué)檢測期末串講(下)
- 2025年保險合作協(xié)議書
- 垂直市場廣告競爭策略研究
- 2026 年中職康復(fù)治療技術(shù)(柔韌性訓(xùn)練)試題及答案
- 英語b級的試題及答案
- 基于“大單元”視角的高中思政課教學(xué)策略研究
- 跨區(qū)域文化協(xié)作-洞察及研究
- 2025 易凱資本中國健康產(chǎn)業(yè)白皮書 -生物制造篇(與茅臺基金聯(lián)合發(fā)布)
- 產(chǎn)業(yè)經(jīng)濟學(xué)(蘇東坡版)課后習(xí)題及答案
- T/CECS 10227-2022綠色建材評價屋面綠化材料
- 區(qū)域醫(yī)學(xué)檢驗中心項目建設(shè)方案
- 小學(xué)四年級安全教育上冊教學(xué)計劃小學(xué)四年級安全教育教案
- 個人優(yōu)勢與劣勢分析
- VCR接頭鎖緊工作程序
- 2025閥門裝配工藝規(guī)程
- 非計劃拔管風(fēng)險評估及護理
- 小學(xué)數(shù)學(xué)教學(xué)中融入中國傳統(tǒng)文化的實踐研究
評論
0/150
提交評論