




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
5/17基于STC89C52的數(shù)字溫度計目錄緒論………………...……….3方案選擇2.1、主控芯片選擇…………32.2、顯示模塊…………….………………...32.3、溫度檢測模塊………………………..4系統(tǒng)硬件設計3.1、51單片機最小系統(tǒng)設計……….43.2、電源供電電路設計…………..……53.3、LCD顯示電路設計…………..…….63.4、溫度檢測電路設計…………………….….………74、系統(tǒng)軟件設計4.1、溫度傳感器數(shù)據(jù)讀取流程圖………..……...94.2、系統(tǒng)程序設計……………………….105、編程和仿真5.1、Keil編程軟件…………………..…..115.2、proteus………………...115.3、仿真界面……………..116、總結…………..…..……..127、附錄附錄1、原理圖………….12附錄2、程序清單……………………..131、緒論在信息高速發(fā)展的21世紀,科學技術的發(fā)展日新月異,科技的進步帶動了測量技術的發(fā)展,現(xiàn)代控制設備的性能和結構發(fā)生了翻天覆地的變化。我們已經進入了高速發(fā)展的信息時代,測量技術也成為當今科技的一個主流,廣泛地深入到研究和應用工程的各個領域。溫度和人們的生活息息相關,溫度的測量也就變得很重要。2、系統(tǒng)方案選擇2.1主控芯片選擇方案一:STC89C52RCSTC89C52RC是采用8051核的ISP在線可編程芯片,最高工作時鐘頻率80MHz,片內含8KB的可反復擦寫1000次的Flash只讀存儲器,器件兼容MCS-51指令系統(tǒng)及8051引腳結構,芯片內集成了通用8位中央處理器和ISPFlash存儲單元,具有在線可編程特定,配合PC端的控制程序即可將用戶的程序代碼下載進單片機內部,省去了購買通用編程器,而且速度更快。STC89C52RC系列單片機是單時鐘周期、高速、低功耗的新一代8051單片機。方案二:ATmega8ATmega8是ATMAL公司在2002年第一季度推出的一款新型AVR高檔單片機。在AVR家族中,ATmega8是一種非常特殊的單片機,它的芯片內部集成了較大容量的存儲器和豐富強大的硬件接口電路,具備AVR高檔單片機MEGA系列的全部性能和特點。但由于采用了小引腳封裝<為DIP28和TQFP/MLF32),所以其價格僅與低檔單片機相當,再加上AVR單片機的系統(tǒng)內可編程特性,使得無需購買昂貴的仿真器和編程器也可進行單片機嵌入式系統(tǒng)的設計和開發(fā),同時也為單片機的初學者提供了非常方便和簡捷的開發(fā)環(huán)境。由以上兩種方案進行比較,我們選擇STC89C52RC作為主控芯片,因為該芯片是入門級單片機,我們對該款單片機比較熟悉,而AVR單片機較為高端,這次的設計用STC89C52已經足夠使用,引腳也夠用,故用STC89C52作為主控芯片。STC89C52RC價格低廉,一般5元以內可以買到,在通銀買也很方便。2.2時鐘及顯示模塊方案一:數(shù)碼管數(shù)碼管亮度高,顯示大,特別是顯示的時間很直觀,價格比較便宜,但多位的數(shù)碼管在動態(tài)掃描的時候會出現(xiàn)閃爍。而且數(shù)碼管占用的位置較大,且比較耗電。方案二:1602液晶屏1602液晶屏顯示清晰且不會閃爍,在需要時還可以輸出字符等內容,由于液晶屏是數(shù)字式的,因此和單片機系統(tǒng)的接口簡單,操作方便。1602LCD液晶DS18B20是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:?獨特的單線接口僅需一個端口引腳進行通訊?簡單的多點分布應用?無需外部器件?可通過數(shù)據(jù)線供電?零待機功耗?測溫范圍-55~+125℃,以0.5℃遞增。華氏器件-67~+2570F,以0.90F遞增?溫度以9位數(shù)字量讀出?溫度數(shù)字量轉換時間200ms<典型值)?用戶可定義的非易失性溫度報警設置?報警搜索命令識別并標志超過程序限定溫度<溫度報警條件)的器件。DS18B20內部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖3.3.1所示,DQ為數(shù)據(jù)輸入/輸出引腳。開漏單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。其電路圖如圖5.3.1所示.。圖5.3.1外部封裝形式在仿真軟件中如圖5.3.2所示圖5.3.2DS18B20的測溫原理如圖5.3.3所示,圖中低溫度系數(shù)晶振的振蕩頻率受溫度的影響很小用于產生固定頻率的脈沖信號送給減法計數(shù)器1,高溫度系數(shù)晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數(shù)器2的脈沖輸入,圖中還隱含著計數(shù)門,當計數(shù)門打開時,DS18B20就對低溫度系數(shù)振蕩器產生的時鐘脈沖后進行計數(shù),進而完成溫度測量.計數(shù)門的開啟時間由高溫度系數(shù)振蕩器來決定,每次測量前,首先將-55℃所對應的基數(shù)分別置入減法計數(shù)器1和溫度寄存器中,減法計數(shù)器1和溫度寄存器被預置在-55℃所對應的一個基數(shù)值。減法計數(shù)器1對低溫度系數(shù)晶振產生的脈沖信號進行減法計數(shù),當減法計數(shù)器1的預置值減到0時溫度寄存器的值將加1,減法計數(shù)器1的預置將重新被裝入,減法計數(shù)器1重新開始對低溫度系數(shù)晶振產生的脈沖信號進行計數(shù),如此循環(huán)直到減法計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫圖5.3.3中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數(shù)器的預置值,只要計數(shù)門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20<發(fā)復位脈沖)→發(fā)ROM功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù)。圖5.3.3在正常測溫情況下,DS1820的測溫分辨力為0.5℃。系統(tǒng)軟件設計4.1:實驗主程序流程圖4.2:溫度傳感器數(shù)據(jù)讀取流程圖5、編程和仿真5.1編程軟件Keil4KeilC51是美國Keilsoftware公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境<uVision)將這些部分組合在一起。運行Keil需要win98、NT、win2000、winXP、win7等操作系統(tǒng)。2009年2月發(fā)布的KeiluVision4,KeiluVision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上的表面對窗口位置的完全控制的任何地方,新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔、高效的環(huán)境來開發(fā)應用程序。5.2仿真軟件proteus7.7Proteus軟件是Labcenterelectronics公司出版的EDA工具軟件<該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教案的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具<仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現(xiàn)了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2018年又增加了Cortex和DSP系列處理器,并持續(xù)增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。5.3仿真界面6、總結1、選擇芯片和傳感器時,夠用易用就可以,綜合考慮選擇性價比最好的。2、在進行電路實際制作之前,應該用仿真軟件進行仿真,可以使開發(fā)進程加快。3、在實際制作電路時,需要注意電源端和地端要檢測過不導通后才能通電檢測,防止燒壞芯片。7、附錄附錄1、原理圖附錄2、程序清單#include<reg52.h>//頭文件#defineucharunsignedchar#defineuintunsignedintsbitrs=P2^0。sbitlcden=P2^1。//液晶使能端sbitDATA=P3^7。//DS18B20接入口ucharFLAG_DIS=0。ucharbai_18b20,shi_18b20,ge_18b20,num。//定義變量bitflag_Negative_number。//負數(shù)標志ucharcodetable[]={"tempreture:"}。//提示語/*****一毫秒定時*****/voiddelay_ms(uintz>{ uintx,y。 for(x=z。x>0。x--> for(y=110。y>0。y-->。}/*延時子函數(shù)*/voiddelay(uintnum>{ while(num-->。}/*液晶寫命令*/voidwrite_lcd_com(ucharcom>{ rs=0。 lcden=0。 P0=com。 delay_ms(1>。 lcden=1。 delay_ms(1>。 lcden=0。 }/*液晶寫數(shù)據(jù)*/voidwrite_lcd_date(uchardate>{ rs=1。 lcden=0。 P0=date。 delay_ms(1>。 lcden=1。 delay_ms(1>。 lcden=0。 }/*液晶初始化程序*/voidlcd_init(>{ write_lcd_com(0x38>。 write_lcd_com(0x0c>。 write_lcd_com(0x06>。 write_lcd_com(0x01>。}/*************DS18b20溫度傳感器函數(shù)*********************/voidInit_DS18B20(void> //傳感器初始化{ ucharx=0。 DATA=1。//DQ復位 delay(10>。//稍做延時 DATA=0。//單片機將DQ拉低 delay(80>。//精確延時大于480us//450 DATA=1。//拉高總線 delay(20>。 x=DATA。//稍做延時后如果x=0則初始化成功x=1則初始化失敗 delay(30>。}/*溫度傳感器讀一個字節(jié)*/ReadOneChar(void>{ uchari=0。 uchardat=0。 for(i=8。i>0。i--> { DATA=0。//給脈沖信號 dat>>=1。 DATA=1。//給脈沖信號 if(DATA> dat|=0x80。 delay(8>。 } return(dat>。}/*溫度傳感器寫一個字節(jié)*/voidWriteOneChar(uchardat>{ uchari=0。 for(i=8。i>0。i--> { DATA=0。 DATA=dat&0x01。 delay(10>。 DATA=1。 dat>>=1。 } delay(8>。}/*讀取溫度傳感器溫度*/intReadTemperature(void>{ uchara=0。 ucharb=0。 intt=0。 floattt=0。 Init_DS18B20(>。 WriteOneChar(0xCC>。//跳過讀序號列號的操作 WriteOneChar(0x44>。//啟動溫度轉換 Init_DS18B20(>。 WriteOneChar(0xCC>。//跳過讀序號列號的操作 WriteOneChar(0xBE>。//讀取溫度寄存器等<共可讀9個寄存器)前兩個就是溫度 a=ReadOneChar(>。//低位 b=ReadOneChar(>。//高位 t=b。 t<<=8。 t=t|a。 if(b&0x80> { t=~t+1。 flag_Negative_number=1。} else{flag_Negative_number=0。} tt=t*0.0625。 t=tt*10+0.5。 return(t>。}/*液晶顯示溫度*/voiddis_D18B20(void>{ inttemp。 temp=ReadTemperature(>。//讀溫度 bai_18b20=temp%1000/100。//顯示十位 shi_18b20=temp%100/10。//顯示個位 ge_18b20=temp%10。//顯示十分位 if(flag_Negative_number> //負數(shù) { if(bai_18b20==0> //十位為0,則不顯示十位 { write_lcd_com(0x80+0x40>。 write_lcd_date(0x2D>。 write_lcd_date(0x30+shi_18b20>。 write_lcd_date(0x30+ge_18b20>。 write_lcd_date(0xDF>。 write_lcd_date(0x43>。 } else { write_lcd_com(0x80+0x40>。 write_lcd_date(0x2D>。 write_lcd_date(0x30+bai_18b20>。 write_lcd_date(0x30+shi_18b20>。 write_lcd_date(0xDF>。 write_lcd_date(0x43>。 } } else //正數(shù) { if(bai_18b20==0> //十位為0,則不顯示十位 { write_lcd_com(0x80+0x40>。 write_lcd_date(0x30+shi_18b20>。 write_lcd_date(0x2E>。 write_lcd_date(0x30+ge_18b20>。 writ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 滌綸纖維在防霉地毯材料中的應用考核試卷
- 塑料鞋制造過程廢料處理與回收利用考核試卷
- 生物制藥過程中的質量控制實驗室建設與管理考核試卷
- 電視廣播信號加密與解密技術考核試卷
- 玻璃屋頂搭建考核試卷
- 電視芯片原理與系統(tǒng)集成考核試卷
- 皮革護理技能競賽策劃與實施考核試卷
- 陽泉職業(yè)技術學院《單片機技術與應用》2023-2024學年第二學期期末試卷
- 四川托普信息技術職業(yè)學院《建設用地管理》2023-2024學年第二學期期末試卷
- 徐州市九里區(qū)2024-2025學年四下數(shù)學期末復習檢測試題含解析
- 中國銀聯(lián)招聘筆試題庫2024
- 2024安徽制造業(yè)發(fā)展報告
- 四年級下冊道德與法治(教學設計+素材)第8課《這些東西哪里來》(第二課時)
- 高職旅游專業(yè)《旅行社經營管理》說課稿
- DB65-T 4785-2024 耕地質量等級調查評價技術規(guī)范
- 財務機器人開發(fā)與應用實戰(zhàn) 課件 任務5 E-mail人機交互自動化-2
- 2024年個人廉潔自律述職報告(三篇)
- 【華為】通信行業(yè):華為下一代鐵路移動通信系統(tǒng)白皮書2023
- 小學家長會-做好孩子手機管理主題班會課件
- Python 程序設計智慧樹知到期末考試答案章節(jié)答案2024年四川師范大學
- 山東省技能大賽青島選拔賽-世賽選拔項目55樣題(3D數(shù)字游戲技術)
評論
0/150
提交評論