




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘 要 隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度采集系統(tǒng)在工業(yè)、農(nóng)業(yè)以及人們的日常生活扮演著一個越來越重要的角色,它對人們的生活具有很大影響,所以溫度采集系統(tǒng)的設(shè)計與研究有著十分重要的意義。通過系統(tǒng)的分析和總結(jié) ,得出溫室大氣溫度信號的采集傳感器件所需的測量程小,精確度不高,抗干擾性較強,經(jīng)濟性較好的結(jié)論。并以此為依據(jù),選用 DS18B20數(shù)字溫度傳感器為溫度采集器件,和單片機AT89C52進行了溫度采集系統(tǒng)的硬件和軟件設(shè)計,實現(xiàn)采集溫度信號的功能。并且,通過串行總線完成了采集系統(tǒng)與上位計算機的連接,實現(xiàn)了采集系統(tǒng)的網(wǎng)絡(luò)化監(jiān)控功能。關(guān)鍵詞: 溫度采集;DS18B20溫度傳感器;單片機AT89C52 I
2、I目 錄1 設(shè)計目的與設(shè)計內(nèi)容11.1 設(shè)計目的11.2 設(shè)計內(nèi)容12 DS18B20溫度傳感器和單片機AT89C52簡介12.1 DS18B20溫度傳感器12.1.1 DS18B20的工作原理12.1.2 DS18B20的使用方法22.2單片機AT89C5222.2.1 AT89C52簡介22.2.2 AT89C52結(jié)構(gòu)23系統(tǒng)硬件電路設(shè)計43.1 上電復(fù)位電路43.2 時鐘電路43.3數(shù)碼管顯示電路43.4 譯碼器53.5 AT89C52與DS18B20連接的Proteus電路原理63.6 電路總圖64 程序設(shè)計76 結(jié)論與體會147 參考文獻151 設(shè)計目的與設(shè)計內(nèi)容1.1 設(shè)計目的 溫
3、度采集在工業(yè)、農(nóng)業(yè)以及人們的日常生活中非常重要,通過串行總線完成了采集系統(tǒng)與上位計算機的連接,實現(xiàn)了采集系統(tǒng)的網(wǎng)絡(luò)化監(jiān)控功能,最終將會給我們帶來巨大的經(jīng)濟效益。1.2 設(shè)計內(nèi)容 本設(shè)計以單片機AT89C52為核心的溫度采集系統(tǒng),溫度信號有溫度芯片DS18B20采集,并以數(shù)字信號的方式傳送給單片機。單片機通過對信號進行相應(yīng)的處理,從而實現(xiàn)溫度采集的目的。2 DS18B20溫度傳感器和單片機AT89C52簡介2.1 DS18B20溫度傳感器2.1.1 DS18B20的工作原理DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s
4、 減為750ms。 DS18B20測溫原理如圖1-1所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振 隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在55所對應(yīng)的一個基數(shù)值。計數(shù)器1對 低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重 新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即 為所測溫度。圖1-1中的斜率累加器用于補償和修正測溫過
5、程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。 圖2-1DS18B20數(shù)字溫度傳感器內(nèi)部結(jié)構(gòu) 2.1.2 DS18B20的使用方法 由于DS18B20采用的是1Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對AT89S52單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方法來模擬單總線的協(xié)議時序來完成對DS18B20芯片的訪問。 由于DS18B20是在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時序要求。DS18B20有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主設(shè)備,單總
6、線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時序開始,如果要求單總線器件回送數(shù)據(jù),在進行寫命令后,主機需啟動讀時序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。 2.2單片機AT89C522.2.1 AT89C52簡介AT89C52是一個低電壓,高性能CMOS 8位單片機,片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元,AT89C52單片機在電子行業(yè)中有著廣泛的應(yīng)用。2.2.2
7、 AT89C52結(jié)構(gòu) AT89C52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中斷口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2 個讀寫口線,AT89C52可以按照常規(guī)方法進行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash存儲器可有效地降低開發(fā)成本。P0口:P0 口是一組8 位漏極開路型雙向I/O 口, 也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能吸收電流的方式驅(qū)動8 個TTL邏輯門電路,對端口P0 寫“1”時,可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8 位)
8、和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。P1口:P1 是一個帶內(nèi)部上拉電阻的8 位雙向I/O 口, P1 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(IIL)。P2口:P2 是一個帶有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 的輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對端口P2 寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一
9、個電流(IIL)。在訪問外部程序存儲器或16 位地數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR 指令)時,P2 口送出高8 位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRI 指令)時,P2 口輸出P2鎖存器的內(nèi)容。P3口: P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I/O 口。P3 口輸出緩沖級可驅(qū)動(吸收或輸出電流)4 個TTL 邏輯門電路。對P3 口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。此時,被外部拉低的P3 口將用上拉電阻輸出電流(IIL)。RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。 ALE/PROG:當(dāng)訪問外部程序存
10、儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ALE 仍以時鐘振蕩頻率的1/6 輸出固定的脈沖信號,因此它可對外輸出時鐘或用于定時目的。PSEN:程序儲存允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C52 由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器,將跳過兩次PSEN信號。EA/VPP:外部訪問允許。欲使CPU 僅訪問外部程序存儲器(地址為0000HFFFFH),EA 端必須保持低電平(接地)。XTAL1振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2振蕩器反
11、相放大器的輸出端。3系統(tǒng)硬件電路設(shè)計3.1 上電按鍵復(fù)位電路按下復(fù)位按鍵時,RST端產(chǎn)生高電平,使單片機復(fù)位,如圖3-1。圖3-1 上電復(fù)位電路復(fù)位后,其片內(nèi)各寄存器狀態(tài)改變,片內(nèi)RAM內(nèi)容不變。3.2 時鐘電路此處選用內(nèi)部時鐘方式。即利用其內(nèi)部的振蕩電路在XTAL1和XTAL2引線上外接定時組件,內(nèi)部振蕩電路產(chǎn)生自激振蕩。最常用的是在 XTAL1和XTAL2之間接晶體振蕩器與電路構(gòu)成穩(wěn)定的自激振蕩器,如圖3-2。圖3-2 時鐘電路 圖中晶振12M ,有兩個30pf的電容,構(gòu)成自激振蕩器3.3數(shù)碼管顯示電路本設(shè)計采用LED數(shù)碼管顯示電路,該顯示電路由8段共陽數(shù)碼管,限流電阻,三極管,基極電阻,
12、P0口,P2口等組成。P0口通過與電阻排與數(shù)碼管的8個數(shù)據(jù)位相連,送顯示數(shù)碼,如圖3-3:圖3-3 數(shù)碼管顯示電路圖 電阻即可起到限流作用,又可起到上拉電阻的作用。3.4 譯碼器譯碼器主要起到位選的作用,連接單片機的P2.2P2.4三個端口,如圖3-4:圖3-4 譯碼器電路 圖中采用的74HC138譯碼器進行位選。3.5 AT89C52與DS18B20連接的Proteus電路原理 AT89C52成Proteus電路需要與DS18B20連接,如圖3-5。圖3-5 AT89C52與DS18B20連接的Proteus電路原理 AT89C52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適
13、應(yīng)不同產(chǎn)品的需求。3.6 電路總圖電路最終呈現(xiàn)電路情況,如圖3-6。圖3-6 電路總圖電路每條線對應(yīng)的連接方式最終顯示。4 程序設(shè)計本設(shè)計的程序編寫主要是對DS18B20溫度傳感器的程序設(shè)計,下面主要對DS18B20的程序編寫進行說明。AT89C52單片機是此硬件電路設(shè)計的核心,和DS18B20的電路連接組成了溫度采集系統(tǒng),所需程序代碼如下:#include<reg52.h>#include"temp.h" /數(shù)碼管IO#define DIGP0sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;Unsigned char code D
14、IG_CODE10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char Num=0;unsigned int disp8=0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f;void LcdDisplay(int);void Timer0Configuration();void main() Timer0Configuration();while(1)LcdDisplay(Ds18b20ReadTemp();void LcdDisplay(int temp) /lcd顯示 unsigned
15、char datas = 0, 0, 0, 0, 0; /定義數(shù)組float tp; if(temp< 0)/當(dāng)溫度值為負(fù)數(shù) disp2 = 0x40;/讀取的溫度是實際溫度的補碼,所以減1,取反求出原碼temp=temp-1;temp=temp;tp=temp;temp=tp*0.0625*100+0.5;/留兩個小數(shù)點就*100,+0.5是四舍五入,因為C語言浮點數(shù)轉(zhuǎn)換為整型的時候把小數(shù)點/后面的數(shù)自動去掉,不管是否大于0.5,而+0.5之后大于0.5的就是進1了,小于0.5的就算有0.5,還是在小數(shù)點后面。 else disp2 = 0;tp=temp;/因為數(shù)據(jù)處理有小數(shù)點所以將
16、溫度賦給一個浮點型變量/如果溫度是正的那么,那么正數(shù)的原碼就是補碼它本身temp=tp*0.0625*100+0.5; disp0 = 0; disp1 = 0; disp3 = DIG_CODEtemp / 10000;disp4 = DIG_CODEtemp % 10000 / 1000;disp5 = DIG_CODEtemp % 1000 / 100 | 0x80;disp6 = DIG_CODEtemp % 100 / 10;disp7 = DIG_CODEtemp % 10;void Timer0Configuration()TMOD=0X02;/選擇為定時器模式,工作方式2,僅用
17、TRX打開啟動。TH0=0X9C;/給定時器賦初值,定時100usTL0=0X9C;ET0=1;/打開定時器0中斷允許EA=1;/打開總中斷TR0=1;/打開定時器void DigDisplay() interrupt 1TH0=0X9c;/給定時器賦初值,定時1ms TL0=0X00;DIG=0; /消隱switch(Num) /位選,選擇點亮的數(shù)碼管,case(7):LSA=0;LSB=0;LSC=0; break;case(6):LSA=1;LSB=0;LSC=0; break;case(5):LSA=0;LSB=1;LSC=0; break;case(4):LSA=1;LSB=1;LS
18、C=0; break;case(3):LSA=0;LSB=0;LSC=1; break;case(2):LSA=1;LSB=0;LSC=1; break;case(1):LSA=0;LSB=1;LSC=1; break;case(0):LSA=1;LSB=1;LSC=1; break;DIG=dispNum; /段選,選擇顯示的數(shù)字。Num+;if(Num>7)Num=0;以上是主程序,用到的函數(shù)有main,LcdDisplay(),Timer0Configuration(), DigDisplay() interrupt 1,作用分別是LCD顯示讀取到的溫度,設(shè)置計時器,中斷數(shù)碼管顯示
19、等。下面用Delay1ms作延時函數(shù),用Ds18b20Init作初始化,用Ds18b20WriteByte向18B20寫入一個字節(jié),用Ds18b20ReadByte來讀取一個字節(jié),用Ds18b20ChangTemp來讓18b20開始轉(zhuǎn)換溫度,用Ds18b20ReadTempCom來發(fā)送讀取溫度命令,用Ds18b20ReadTemp來讀取溫度。#include"temp.h"void Delay1ms(unsigned int y)unsigned int x;for(y;y>0;y-)for(x=110;x>0;x-);unsigned char Ds18b20
20、Init()unsigned int i; EA = 0;DSPORT=0; /將總線拉低480us960usi=70;while(i-); /延時642usDSPORT=1; /然后拉高總線,如果DS18B20做出反應(yīng)會將在15us后總線拉低i=0; EA = 1;while(DSPORT)/等待DS18B20拉低總線i+;if(i>5000) /等待>5MSreturn 0; /初始化失敗return 1;/初始化成功void Ds18b20WriteByte(unsigned char dat)unsigned int i,j; EA = 0;for(j=0;j<8;j
21、+)DSPORT=0;/每寫入一位數(shù)據(jù)之前先把總線拉低1usi+;DSPORT=dat&0x01; /然后寫入一個數(shù)據(jù),從最低位開始i=6;while(i-); /延時68us,持續(xù)時間最少60usDSPORT=1;/然后釋放總線,至少1us給總線恢復(fù)時間才能寫入第二個數(shù)值dat>>=1; EA = 1;unsigned char Ds18b20ReadByte()unsigned char byte,bi;unsigned int i,j; EA = 0;for(j=8;j>0;j-)DSPORT=0;/先將總線拉低1usi+;DSPORT=1;/然后釋放總線i+;
22、i+;/延時6us等待數(shù)據(jù)穩(wěn)定bi=DSPORT; /讀取數(shù)據(jù),從最低位開始讀取byte=(byte>>1)|(bi<<7); i=4;/讀取完之后等待48us再接著讀取下一個數(shù)while(i-); EA = 1;return byte;void Ds18b20ChangTemp()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc);/跳過ROM操作命令 Ds18b20WriteByte(0x44); /溫度轉(zhuǎn)換命令/Delay1ms(100);/等待轉(zhuǎn)換成功,而如果你是一直刷著的話,就不用這個延時 void Ds18b20
23、ReadTempCom()Ds18b20Init();Delay1ms(1);Ds18b20WriteByte(0xcc); /跳過ROM操作命令Ds18b20WriteByte(0xbe); /發(fā)送讀取溫度命令int Ds18b20ReadTemp()int temp=0;unsigned char tmh,tml;Ds18b20ChangTemp(); /先寫入轉(zhuǎn)換命令Ds18b20ReadTempCom();/然后等待轉(zhuǎn)換完后發(fā)送讀取溫度命令tml=Ds18b20ReadByte();/讀取溫度值共16位,先讀低字節(jié)tmh=Ds18b20ReadByte();/再讀高字節(jié)temp=tmh;temp<<=8;temp|=tml;return temp;5 調(diào)試與仿真本設(shè)計的程序編輯完成以后,通過keil編程軟件來調(diào)試,經(jīng)過多次的修改調(diào)試。軟件的仿真是用的Proteus ISIS,是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。將設(shè)計的電路圖連接好,將程序加入到AT89C52中,進行仿真,和多次的修改,最終得到預(yù)測的結(jié)果。正溫度仿真(100攝氏度)和負(fù)溫度仿真(零下200攝氏度)仿真電路完整圖如下: 圖5-1
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石棉行業(yè)智能化改造-深度研究
- 視覺敘事風(fēng)格演變-深度研究
- 跨文化溝通中的文化適應(yīng)研究-深度研究
- 資源均衡策略研究-深度研究
- YY/T 1930-2024醫(yī)療器械臨床評價術(shù)語和定義
- 天津渤海職業(yè)技術(shù)學(xué)院《地域文學(xué)與文化(I)》2023-2024學(xué)年第二學(xué)期期末試卷
- 賀州學(xué)院《環(huán)境管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 許昌職業(yè)技術(shù)學(xué)院《中小學(xué)音樂創(chuàng)新實踐活動》2023-2024學(xué)年第二學(xué)期期末試卷
- 杭州職業(yè)技術(shù)學(xué)院《模型制作與工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 新疆農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《行政案例研討》2023-2024學(xué)年第二學(xué)期期末試卷
- 《綠色建筑設(shè)計原理》課件
- 中醫(yī)館裝修合同范本
- 學(xué)習(xí)與科技的融合主題班會
- 《直播銷售》課件-項目一 認(rèn)識直播與直播銷售
- 2025年南京科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 2025-2030年中國航空配餐行業(yè)市場發(fā)展現(xiàn)狀及投資前景規(guī)劃研究報告
- 新課標(biāo)背景下的跨學(xué)科學(xué)習(xí)內(nèi)涵、設(shè)置邏輯與實踐原則
- 母嬰分離產(chǎn)婦的護理
- 2025年全國高考體育單招政治時事填空練習(xí)50題(含答案)
- 2025教科版一年級科學(xué)下冊教學(xué)計劃
- 2024解析:第六章質(zhì)量和密度-講核心(解析版)
評論
0/150
提交評論