




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上 單片機課程設計課設題目:數(shù)字顯示溫度計學 院:電氣與控制工程學院專業(yè)班級:自動化1105班設 計 者:何瑢()、蔡馳()、劉阿敏()設計時間:17周18周指導老師:楊良煜 劉曉榮專心-專注-專業(yè)目錄第一部分:整體方案1.1摘要11.2設計任務及要求1 1.2.1基本功能 1.2.2擴展功能1.3方案辯證1 1.3.1溫度傳感器的選取 1.3.2顯示模塊的選擇第二部分:方案設計框圖2.1硬件電路框圖22.2主控電路32.3顯示電路32.4報警溫度調節(jié)電路42.5溫度傳感器及 DS18B20測溫原理4第三部分:系統(tǒng)軟件算法設計3.1主程序53.2讀出溫度子程序53.3溫
2、度轉換命令子程序 63.4 計算溫度子程序6 3.5 顯示數(shù)據(jù)刷新子程序63.6 1602的液晶顯示 6第四部分:軟件仿真圖7第五部分:參考文獻8第六部分:設計心得體會8第七部分:附錄附錄一:系統(tǒng)總體原理圖9附錄二:系統(tǒng)程序清單10附錄三:元件清單18題目:數(shù)字顯示溫度計1、摘要: 本文介紹一種基STC89C52單片機的一種溫度測量及報警電路,以DS18B20數(shù)字溫度傳感器為信號源來實現(xiàn)數(shù)字鐘溫度的顯示,測量范圍是:-20100,使用1602液晶顯示屏顯示,能設置溫度報警上下限。一般而言數(shù)字溫度計的設計與制作可以采用數(shù)字電路來完成,也可以采用單片機來完成,若采用數(shù)字電路來完成,則設計的電路圖太
3、復雜,其功能也主要是依賴于數(shù)字電路的各功能模塊的組合來實現(xiàn),而且電路板的制作比較復雜,采用單片機來設計制作,由于其功能的實現(xiàn)主要是通過軟件編程來完成,這樣大大降低了電路的復雜性,而且成本也較便宜。關鍵字:溫度測量 溫度傳感器DS18B20Abstract:This paper introduces a kind of a kind of base AT89S52 single chip microcomputer temperature measurement and alarm circuit, carrying out the manifestation of the digital th
4、ermometer,its Measuring range is: - 20 100 ,which use 1602 LCD screen display and can set the lower limit temperature alarm. Generally speaking the design and manufactures of the digital thermometer can adopt the numerical electric circuit to complete, can also adopt a machine to complete.If adopt t
5、he numerical electric circuit to complete, then the electric circuit diagram of design is too complicated, its function also mainly is depend on in the numerical electric circuit of the combination of each function mold piece to carry out, and the creation of the circuit board is more complicated.Ad
6、opt a machine to design the creation, because of the realization of its function mainly is to pass the software plait distance to complete, thus lowered the complexity of the electric circuit consumedly, and the cost also compares the cheapness.Keywords:STC89C52,,DS18B20,16022.1設計任務及要求: 基本功能: 1)溫度測量
7、范圍:-20100,測量誤差小于0.5 2)1602LCD液晶顯示屏直接顯示 擴展功能: 1)可以任意設定上下限報警溫度 2)溫度顯示有華氏度和攝氏度兩種,由按鍵控制2.2方案辯證 2.2.1 溫度傳感器的選?。?(1)方案一:采用熱敏電阻傳感器。利用熱敏電阻隨溫度變化而顯著變化,能直接將溫度的變化轉換為能量的變化,進而制成溫度計。但是其測溫傳感器比較復雜,而且不易通過編制程序來控制測溫精度,增大系統(tǒng)設計的難度。 (2)方案二:采用DS18B20溫度傳感器。DS18B20的內部3腳(或8腳)封裝;使用特有的溫度測量技術,將被測溫度轉換成數(shù)值信號;3.05.5V的電源供電方式和寄生電源供電方式;
8、ROM由64位二進制數(shù)字組成,共分為8個字節(jié);RAM由9個字節(jié)的高速暫存器和非易失性電擦寫ROM組成。綜上所述:溫度傳感器選取智能測溫器件DS18B20。2.2.2顯示模塊的選擇 顯示電路采用LCD液晶顯示,從P3口RXD,TXD串口輸出段碼。顯示電路是使用的串口顯示,這種顯示最大的優(yōu)點就是使用口資源比較少.本設計顯示電路采用1602液晶顯示模塊芯片。 用LED數(shù)碼管來顯示。顯示器件為7段碼數(shù)碼管,適于制作時鐘屏、利率屏等,顯示數(shù)字的電子顯示屏。 綜上各方案所述,對此次課設的方案選定: 采用STC89C52作為主控制系統(tǒng); 1602液晶顯示模塊芯片作為溫度數(shù)據(jù)顯示裝置;而智能溫度傳感器DS18
9、B20器件作為測溫電路主要組成部分。至此,系統(tǒng)最終方案確定。2、 設計方案的總體設計框圖 溫度計電路設計總體設計方框圖如圖所示,控制器采用單片機STC89C52,溫度傳感器采用DS18B20,用1602液晶顯示屏以串口傳送數(shù)據(jù)實現(xiàn)溫度顯示。2.1硬件電路框圖: 單片機芯片STC89C52復位電路晶振控制1602 顯示器溫度檢測電路報警溫度調整蜂鳴器,指示燈 圖1總體設計方框圖 系統(tǒng)由單片機最小系統(tǒng)、顯示電路、按鍵、溫度傳感器等組成。本電路是由STC89C52單片機為控制核心,具有與MCS-51系列單片機完全兼容,程序加密等功能,帶2KB字節(jié)可編程閃存,工作電壓范圍為2.76V,全靜態(tài)工作頻率為
10、024MHZ;顯示電路由1602液晶顯示模塊芯片,可以進行多行顯示;溫度報警按鍵設為五個,可以顯示華氏溫度,調節(jié)高低報警溫度;溫度傳感器電路主要由DS18B20測溫器件構成,該器件主要功能有:采用單總線技術;每只DS18B20具有一個獨立的不可修改的64位序列號;低壓供電,電源范圍為35V;測溫范圍為-20+125,誤差為±0.5;復位電路是10K電阻構成的上電自動復位。2.2主控電路單片機AT89C51 具有低電壓供電和體積小等特點,四個端口只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。晶振采用12MHZ。復位電路采用上電加自動復位。圖
11、二主控芯片STC89C52 圖三晶振電路 圖四復位電路2.3顯示電路 本設計顯示電路采用1602液晶顯示模塊芯片,該芯片可現(xiàn)實16x2個字符,比以前的七段數(shù)碼管LED顯示器在顯示字符的數(shù)量上要多得多。1602A芯片的接口信號說明如下表:圖五液晶顯示電路2.4報警溫度調節(jié)電路本系統(tǒng)一共設置了五個按鍵,k1鍵只是顯示華氏溫度,k4鍵按下不松開顯示高低報警溫度,松開后恢復顯示正常溫度,k2鍵和k3鍵是分別用來調節(jié)高低報警溫度,k鍵控制調節(jié)時的上調或下調。具體調節(jié)如將高溫報警溫度調高,第一步將k4鍵按下不松,k鍵升起位置,調節(jié)k2鍵,則高溫報警溫度向上增加,反之亦然。低溫報警同理。K1顯示華氏溫度K加
12、減控制開關K4低溫報警溫度調節(jié)K3高溫報警溫度調節(jié)+=K2顯示溫度報警、返回 圖六報警點調節(jié)電路2.5溫度傳感器及DS18B20測溫原理 由于測溫電路采用了單總線數(shù)字式可編程溫度傳感器,硬件實現(xiàn)十分簡單,而且僅占用一個I/O口。節(jié)約了成本,大大簡化了電路,從而使得調試容易。圖七測溫電路3、 系統(tǒng)軟件算法設計 系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。3.1主程序 主程序的主要功能是負責溫度的實時顯示、讀出并處理DS18B20的測量的當前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內測量一次被測溫度,其程序流程見圖所示。3.2讀出溫度子
13、序讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,校驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖示 圖八主程序流程圖 圖九讀溫度流程圖 3.3溫度轉換命令子程序 溫度轉換命令子程序主要是發(fā)溫度轉換開始命令,當采用12位分辨率時轉換時間約為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如上圖,圖9所示3.4 計算溫度子程序 計算溫度子程序將RAM中讀取值進行BCD碼的轉換運算,并進行溫度值正負的判定,其程序流程圖如圖所示。 圖十溫度轉換流程圖 圖十一計算溫度流程圖3.5 顯示數(shù)據(jù)刷新子程序 顯示數(shù)據(jù)刷新子程序主要是對顯示緩沖器
14、中的顯示數(shù)據(jù)進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖。3.6 1602的液晶顯示 圖十二顯示數(shù)據(jù)刷新流程圖 1602液晶顯示流程圖:4、軟件仿真本設計是在Proteus環(huán)境下進行仿真的,仿真所用到的器件有:單片機AT89C51,DS1820溫度傳感器,蜂鳴器,液晶顯示器,一些電阻,電容等。仿真結果如下: 顯示器顯示 傳感器溫度 高低報警溫度參考文獻1 李朝青.單片機原理及接口技術(簡明修訂版).杭州:北京航空航天大學出版社,19982 李廣弟.單片機基礎M.北京:北京航空航天大學出版社,19943 閻石.數(shù)字電子技術基礎(第三版). 北京:高等教育出版社,1989
15、4 廖常初.現(xiàn)場總線概述J.電工技術,1999.5 劉軍.單片機原理與接口技術M.華東理工大學出版社.2006.6 謝自美.電子線路設計、實驗、測試M.武漢,華中理工大學出版社.2000.7 張元良.單片機綜合設計實用教程M.北京,機械工業(yè)出版社.2013年8月.設計心得體會 經(jīng)過將兩周的單片機課程設計,在我們小組的共同努力下終于完成了液晶屏顯示數(shù)字溫度計的設計。經(jīng)歷了這次的課程設計,我深深地感到自己在程序應用方面的不足,程序只有在使用中才能得以練習和鞏固,這一點是我在這兩周里最大收獲。我了解了設計電路的步驟,對于這些電路還是應該自己動手實際操作才會有深刻理解。我也了解了關于數(shù)字溫度計的原理與
16、設計理念還有液晶屏的每一個接點的功能特性。 對于單片機這門課,我學的很吃力,總覺得上課講解的相對簡單,而其實課程的真正要求不僅僅是課本上的知識,在實驗課編寫程序的時候,就已經(jīng)感到難度很大,還好和同學討論才能夠理解,匯編語言的掌握遠遠達不到自己編寫的程度,僅僅是看懂語句的功能而已,對于語言的邏輯關系感到很吃力,不容易理解。 實踐出真知,從這次的課程設計中,我真真正正的意識到,在以后的學習中,要多多練習和實踐,才能把抽象的理論變?yōu)樽约旱闹R,才能得以運用。 何瑢 在實訓中,我們認識了很多器件,了解了它們的性能,使用方法及作用。它們?yōu)槲覀兊纳顜砹撕芏嗟谋憬?。通過實訓,同學們的友誼也增進了不少,很
17、多不太會做的實驗在同學們的幫助下完成了。我們通過相互學習,相互溝通,一起研究,讓很多的實驗都做得相當?shù)某晒?,心中的成就感與自豪感油然而生。班級的那種團結氛圍填滿了整個實訓間。我們的老師,他們也頂著酷熱和我們一起忙活,看著圍在他身邊的那一圈圈的人,他也會耐心的為我們講解,直到我們聽懂為止。在實訓中到了編程時就出現(xiàn)了很大的障礙,先開始的顯示溫度還算順利,下面的報警部分就花費了相當長的時間,不過經(jīng)過我們一步步的努力,花費的時間與精力終于沒有白費,效果漸漸地出現(xiàn)了。其實本身程序的思維是正確的,只是步驟中有點小錯誤,所以導致整個程序的結果很亂,在仔細修改程序之后,終于一步步地達到效果了,對于軟件我們加入
18、了報警系統(tǒng),可加了之后發(fā)現(xiàn)程序亂了,以前的時鐘也不可以控制了,經(jīng)過反復研究發(fā)現(xiàn)接地接錯了位置,導致了用來報警的紅燈跟綠燈根本不亮,然后就將接地線重新焊接了一下,功夫不負有心人,燈亮了。這是我們共同努力的結果,在享受我們成果之時,我們從中學到了很多知識也讓我們對數(shù)字溫度計的設計有了更深一步的了解,最后我希望我們班能在以后的生活、學習中表現(xiàn)得更出色,更團結。老師們能夠笑臉常開,萬事如意。 蔡馳這次課設是我們遇到過的較大的設計,所以遇到的問題也比較的多,尤其是以前沒有接觸過如此復雜的硬件電路以及軟件編程,在軟、硬件設計和調試中遇到了不少的困難,在同學的幫助以及經(jīng)過自己在圖書館和網(wǎng)上查資料才逐一克服了
19、難題,學習到了不少的專業(yè)知識。在整個設計過程之前,我已經(jīng)在網(wǎng)上找了相關方面的資料,在圖書館也借了許多書,萬事開始難,在這次課設中,我掌握了很多單片機及其接口應用的知識,讓我對我所學過的知識有所鞏固和提高,并且讓我對當今單片機的最新發(fā)展技術有所了解。在整個過程中,我學到了新知識,增長了見識。在今后的日子里,我仍然要不斷地充實自己,爭取在所學領域有所作為。 腳踏實地,認真嚴謹,實事求是的學習態(tài)度,不怕困難、堅持不懈、吃苦耐勞的精神是我在這次設計中最大的收益。我想這是一次意志的磨練,是對我實際能力的一次提升,也會對我未來的學習和工作有很大的幫助。在此我也要感謝老師和同學的幫助,以及同組同學的合作和協(xié)
20、助,才能順利的完成這次課設??傊?,這次的課設收獲很大。劉阿敏附錄:附錄一:系統(tǒng)總體原理圖附錄二:系統(tǒng)程序清單/*#include<reg51.h>#include<intrins.h> /shiyongyanshi#include<math.h> #define uchar unsigned char#define uint unsigned intsbit DQ=P33; sbit RS =P20;sbit RW =P21;sbit EN =P22;sbit k=P10;sbit k1=P14;sbit k2=P15;sbit k3=P16;sbit k4
21、=P17;sbit led_red=P25;sbit led_blue=P26;sbit BEEP=P37;uchar bz=1;/BEEP=0;uchar ng=0; /fuhaobiaoshiwei uchar TempBuffer ="TEMP: "int temp_value; /溫度值 uchar code dis_title="-current temp-" void xianshi_huashi();uchar gw=40;char dw= 10;uchar xianshi_title=" TEMP ALARM "uch
22、ar xianshi_baojing="HI: LO: " /345 10 12/-延時- void delayxus(uint x) uchar i; while(x-) for(i=0;i<200;i+); /*LCD 控制*/讀lcd 狀態(tài)uchar read_lcd_state() uchar state ; RS=0;RW=1;EN=1;delayxus(1);state=P0;EN=0;delayxus(1); return state; / 忙等待void lcd_busy_wait() while(read_lcd_state()&0x80)=
23、0x80);delayxus(5);/向LCD寫數(shù)據(jù) void write_lcd_data(uchar dat) lcd_busy_wait(); RS=1;RW=0;EN=0;P0=dat;EN=1;delayxus(1);EN=0; /向LCD寫指令 void write_lcd_cmd(uchar cmd) lcd_busy_wait(); RS=0;RW=0;EN=0;P0=cmd;EN=1;delayxus(1);EN=0; /-/LCD初始化void init_lcd() write_lcd_cmd(0x38); delayxus(1); write_lcd_cmd(0x01)
24、; delayxus(1); write_lcd_cmd(0x06); delayxus(1); write_lcd_cmd(0x0C) ; delayxus(1); /- /設置液晶顯示位置 void set_lcd_pos(uchar p) write_lcd_cmd(p| 0x80); /- /在LCD上顯示字符串 void dis_lcd_string(uchar p,uchar *s) /位置,字符指針 uchar i; set_lcd_pos(p);for(i=0;i<16;i+) /16*2 write_lcd_data(si) ; delayxus(1); /- void
25、 delay_18B20(unsigned int i)while(i-);/-蜂鳴器- void beep() uchar i; for(i=0;i<100;i+) delayxus(1);BEEP=BEEP; BEEP=1; /延時2void delay2(uint x)while(-x); /= /初始化DS!* /*ds18b20初始化函數(shù)*/void Init_DS18B20(void) unsigned char x=0; DQ = 1; /DQ復位 delay_18B20(8); /稍做延時 DQ = 0; /單片機將DQ拉低 delay_18B20(80); /精確延時
26、大于 480us DQ = 1; /拉高總線 delay_18B20(14); x=DQ; /稍做延時后 如果x=0則初始化成功 x=1則初始化失敗 delay_18B20(20);/*ds18b20讀一個字節(jié)*/ uchar ReadOneChar(void)uchar i=0;uchar dat = 0;for (i=8;i>0;i-) DQ = 0; / 給脈沖信號 dat>>=1; DQ = 1; / 給脈沖信號 if(DQ) dat|=0x80; delay_18B20(4); return(dat);/*ds18b20寫一個字節(jié)*/ void WriteOneCh
27、ar(uchar dat) unsigned char i=0; for (i=8; i>0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat>>=1; /*讀取ds18b20當前溫度*/void ReadTemp(void)unsigned char a=0;unsigned char b=0;unsigned char t=0;Init_DS18B20();WriteOneChar(0xCC); / 跳過讀序號列號的操作WriteOneChar(0x44); / 啟動溫度轉換delay_18B20(10
28、0); / this message is wery importantInit_DS18B20();WriteOneChar(0xCC); /跳過讀序號列號的操作WriteOneChar(0xBE); /讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度delay_18B20(100);a=ReadOneChar(); /讀取溫度值低位 aaaaaaaaaaaaaaaaaaaab=ReadOneChar(); /讀取溫度值高位 bbbbbbbbbb b.a temp_value= b<<4; temp_value+=(a&0xf0)>>4; void tem
29、p_to_str() /溫度數(shù)據(jù)轉換成液晶字符顯示 if(temp_value & 0xE0)=0xE0) temp_value =temp_value +1 ; ng=1;elseng=0; if(k1=0) /while(k1=0); bz=(bz+1) %2; if(bz=0) temp_value =(int)(temp_value )*(9.0/5.0)+32; if(ng=1) TempBuffer9=temp_value/100+'0' if(TempBuffer9= ' ') TempBuffer9='-' TempBuf
30、fer10=temp_value%100/10+'0' /十位 TempBuffer11=temp_value%10+'0' /個位 TempBuffer12=0xdf; /溫度符號 TempBuffer13='C' TempBuffer14='0' /TempBuffer1=ng %10+ '0' if(ng=0) TempBuffer9=temp_value/100+'0' if(temp_value/100=0) TempBuffer9 =' ' TempBuffer10=te
31、mp_value % 100/10+'0' /十位 if(temp_value % 100/10=0) TempBuffer10 =' ' TempBuffer11=temp_value%10+'0' /個位 / if(temp_value%10=0) TempBuffer11 =' ' TempBuffer13='C' /溫度符號 if(bz=0) TempBuffer13='F' TempBuffer14='0' /TempBuffer1=ng%10+'0' vo
32、id Delay1ms(unsigned int count)unsigned int i,j;for(i=0;i<count;i+)for(j=0;j<120;j+);/*延時子程序*/void mdelay(uint delay)uint i; for(;delay>0;delay-) for(i=0;i<62;i+) ; /1ms延時. void show_time() /液晶顯示程序 ReadTemp(); /開啟溫度采集程序 temp_to_str(); /溫度數(shù)據(jù)轉換成液晶字符 dis_lcd_string(0x40,TempBuffer); /顯示溫度 d
33、is_lcd_string(0x00,dis_title); / Delay1ms(400); /掃描延時void xianshi_dw() if(dw>=0) xianshi_baojing3=gw/100+'0' xianshi_baojing4=gw%100/10+'0' xianshi_baojing5=gw%10+'0' xianshi_baojing10=dw/100+'0' xianshi_baojing11=dw%100/10+'0' xianshi_baojing12=dw%10+'
34、0'dis_lcd_string(0x00,xianshi_title);dis_lcd_string(0x40,xianshi_baojing);elseif(dw<0) xianshi_baojing3=gw/100+'0' xianshi_baojing4=gw%100/10+'0' xianshi_baojing5=gw%10+'0' xianshi_baojing10= '-' xianshi_baojing11=abs(dw)%100/10+'0' xianshi_baojing12=abs(dw)%10+'0'dis_lcd_strin
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年蒸氣吹掃機行業(yè)深度研究分析報告
- 2025年版事業(yè)單位試用期員工勞動合同簽訂要點3篇
- 物料箱車行業(yè)深度研究報告
- 2025年度調味品品牌形象設計與宣傳推廣合同
- 房屋 補充合同范本
- 鄄城租房合同范本
- 2025年度防盜門行業(yè)人才培養(yǎng)與引進合同
- 逆變式孤焊機行業(yè)深度研究報告
- 施工企業(yè)如何開展鐵路項目概算清理工作
- 2025山地租賃協(xié)議范本(山地風力發(fā)電項目)4篇
- Python數(shù)據(jù)挖掘實戰(zhàn)全套教學課件
- 中美歐規(guī)范樁基承載力計算設計對比
- 鋼筋工程隱蔽檢查驗收記錄表
- 區(qū)塊鏈技術應用開發(fā)項目可行性分析報告
- 加強師德師風建設學校師德師風警示教育講座培訓課件
- 豬飼料購銷合同書
- 常用小學生詞語成語積累歸類大全
- 七種不同樣式的標書密封條
- 全國水利工程監(jiān)理工程師培訓教材質量控制
- 中國傳統(tǒng)成語故事(英文版)
- 鑄造廠總降壓變電所及廠區(qū)配電系統(tǒng)設計
評論
0/150
提交評論