單片機的數字溫度計設計方案(附代碼與仿真)_第1頁
單片機的數字溫度計設計方案(附代碼與仿真)_第2頁
單片機的數字溫度計設計方案(附代碼與仿真)_第3頁
單片機的數字溫度計設計方案(附代碼與仿真)_第4頁
單片機的數字溫度計設計方案(附代碼與仿真)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于STC89C52的數字溫度計目錄1、 緒論.32、 方案選擇 2.1、主控芯片選擇 32.2、顯示模塊.32.3、溫度檢測模塊.43、 系統(tǒng)硬件設計3.1、51單片機最小系統(tǒng)設計.43.2、電源供電電路設計.53.3、LCD顯示電路設計.63.4、溫度檢測電路設計.74、 系統(tǒng)軟件設計4.1、溫度傳感器數據讀取流程圖.94.2、系統(tǒng)程序設計.105、 編程和仿真5.1、Keil編程軟件.115.2、proteus.115.3、仿真界面.116、 總結.127、 附錄 附錄1、原理圖.12 附錄2、程序清單.131、緒論在信息高速發(fā)展的21世紀,科學技術的發(fā)展日新月異,科技的進步帶動了測量技

2、術的發(fā)展,現代控制設備的性能和結構發(fā)生了翻天覆地的變化。我們已經進入了高速發(fā)展的信息時代,測量技術也成為當今科技的一個主流,廣泛地深入到研究和應用工程的各個領域。溫度和人們的生活息息相關,溫度的測量也就變得很重要。2、系統(tǒng)方案選擇2.1 主控芯片選擇方案一:STC89C52RCSTC89C52RC是采用8051核的ISP在線可編程芯片,最高工作時鐘頻率80MHz,片含8KB的可反復擦寫1000次的Flash只讀存儲器,器件兼容MCS-51指令系統(tǒng)及8051引腳結構,芯片集成了通用8位中央處理器和ISP Flash存儲單元,具有在線可編程特定,配合PC端的控制程序即可將用戶的程序代碼下載進單片機

3、部,省去了購買通用編程器,而且速度更快。STC89C52RC系列單片機是單時鐘周期、高速、低功耗的新一代8051單片機。方案二:ATmega8ATmega8是ATMAL公司在2002年第一季度推出的一款新型AVR高檔單片機。在AVR家族中,ATmega8是一種非常特殊的單片機,它的芯片部集成了較大容量的存儲器和豐富強大的硬件接口電路,具備AVR高檔單片機MEGA系列的全部性能和特點。但由于采用了小引腳封裝<為DIP28和TQFP/MLF32),所以其價格僅與低檔單片機相當,再加上AVR單片機的系統(tǒng)可編程特性,使得無需購買昂貴的仿真器和編程器也可進行單片機嵌入式系統(tǒng)的設計和開發(fā),同時也為單

4、片機的初學者提供了非常方便和簡捷的開發(fā)環(huán)境。由以上兩種方案進行比較,我們選擇STC89C52RC作為主控芯片,因為該芯片是入門級單片機,我們對該款單片機比較熟悉,而AVR單片機較為高端,這次的設計用STC89C52已經足夠使用,引腳也夠用,故用STC89C52作為主控芯片。STC89C52RC價格低廉,一般5元以可以買到,在通銀買也很方便。2.2 時鐘及顯示模塊方案一:數碼管數碼管亮度高,顯示大,特別是顯示的時間很直觀,價格比較便宜,但多位的數碼管在動態(tài)掃描的時候會出現閃爍。而且數碼管占用的位置較大,且比較耗電。方案二: 1602液晶屏1602液晶屏顯示清晰且不會閃爍,在需要時還可以輸出字符等

5、容,由于液晶屏是數字式的,因此和單片機系統(tǒng)的接口簡單,操作方便。1602LCD液晶顯示屏的功耗主要消耗在其部的電極和驅動IC 上,因而耗電量比其他顯示器要少得多,功耗較低。由于其部集成有顯示芯片,程序編寫簡單,適用于多方面的應用。因此由以上兩種方案進行比較,我們選擇方案二來設計顯示模塊。1602液晶顯示屏網上可購買的途徑較多,價格一般在10元以,育森電子網店價格為8.5元。通銀那也有,不過可能價格要15元左右。2.3 溫度檢測模塊方案一:熱敏電阻+AD模塊本方案使用熱敏電阻之類的器件<如AD590等模擬溫度傳感器)利用其感溫效應,在將隨被測溫度變化的電壓或電流采集出來,進行A/D轉換后,

6、就可以利用單片機進行數據的處理,在顯示電路上可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。方案二:DS18B20DS18B20數字溫度傳感器是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。它在實際應用中不需要外部任何元器件即可實現測溫,測量溫度圍在-55到+125攝氏度之間,由以上兩種方案進行比較,我們選擇方案二來設計溫度檢測模塊。其中DS18B20網上報價約為5元,其中,育森電子的網店較為便宜,為4.5元。通銀也有賣,價格稍微高點。3、系統(tǒng)

7、硬件設計3.1 51單片機最小系統(tǒng)設計單片機最小系統(tǒng)如下圖所示:以STC89C52單片機為核心,選用12M的晶振,這是最常用的選擇,外接電容沒有特別的要求,但是外接電容的大小會影響振蕩器的頻率高低、振蕩器的穩(wěn)定性和起振的快速性,因此我們選用30pf的電容作為起振電容。復位電路為按鍵低電平復位,當按鍵按下,RET端為高電平,當高電平持續(xù)4us的時間就可以使單片機復位。這里尤其要注意的是晶振和電容的位置,它們距離單片機引腳越短越好,因為太長可能無法使單片機起振。另外是EA端一定要接上電源,使單片機能夠工作。3.2 電源供電電路設計電源供電電路如下圖所示:我們采用4節(jié)1.5V的電池作為電源,LM29

8、40為穩(wěn)壓芯片,穩(wěn)壓芯片兩端分別接兩個0.1uf和100uf的電容進行濾波,以獲得更穩(wěn)定的電壓。D1為電源指示燈,當開關打開,顯示燈亮,表示給電路供+5V電壓。其中,LM2940作為常用的穩(wěn)壓芯片,比7805的轉換效率要高,7805直接輸入不接輸出的情況下,其部會有3mA的靜態(tài)電流消耗,而2940的靜態(tài)電流比7805要小的多,故選擇LM2940作為穩(wěn)壓芯片。4節(jié)電池裝在電池盒中,在電路板下方安裝,使用兩套螺絲。3.3 LCD顯示電路設計1602LCD液晶屏顯示電路如下圖所示:1602LCD液晶屏為5V電壓驅動,帶背光,可顯示兩行,每行16個字符,不能顯示漢字。液晶1、2端為電源;15、16為背

9、光電源;為防止直接加5V而燒壞背光燈,在15腳串聯(lián)一個1K電阻晶3端為液晶對比度調節(jié)端,通過一個10K的電位器來調節(jié)液晶顯示對比度。用于限流。液液晶4端為向液晶控制器寫數據/寫命令選擇端,接單片機P1.0端口。液晶5端為讀/寫選擇端,因為我們不需要從液晶中讀取數據,只向其寫入命令和數據,因此此端始終選擇為寫狀態(tài),即低電平接地。液晶6端為使能信號,是操作必須的信號,接單片機的P1.1口。3.4 溫度檢測電路設計溫度檢測電路如下圖所示:DS18B20是美國DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程

10、實現位的數字值讀數方式。DS18B20的性能特點如下:獨特的單線接口僅需一個端口引腳進行通訊簡單的多點分布應用無需外部器件可通過數據線供電零待機功耗測溫圍-55+125,以0.5遞增。華氏器件-67+2570F,以0.90F 遞增溫度以9 位數字量讀出溫度數字量轉換時間200ms<典型值)用戶可定義的非易失性溫度報警設置報警搜索命令識別并標志超過程序限定溫度<溫度報警條件)的器件。DS18B20部結構主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列、各種封裝形式如圖3.3.1所示,DQ 為數據輸入/輸出引腳。開漏

11、單總線接口引腳。當被用著在寄生電源下,也可以向器件提供電源;GND為地信號;VDD為可選擇的VDD引腳。當工作于寄生電源時,此引腳必須接地。其電路圖如圖5.3.1所示.。 圖5.3.1外部封裝形式 在仿真軟件中如圖5.3.2所示 圖5.3.2DS18B20的測溫原理如圖5.3.3所示,圖中低溫度系數晶振的振蕩頻率受溫度的影響很小用于產生固定頻率的脈沖信號送給減法計數器1,高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入,圖中還隱含著計數門,當計數門打開時,DS18B20就對低溫度系數振蕩器產生的時鐘脈沖后進行計數,進而完成溫度測量.計數門的開啟時間由高溫度系數

12、振蕩器來決定,每次測量前,首先將-55 所對應的基數分別置入減法計數器1和溫度寄存器中,減法計數器1和溫度寄存器被預置在-55 所對應的一個基數值。減法計數器1對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時溫度寄存器的值將加1,減法計數器1的預置將重新被裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環(huán)直到減法計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值即為所測溫圖5.3.3中的斜率累加器用于補償和修正測溫過程中的非線性其輸出用,于修正減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直至溫度寄存器值達到被測溫度值,

13、這就是DS18B20的測溫原理。另外,由于DS18B20單線通信功能是分時完成的,有嚴格的時隙概念,因此讀寫時序很重要。系統(tǒng)對DS18B20的各種操作必須按協(xié)議進行。操作協(xié)議為:初始化DS18B20<發(fā)復位脈沖)發(fā)ROM功能命令發(fā)存儲器操作命令處理數據。圖5.3.3 在正常測溫情況下,DS1820的測溫分辨力為0.5。4、 系統(tǒng)軟件設計4.1:實驗主程序流程圖4.2:溫度傳感器數據讀取流程圖5、編程和仿真5.1 編程軟件Keil4Keil C51是美國Keil software 公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的

14、優(yōu)勢,因而易學易用。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境<uVision)將這些部分組合在一起。運行Keil需要win98、NT、win2000、winXP、win7等操作系統(tǒng)。2009年2月發(fā)布的Keil uVision4,Keil uVision4引入靈活的窗口管理系統(tǒng),使開發(fā)人員能夠使用多臺監(jiān)視器,并提供了視覺上的表面對窗口位置的完全控制的任何地方,新的用戶界面可以更好地利用屏幕空間和更有效地組織多個窗口,提供一個整潔、高效的環(huán)境來開發(fā)應用程序。5.2 仿真軟件proteus7.7Proteus軟件是L

15、abcenter electronics公司出版的EDA工具軟件<該軟件中國總代理為風標電子技術)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國推廣剛起步,但已受到單片機愛好者、從事單片機教案的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus是世界上著名的EDA工具<仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協(xié)同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11

16、、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> /頭文件#define

17、 uchar unsigned char #define uint unsigned intsbit rs=P20。sbit lcden=P21。 /液晶使能端sbit DATA = P37。 /DS18B20接入口uchar FLAG_DIS=0。uchar bai_18b20,shi_18b20,ge_18b20,num。 /定義變量bit flag_Negative_number 。/負數標志uchar code table="tempreture:" 。 /提示語/*一毫秒定時*/void delay_ms(uint z>uint x,y。for(x=z。x&

18、gt;0。x->for(y=110。y>0。y->。/*延時子函數*/void delay(uint num>while(num-> 。/*液晶寫命令*/void write_lcd_(uchar >rs=0。lcden=0。P0=。delay_ms(1>。lcden=1。delay_ms(1>。lcden=0。/*液晶寫數據*/void write_lcd_date(uchar date>rs=1。lcden=0。P0=date。delay_ms(1>。lcden=1。delay_ms(1>。lcden=0。/*液晶初始化程序

19、*/void lcd_init(>write_lcd_(0x38>。write_lcd_(0x0c>。write_lcd_(0x06>。write_lcd_(0x01>。/*DS18b20溫度傳感器函數*/void Init_DS18B20(void> /傳感器初始化 uchar x=0。 DATA = 1。 /DQ復位 delay(10>。 /稍做延時 DATA = 0。 /單片機將DQ拉低 delay(80>。 /精確延時 大于 480us /450 DATA = 1。 /拉高總線 delay(20>。 x=DATA。 /稍做延時后 如

20、果x=0則初始化成功 x=1則初始化失敗 delay(30>。/*溫度傳感器讀一個字節(jié)*/ReadOneChar(void>uchar i=0。uchar dat = 0。for (i=8。i>0。i-> DATA = 0。 / 給脈沖信號 dat>>=1。 DATA = 1。 / 給脈沖信號 if(DATA> dat|=0x80。 delay(8>。 return(dat>。/*溫度傳感器寫一個字節(jié)*/void WriteOneChar(uchar dat> uchar i=0。 for (i=8。 i>0。 i-> D

21、ATA = 0。 DATA = dat&0x01。 delay(10>。 DATA = 1。 dat>>=1。 delay(8>。/*讀取溫度傳感器溫度*/int ReadTemperature(void>uchar a=0。uchar b=0。int t=0。float tt=0。Init_DS18B20(>。WriteOneChar(0xCC>。 /跳過讀序號列號的操作WriteOneChar(0x44>。 /啟動溫度轉換Init_DS18B20(>。WriteOneChar(0xCC>。 /跳過讀序號列號的操作Write

22、OneChar(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>。/*液晶顯示溫度*/void dis_D18B20(void>int temp。temp=ReadTemperature(>

23、;。/讀溫度bai_18b20=temp%1000/100。/顯示十位shi_18b20=temp%100/10。/顯示個位ge_18b20=temp%10。/顯示十分位if(flag_Negative_number> /負數if(bai_18b20=0> /十位為0,則不顯示十位write_lcd_(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>。elsewrite_lcd_(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 /正數if(bai_18b20=0> /十位為0,則不顯示十位write_lcd

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論