版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、傳感器課程設(shè)計與制作說明書設(shè)計題目:DS18B20數(shù)字溫度計的設(shè)計專業(yè)班級:*組員:-*組員:*組員:*指導(dǎo)教師:_*2012年 11月20日、設(shè)計方案較方案一:由于本設(shè)計是測溫電路,可以使用熱敏電阻之類的器件,將隨被測溫度 變化的電壓或電流采樣,進(jìn)行 A/D轉(zhuǎn)換后就可以用單片機進(jìn)行數(shù)據(jù)處理,實現(xiàn)溫度顯示。這種設(shè)計需要用到 A/D轉(zhuǎn)換電路,增大了電路的復(fù)雜性,而且要做到高精度也比 較困難。方案二:考慮到在單片機屬于數(shù)字系統(tǒng),容易想到數(shù)字溫度傳感器,可選用 DS18B20數(shù)字溫度傳感器,此傳感器為單總線數(shù)字溫度傳感器,起體積小、構(gòu)成的系 統(tǒng)結(jié)構(gòu)簡單,它可直接將溫度轉(zhuǎn)化成串行數(shù)字信號給單片機處理,
2、即可實現(xiàn)溫度顯示。另外DS18B20具有3引腳的小體積封裝,測溫范圍為-55+125攝氏度,測溫分辨率可 達(dá)0.0625攝氏度,其測量范圍與精度都能符合設(shè)計要求。以上兩種方案相比較,第二種方案的電路、軟件設(shè)計更簡單,此方案設(shè)計的系統(tǒng) 在功耗、測量精度、范圍等方面都能很好地達(dá)到要求,故本設(shè)計采用方案二。二、設(shè)計原理2.1.1芯片介紹AT89C51是一種低電壓、高性能 CMOS 8&微處理器,它自帶4K字節(jié)閃存可編 程可擦除只讀存儲器( FPEROMFIash Programmable and Erasable Read On ly Memory,俗稱單片機。單片機的可擦除只讀存儲器可以反復(fù)擦除1
3、000次。該器件采用ATMEI高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃存存儲器組合在單個芯片中,ATMEL的AT89C52是一種高效微控制器。AT89C系列單HZPlPU. 3/(3* 卩止電哪、心下PU.卜。汕一叮!山小V.壯4仙;2P2. 3八門“2八3P2” 0/i.Aa) |J片機為很多供了一種靈案。它的部嵌入式控制系統(tǒng)提活性高且價廉的方分引腳功能介紹如AT89C52單片機的外形及引腳排列如上圖:2.1.2 DS18B20 簡介DALLAS最新單線數(shù)字溫度傳感器 DS18B2C簡介新的“一線器件”體積更小、適用 電壓更寬
4、、更經(jīng)濟Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 DS182C是世界上第一片支 持“一線總線”接口的溫度傳感器。一線總線獨特而且經(jīng)濟的特點,使用戶可輕松地 組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。DS18B2C DS1822 “一線總線”數(shù)字化溫度傳感器 同DS182C一樣,DS18B2C也支持“一線總線”接口,測量溫度范 圍為-55 C+125 C,在-10+85 C范圍內(nèi),精度為土 0.5 C。DS1822的精度較差為 2 C?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,大大提高了系統(tǒng)的抗干擾 性。適合于惡劣環(huán)境的現(xiàn)場溫度測量,如:環(huán)境控制、設(shè)備或過程控制、測溫類消費 電子產(chǎn)品等。與
5、前一代產(chǎn)品不同,新的產(chǎn)品支持3V5.5V的電壓范圍,使系統(tǒng)設(shè)計更靈活、方便。而且新一代產(chǎn)品更便宜,體積更小。DS18B20 DS1822的特性DS18B20 可以程序設(shè)定912位的分辨率,精度為土 0.5 Co可選更小的封裝方式,更寬的電壓 適用范圍。分辨率設(shè)定,及用戶設(shè)定的報警溫度存儲在EEPRO中,掉電后依然保存。DS18B20勺性能是新一代產(chǎn)品中最好的!性能價格比也非常出色! DS1822與DS18B20 軟件兼容,是DS18B20的簡化版本。省略了存儲用戶定義報警溫度、分辨率參數(shù)的 EEPRQM精度降低為土 2 C,適用于對性能要求不高,成本控制嚴(yán)格的應(yīng)用,是經(jīng)濟 型產(chǎn)品。繼“一線總線
6、”的早期產(chǎn)品后,DS1820開辟了溫度傳感器技術(shù)的新概念。 DS18B20和DS1822使電壓、特性及封裝有更多的選擇,讓我們可以構(gòu)建適合自己的經(jīng) 濟的測溫系統(tǒng)。DS18B2C中的溫度傳感器對溫度的測量DS18B20中的溫度傳感器可完成對溫度的測量,以12位轉(zhuǎn)化為例:用16位符號擴展的二進(jìn)制補碼讀數(shù)形式提供,以 0.0625 C/LSB形式表達(dá),其中S為符號位。tjll?bill 6kt 5bat 4bit Jht 2bit ibiiO才護(hù)11 T 12*1一2于1屮bdt 15Ul 14M 13fail E2bii 11bdaMS BvtcSSsSs24這是12位轉(zhuǎn)化后得到的12位數(shù)據(jù),存儲
7、在18B20的兩個8比特的RAM中,二進(jìn)制中的前面5位是符號位,如果測得的溫度大于0,這5位為0,只要將測到的數(shù)值乘于0.0625即可得到實際溫度;如果溫度小于 0,這5位為1測到的數(shù)值需要取反加 1再乘于0.0625即可得到實際溫度。DS18B20的內(nèi)部結(jié)構(gòu)I 0-2(OS I so 201DS18B20內(nèi)部結(jié)構(gòu)主要由四部分組成:64位光刻ROM溫度傳感器、非揮發(fā)的溫度報 警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如下:DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地)1)64 位的 ROM光刻ROM中的64位序列號是出廠前被光刻
8、好的,它可以看作是該DS18B20勺地址 序列碼。64位光刻ROM勺排列是:開始8位(28H)是產(chǎn)品類型標(biāo)號,接著的48位是 該DS18B2C自身的序列號,最后8位是前面56位的循環(huán)冗余校驗碼(CRC=X8+X5+X4+1 光刻ROM勺作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多 個DS18B20勺目的。2)DS18B20溫度傳感器的存儲器DS18B2C溫度傳感器的內(nèi)部存儲器包括一個高速暫存 RAM和一個非易失性的可電 擦除的E2RAM后者存放高溫度和低溫度觸發(fā)器 TH TL和結(jié)構(gòu)寄存器。暫存存儲器包含了 8個連續(xù)字節(jié),前兩個字節(jié)是測得的溫度信息,第一個字節(jié)的 內(nèi)容是
9、溫度的低八位,第二個字節(jié)是溫度的高八位。第三個和第四個字節(jié)是TH TL的易失性拷貝,第五個字節(jié)是結(jié)構(gòu)寄存器的易失性拷貝,這三個字節(jié)的內(nèi)容在每一次 上電復(fù)位時被刷新。第六、七、八個字節(jié)用于內(nèi)部計算。第九個字節(jié)是冗余檢驗字節(jié)。表1 DSW20暫存寄存器分布寄存器內(nèi)秤字節(jié)地坍溫度竝低數(shù)字位012低溫限偵3斗保留5H愍審余值6鑄窿計救值7CRC栓臉8DS18B20的時序由于DS18B2C采用的是單總線協(xié)議方式,即在一根數(shù)據(jù)線實現(xiàn)數(shù)據(jù)的雙向傳輸,而對89C51單片機來說,硬件上并不支持單總線協(xié)議,因此,我們必須采用軟件的方 法來模擬單總線的協(xié)議時序來完成對 DS18B2C芯片的訪問。由于DS18B2C是
10、在一根I/O線上讀寫數(shù)據(jù),因此,對讀寫的數(shù)據(jù)位有著嚴(yán)格的時 序要求。DS18B2C有嚴(yán)格的通信協(xié)議來保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議 定義了幾種信號的時序:初始化時序、讀時序、寫時序。所有時序都是將主機作為主 設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機主動啟動寫時 序開始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫命令后,主機需啟動讀時序完成數(shù) 據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。DS18B20的復(fù)位時序VTOGND主機發(fā)出罠位脈沖討1最?。╢i,15s最大值$ 960usDS18B20的覆位時r冋應(yīng)答關(guān)沖存 t,:J WuS主機接收厲斎舷時閶VD518E20 發(fā)出屮
11、fDS18B20的讀時序?qū)τ贒S18B20勺讀時序分為讀0時序和讀1時序兩個過程。對于 DS18B20勺讀時 隙是從主機把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20E數(shù)據(jù)傳 輸?shù)絾慰偩€上。DS18B20在完成一個讀時序過程,至少需要 60us才能完成。DS18B20的寫時序?qū)τ贒S18B20勺寫時序仍然分為寫0時序和寫1時序兩個過程。對于DS18B2C寫0 時序和寫1時序的要求不同,當(dāng)要寫0時序時,單總線要被拉低至少60us,保證DS18B20 能夠在15us到45us之間能夠正確地采樣10總線上的“ 0”電平,當(dāng)要寫1時序時,單總線被拉低之后,在15us之內(nèi)就得釋放單總線
12、。主CPU刑E厝4 血主CPU ? 1 IfDS1820使用中注意事項DS1820雖然具有測溫系統(tǒng)簡單、測溫精度高、連接方便、占用口線少等優(yōu)點,但 在實際應(yīng)用中也應(yīng)注意以下幾方面的問題:1)較小的硬件開銷需要相對復(fù)雜的軟件進(jìn)行補償,由于DS1820與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS1820進(jìn)行讀寫編程時,必須嚴(yán)格的保證讀寫時序,否 則將無法讀取測溫結(jié)果。在使用 PL/M、C等高級語言進(jìn)行系統(tǒng)程序設(shè)計時,對 DS1820操作部分最好采用匯編語言實現(xiàn)。2)在DS1820勺有關(guān)資料中均未提及單總線上所掛 DS1820數(shù)量問題,容易使人誤認(rèn) 為可以掛任意多個DS1820在實際應(yīng)用中并非如此。
13、當(dāng)單總線上所掛DS1820超過 8個時,就需要解決微處理器的總線驅(qū)動問題, 這一點在進(jìn)行多點測溫系統(tǒng)設(shè)計時 要加以注意。3)連接DS1820的總線電纜是有長度限制的。試驗中,當(dāng)采用普通信號電纜傳輸長度 超過50m時,讀取的測溫數(shù)據(jù)將發(fā)生錯誤。當(dāng)將總線電纜改為雙絞線帶屏蔽電纜 時,正常通訊距離可達(dá)150m當(dāng)采用每米絞合次數(shù)更多的雙絞線帶屏蔽電纜時, 正常通訊距離進(jìn)一步加長。這種情況主要是由總線分布電容使信號波形產(chǎn)生畸變 造成的。因此,在用DS1820進(jìn)行長距離測溫系統(tǒng)設(shè)計時要充分考慮總線分布電容 和阻抗匹配問題。4)在DS1820測溫程序設(shè)計中,向DS1820發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS
14、1820 的返回信號,一旦某個 DS1820接觸不好或斷線,當(dāng)程序讀該 DS1820時,將沒有 返回信號,程序進(jìn)入死循環(huán)。這一點在進(jìn)行DS1820硬件連接和軟件設(shè)計時也要給予一定的重視。2. 1.3 LED顯示模塊本課題的LED顯示模塊是由一個四聯(lián)共陰七段數(shù)碼管組成。七段數(shù)碼管是由若干發(fā)光二極管組合而成的,一般的“8”字形顯示塊由“ a、b、c、d、e、f、g、h”8發(fā)光二極管組成。四個七段數(shù)碼管分別與P0 口相連,通過對單片機輸入程序達(dá)到控制顯 示輸出的目的。四個七段數(shù)碼管由單片機的 P1.0P1.3控制亮滅,P1.0P1.3分別對應(yīng)S1S3,當(dāng) P1.0P1.3其中之一置低電平,對應(yīng)的三級
15、管導(dǎo)通,段碼管亮,置高電平,對應(yīng)的三 級管截止,段碼管滅。2.2.1系統(tǒng)框架設(shè)計如下圖所示:溫度測量模塊我們采用DS18B201.下圖為溫度測量的原理圖:222控制器模塊本課題的控制器模塊式采用 AT89C5仲片機作為MCU如圖AT89C51 AT89C51的P0.0P0.7作為四聯(lián)七段數(shù)碼管總線;P1.0P1.3控制四個七段數(shù)碼管的亮滅。實物圖2J taI.B8曲口r g溫上J: d231 .程序的調(diào)試#i nclude#i ncludevi ntri ns.h_nop_();延時函數(shù)用#defi ne aP0段碼輸出口#defi ne ucharun sig ned char#defi n
16、e uint un sig ned intsbit DQ=P3A2;/溫度輸入口sbit s0=P1A0;數(shù)碼管1sbit s仁 P1A1;/數(shù)碼管2sbit s2=PM2;數(shù)碼管3sbit s3=P1A3;/數(shù)碼管4int temp1=0;uint h;顯示當(dāng)前溫度和設(shè)置溫度的標(biāo)志位為 0時顯示當(dāng)前溫度uint temp;uchar r;uchar high=35,low=20;溫度小數(shù)部分用查表法 */codeUcharditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08, 0x09,0x
17、09; /小數(shù)斷碼表uchar code table_a12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40;/共陰 LED 段碼表 0 1 2 3 4 5 6 7 8 9 不亮 -uchar table_a1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; / 個位帶小數(shù)點的 斷碼表uchar data temp_data2=0x00,0x00; / 讀出溫度暫放uchar data display5=0x00,0x00,0x00,0x00,0x00;/顯示單元數(shù)據(jù),
18、共 4 個數(shù)據(jù)和一個運算暫用11us延時函數(shù)void delay(uint t) for( ;t0;t-); void scan()int j ;for(j=0;j0;i-)/從高拉倒低/最低位移出DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_(); /5usDQ=val&0x01;delay(6); /66us val=val/2; / 右移 1 位 DQ=1;delay(1);DS18B20讀 1 字節(jié)函數(shù)*/ 1 從總線上取 個字節(jié) uchar read_byte(void)uchar i;uchar value=0;for
19、(i=8;i0;i-)DQ=1;_nop_();_nop_();value=1;/4us/4us/66usDQ=0;_nop_();_nop_();_nop_();_nop_();DQ=1;_nop_();_nop_();_nop_();_nop_(); if(DQ)value|=0x80;delay(6);DQ=1; return(value);*/read_temp()ow_reset();delay(200);write_byte(0xcc);write_byte(0x44);ow_reset();delay(1);write_byte(0xcc);write_byte(0xbe);te
20、mp_data0=read_byte(); temp_data1=read_byte(); temp=temp_data1; temp6348)tem=65536-tem;n=1;display4=tem&0x0f;/ 取小數(shù)部分的值display0=ditabdisplay4;display4=tem4; display3=display4/100; display1=display4%100; display2=display1/10; display1=display1%10;/ 存入小數(shù)部分顯示值/ 取中間八位 ,即整數(shù)部分的值/ 取百位數(shù)據(jù)暫存/ 取后兩位數(shù)據(jù)暫存/ 取十位數(shù)據(jù)暫存/
21、個位數(shù)據(jù)r=display1+display2*10+display3*100;/ 正負(fù)顯示判斷 / if(!display3) display3=0x0a; if(!display2)display2=0x0a; if(n)display3=0x0b;/ 最高位為 0 時不顯示/次高位為 0 時不顯示/負(fù)溫度時最高位顯示 -設(shè)置溫度顯示轉(zhuǎn)換 */void xs(int horl)int n=0;if(horl128) horl=256-horl;n=1; display3=horl/100; display3=display3&0x0f; display2=horl%100/10;displ
22、ay1=horl%10;display0=0;if(!display3)display3=0x0a;/ 最高位為 0 時不顯示if(!display2)display2=0x0a;/次高位為 0 時不顯示if(n)display3=0x0b;/ 負(fù)溫度時最高位顯示 -主函數(shù) */void main()a=0x00;s0=0;s1=0;s2=0;s3=0;for(h=0;h4;h+) displayh=0; ow_reset(); write_byte(0xcc);/初始化端口/開機顯示 0000/開機先轉(zhuǎn)換一次/SkipROM/SkipROMwrite_byte(0x44);/ 發(fā)轉(zhuǎn)換命令for(h=0;h100;h+)/開機顯示 0000scan();while(1)if(temp1=0)work_temp(read_temp();/處理溫度數(shù)據(jù)scan();/顯示溫度值結(jié)束三、調(diào)試小結(jié)3.1 系統(tǒng)的調(diào)試1. 使用專業(yè)軟件進(jìn)行電路圖的繪制2. 在繪圖完成后,根據(jù)繪制的電路圖進(jìn)行軟件的設(shè)計和開發(fā)3. 在專業(yè)軟件中進(jìn)行軟件的仿真測試4. 在 51 單片機電路板上進(jìn)行上電操作,并針對不完善的地方進(jìn)行修改和微調(diào)。系統(tǒng)的性能調(diào)試以主程序為主。硬件調(diào)試比較簡單。
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建師范大學(xué)《管理學(xué)概論》2021-2022學(xué)年第一學(xué)期期末試卷
- 福建師范大學(xué)《地圖學(xué)實驗》2021-2022學(xué)年第一學(xué)期期末試卷
- 四川省成都市2020年中考英語真題(含答案)
- 2024秋國家開放大學(xué)《思想道德與法制》專題測驗1-7答案
- 油田制度流程類 油田動火作業(yè)安全管理實施細(xì)則(陸上石油天然氣開采)
- 班級常規(guī)調(diào)研活動分析
- 檔案行政執(zhí)法人員統(tǒng)計表
- 感恩教育課件教學(xué)課件
- 2024年四川客運從業(yè)資格證實操考試需要準(zhǔn)備什么
- 2024年合肥客車駕駛員考試試題
- 新《固廢法》解讀(專業(yè)版)
- 領(lǐng)導(dǎo)及上下級關(guān)系處理講義
- Catia百格線生成宏
- 業(yè)務(wù)流程繪制方法IDEF和IDEFPPT課件
- 鍋爐安全基礎(chǔ)知識
- 幼兒園科學(xué)教育論文范文
- 駕校質(zhì)量信譽考核制度
- 用電檢查工作流程圖
- 電動葫蘆的設(shè)計計算電動起重機械畢業(yè)設(shè)計論文
- (完整版)學(xué)校安辦主任安全工作職責(zé)
- PCR儀使用手冊
評論
0/150
提交評論