




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、 考試序列號_ 單片機課程設(shè)計論文 論文題目:溫度采集顯示系統(tǒng) 課程名稱: 單片機課程設(shè)計 學(xué) 院 物理與光電工程學(xué)院 專業(yè)班級 08電子3班 學(xué) 號 3108009223 姓 名 梁輝浩 聯(lián)系方式 任課教師 20 年 月 日溫度采集顯示系統(tǒng)一、功能和要求:(1) 溫度測量范圍 0 - 99。(2) 溫度分辨率±1。(3) 選擇合適的溫度傳感器。(4) 使用鍵盤輸入溫度的最高點和最低點,溫度超出范圍時候報警。(報警溫度不需要保存)二、系統(tǒng)方案: 方案一:由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件利用其感溫效應(yīng),在將隨被測溫度變化的電壓或電流采集過來,進行A/D轉(zhuǎn)換后,就可以用單
2、片機進行數(shù)據(jù)的處理,在顯示電路上,就可以將被測溫度顯示出來,這種設(shè)計需要用到A/D轉(zhuǎn)換電路,感溫電路比較麻煩。方案二:進而考慮到用溫度傳感器,在單片機電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉(zhuǎn)換,就可以滿足設(shè)計要求。從以上兩種方案,很容易看出,采用方案二,電路比較簡單,軟件設(shè)計也比較簡單,故采用了方案二。三、核心元件的功能1、AT89C51AT89S51美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS 8位單片機,片內(nèi)含4K BytesISP(In-system programmable)的可反
3、復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及AT89C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元。單片機AT89S51強大的功能可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89C51芯片的引腳結(jié)構(gòu)如圖1所示: 1.1功能特性概括: AT89S51提供以下標(biāo)準(zhǔn)功能:40個引腳、4K Bytes Flash片內(nèi)程序存儲器、128 Bytes的隨機存取數(shù)據(jù)存儲器(RAM)、32個外部雙向輸入/輸出(I/O)口、5個中斷優(yōu)先級2層中斷嵌套中斷、2個數(shù)據(jù)指針、2個16位可編 圖1
4、程定時/計數(shù)器、2個全雙工串行通信口、看門狗(WDT)電路、片內(nèi)振蕩器及時鐘電路。此外,AT89S51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式,空閑模式,CPU暫停工作,而RAM、定時/計數(shù)器、串行通信口、外中斷系統(tǒng)可繼續(xù)工作。掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求1.2管腳說明:P0口:P0口為一個8位漏級開路雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,能驅(qū)動8個TTL邏輯門電路。對端口寫“1”時,被定義為高阻輸入。在訪問外部數(shù)據(jù)存儲器或程
5、序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。在Flash編程和程序校驗期間,P1接收低8位地址。部分端口還有第二功能,如表1所示: 端口引腳 第二功能 P1.5 MOSI(用于ISP編程) P
6、1.6 MISO(用于ISP編程) P1.7SCK(用于ISP編程) 表1 P1口部分引腳第二功能P2口:P2口是一個帶有內(nèi)部上拉電阻的8位雙向I/O口, P2口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流(I)。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)寄存器(例如執(zhí)行MOVXRi指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄
7、存器的內(nèi)容),在整個訪問期間不改變。在Flash編程或校驗時,P2亦接收高位地址和其它控制信號。P3口: P3口是一個帶有內(nèi)部上拉電阻的雙向8位I/O口, P3口的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫“1”時,它們被內(nèi)部的上拉電阻拉高并可作為輸入端口。作輸入口使用時,被外部信號拉低的P3口將用上拉電阻輸出電流(I)。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,如表2所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。端口引腳第二功能P3.0RXD (串行輸入口)P3.1TXD (串行輸出口)P3.2 (外中斷0)P3.3 (外
8、中斷1)P3.4 T0 (定時/計數(shù)器0)P3.5 T1 (定時/計數(shù)器1)P3.6 (外部數(shù)據(jù)存儲器寫選通)P3.7 (外部數(shù)據(jù)存儲器讀選通) 表2 P3口引腳第二功能RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上的高電平時間將使單片機復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。 DISRTO位缺省為RESET輸出高電平打開狀態(tài)。 ALE/:當(dāng)訪問外部存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部寄存器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對
9、外輸出時鐘或用于定時目的。值得注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只要一條MOVX和MOVC指令才會激活A(yù)LE。此外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。:程序存儲允許()輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器時,沒有兩次有效的信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部
10、程序存儲器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端保持高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程期間,該引腳用于施加+12V編程電壓(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入端。XTAL2:反向振蕩放大器器的輸出端。2、DS18B20美國Dallas半導(dǎo)體公司的數(shù)字化溫度傳感器DS1820是世界上第一片支持 "一線總線"接口的溫度傳感器,在其內(nèi)部使用了在板(ON-B0ARD)專利技術(shù)。全部傳感元件及轉(zhuǎn)換電路集成在形如
11、一只三極管的集成電路內(nèi)。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念?,F(xiàn)在,新一代的DS18B20體積更小、更經(jīng)濟、更靈活。使你可以充分發(fā)揮“一線總線”的優(yōu)點。新的"一線器件"DS18B20體積更小、適用電壓更寬、更經(jīng)濟。DS18B20可以程序設(shè)定912位的分辨率,精度為±0.5°C??蛇x更小的封裝方式,更寬的電壓適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EEPROM中,掉電后依然保存。DS18B20的性能是新一代產(chǎn)品中最好的!性能價格比也非常出色! 繼"一線總線"的早期產(chǎn)品后,DS18
12、20開辟了溫度傳感器技術(shù)的新概念。DS18B20使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng)濟的測溫系統(tǒng)。 DS18B20也支持"一線總線"接口,測量溫度范圍為-55°C+125°C,在-10+85°C范圍內(nèi),精度為±0.5°C?,F(xiàn)場溫度直接以"一線總線"的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費電子產(chǎn)品等。與前一代產(chǎn)品不同,新的產(chǎn)品支持3.0V5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。2
13、.1 DS18B20的主要特性(1)適應(yīng)電壓范圍更寬,電壓范圍:3.05.5V,在寄生電源方式下可由數(shù)據(jù)線供電(2)獨特的單線接口方式,DS18B20在與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與DS18B20的雙向通訊(3)DS18B20支持多點組網(wǎng)功能,多個DS18B20可以并聯(lián)在唯一的三線上,實現(xiàn)組網(wǎng)多點測溫(4)DS18B20在使用中不需要任何外圍元件,全部傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路內(nèi)(5)溫范圍55125,在-10+85時精度為±0.5(6)可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實現(xiàn)高精度測溫
14、 (7)在9位分辨率時最多在93.75ms內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12位分辨率時最多在750ms內(nèi)把溫度值轉(zhuǎn)換為數(shù)字,速度更快 (8)測量結(jié)果直接輸出數(shù)字溫度信號,以"一線總線"串行傳送給CPU,同時可傳送CRC校驗碼,具有極強的抗干擾糾錯能力 (9)負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀,但不能正常工作。2.2 DS18B20的內(nèi)部結(jié)構(gòu)DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20引腳定義: (1) GND為電源地; (2) DQ為數(shù)字信號輸入/輸出端; (3) VDD為外接供電電源輸
15、入端(在寄生電源接線方式時接地)2.3 DS18B20工作原理DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖3所示。圖中低溫度系數(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重新開始對
16、低溫度系數(shù)晶振產(chǎn)生的脈沖信號進行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖3中的斜率累加器用于補償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。2.4 DS1820使用中注意事項DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但在實際應(yīng)用中也應(yīng)注意以下幾方面的問題:1) 較小的硬件開銷需要相對復(fù)雜的軟件進行補償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否則將無法讀取測溫結(jié)果。在使用PL/M、C等高級語言進行系統(tǒng)程序設(shè)計時,對DS18
17、20操作部分最好采用匯編語言實現(xiàn)。2) 在DS1820的有關(guān)資料中均未提及單總線上所掛DS1820數(shù)量問題,容易使人誤認(rèn)為可以掛任意多個DS1820,在實際應(yīng)用中并非如此。當(dāng)單總線上所掛DS1820超過8個時,就需要解決微處理器的總線驅(qū)動問題,這一點在進行多點測溫系統(tǒng)設(shè)計時要加以注意。3) 連接DS1820的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜時,正常通訊距離可達(dá)150m,當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時,正常通訊距離進一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變造成的。因此,在
18、用DS1820進行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容和阻抗匹配問題。4) 在DS1820測溫程序設(shè)計中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS1820的返回信號,一旦某個DS1820接觸不好或斷線,當(dāng)程序讀該DS1820時,將沒有返回信號,程序進入死循環(huán)。這一點在進行DS1820硬件連接和軟件設(shè)計時也要給予一定的重視。測溫電纜線建議采用屏蔽4芯雙絞線,其中一對線接地線與信號線,另一組接VCC和地線,屏蔽層在源端單點接四、理論分析與計算系統(tǒng)程序主要包括主程序,讀出溫度子程序,溫度轉(zhuǎn)換命令子程序,計算溫度子程序,顯示數(shù)據(jù)刷新子程序等。4.1主程序流程圖主程序的主要功能是負(fù)責(zé)溫度
19、的實時顯示、讀出并處理DS18B20的測量的當(dāng)前溫度值,溫度測量每1s進行一次。這樣可以在一秒之內(nèi)測量一次被測溫度,其程序流程見圖8所示。圖8 程序流程圖4.2讀出溫度子程序流程圖讀出溫度子程序的主要功能是讀出RAM中的9字節(jié),在讀出時需進行CRC校驗,驗有錯時不進行溫度數(shù)據(jù)的改寫。其程序流程圖如圖9所示4.3溫度轉(zhuǎn)換命令子程序流程圖溫度轉(zhuǎn)換命令子程序主要是發(fā)溫度轉(zhuǎn)換開始命令,當(dāng)采用12位分辨率時轉(zhuǎn)換時間約為750ms,在本程序設(shè)計中采用1s顯示程序延時法等待轉(zhuǎn)換的完成。溫度轉(zhuǎn)換命令子程序流程圖如上圖,圖9所示計算溫度子程序?qū)AM中讀取值進行BCD碼的轉(zhuǎn)換運算,并進行溫度值正負(fù)的判定,其程序
20、流程圖如圖10所示。五、電路與程序設(shè)計5.1、電路圖5.2、程序#include<reg52.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int bit DS18B20_IS_OK=1; sbit DQ=P14; sbit BEEP=P12; sbit TEST=P17; sbit jian_di=P15; sbit jia_gao=P16; /數(shù)碼管位選 sbit ge=P10; sbit shi=P11; / 設(shè)置報警高低溫時的按鍵次數(shù) int key_counts
21、=0; /正常讀取DS18B20的處理溫度 uchar T; /數(shù)碼管顯示程序,0-空顯示的段碼,低電平顯示 uchar duan17=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /暫存DS18B20的初始溫度值 uchar Temp_Value2=0x00,0x00; /平常溫度段緩存 uchar duan_hc2=0x00,0x00;/設(shè)置報警溫度時的段緩存 uchar counts_hc2=0x00,0x00; /報警低(20)、高(70)溫度 uchar Al
22、arm_Temp2=0x14,0x46; /DS18B20_延遲void Delay(int x)while(x-);/延遲一秒 void Delay_ms(int i) uchar t;while(i-)for(t=0;t<180;t+); /初始化DS18B20uchar Init_DS18B20() uchar status; DQ=1;Delay(8); DQ=0;Delay(90); DQ=1;Delay(8); status=DQ; Delay(100); DQ=1; return status;/成功時返回值為0/讀一個字節(jié)uchar ReadOneByte()uchar
23、i,dat=0;DQ=1;_nop_();for(i=0;i<8;i+)DQ=0;dat>>=1;DQ=1;_nop_();_nop_();if(DQ) dat|=0x80;Delay(30);DQ=1;return dat;/寫一個字節(jié)void WriteOneByte(uchar dat)uchar i;for(i=0;i<8;i+)DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1; /沒設(shè)置報警高低溫平常溫度顯示 void Show() uchar j;T=(Temp_Value0&0xF0)>>
24、4)|(Temp_Value1&0x07)<<4);duan_hc1=T%100/10;duan_hc0=T%10;for(j=0;j<24;j+)P0=duanduan_hc0;ge=1;shi=0;Delay(150);P0=0XFF;P0=duanduan_hc1; ge=0;shi=1;Delay(150); P0=0XFF; /讀取DS18B20的實時溫度值void Read_Temperature() uchar j;if(Init_DS18B20()=1) DS18B20_IS_OK=0;elseWriteOneByte(0xCC);WriteOneBy
25、te(0x44);Init_DS18B20();WriteOneByte(0xCC);WriteOneByte(0xBE);Temp_Value0=ReadOneByte();Temp_Value1=ReadOneByte();DS18B20_IS_OK=1; Show();/設(shè)置報警高低溫度時的溫度顯示 void Show_Temperature() uchar j; counts_hc1=key_counts%100/10; counts_hc0=key_counts%10; for(j=0;j<24;j+)P0=duancounts_hc0;ge=1;shi=0;Delay(150
26、);P0=0XFF;P0=duancounts_hc1; ge=0;shi=1;Delay(150); P0=0XFF; /設(shè)置報警高低溫 void gao_di() uchar key;P3=0xFF;key=0xFF;key=P3;Show_Temperature();if(key!=0xFF) Show_Temperature(); if(key!=0xFF) switch (key)case 0xFD:if(key_counts<99)key_counts+;break;case 0xFB:if(key_counts<99)Alarm_Temp1=key_counts;jia_gao=1;break;case 0xF7:if(key_counts<99)key_counts-;break;case 0xEF:if(key_counts<99)Alarm_Temp0=key_counts;jian_di=1;break; /報警 void Alarm() if(Alarm_Temp0>=T)|(T>=Alarm_Temp1) BEEP=0;TEST=1;else BEEP=1;TEST=0; void main() wh
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)課件變聲
- 畫眉毛培訓(xùn)課件
- 技能培訓(xùn)課件設(shè)計
- 我和我的祖國演講稿4
- 小議文物題目大全及答案
- 小學(xué)消防班會題目及答案
- 英語培訓(xùn)課件轉(zhuǎn)讓
- 課外閱讀在小學(xué)語文作文教學(xué)中的重要性解析
- 2024年岳陽市市直事業(yè)單位招聘考試真題
- 西方經(jīng)濟學(xué)網(wǎng)上作業(yè)
- 日間化療服務(wù)管理制度
- 暑假散學(xué)典禮課件小學(xué)生
- 2025年新高考1卷(新課標(biāo)Ⅰ卷)英語試卷
- 部編版七年級語文下冊第4單元試題及答案
- GB 18613-2020電動機能效限定值及能效等級
- 創(chuàng)業(yè)園入駐和退出管理辦法
- 市委辦招考人員筆試試題
- 贛州市贛縣縣鄉(xiāng)鎮(zhèn)街道社區(qū)行政村統(tǒng)計表
- 《苯的同系物》名師教案
- 《寡人之于國也》課件
- 小兒靜脈留置針穿刺技巧與護理培訓(xùn)課件
評論
0/150
提交評論