




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數字測溫儀的設計摘 要在日常生活及農業生產中,經常要用到溫度的檢測及控制,由此可見單片機在我們的生活中扮演十分重要的角色,讓我們認識到單片機已經深入各個領域。我們通過課程設計不僅能夠加強自己動手操作能力和培養技術能力,而且加深對打片機的認識增加自己知識面和激發對單片機的學習熱情以及對科學知識的探索。本次設計的內容是基于單片機學習板的數字測溫儀設計,采用溫度傳感器ds18b20作為環境溫度檢測元件,其中主控器為stc89c52rc、顯示電路是經d8255ac-2擴展連接數碼管,再由蜂鳴器作為溫度報警部分。溫度傳感器檢測到環境溫度進行轉換保存高速緩存ram中,主控器在發出命令后在讀取數據進行處理,
2、再輸出數據到顯示部分控制其顯示的具體溫度值。關鍵詞:stc89c52rc;ds18b20;d8255;主控制器;溫度傳感器;1目 錄設計要求錯誤!未定義書簽。1 方案論證與對比錯誤!未定義書簽。1.1 方案一錯誤!未定義書簽。1.2 方案二11.3 設計方案對比與選擇22 系統電路的設計22.1 主控制器22.2 顯示電路22.3 溫度傳感器23 系統程序的設計73.1 主程序73.2 溫度程序73.3 顯示程序84 系統調試及性能分析115 儀器件清單錯誤!未定義書簽。6 總結與體會錯誤!未定義書簽。參考文獻14附錄一:詳細系統源程序14設計要求本課題以單片機為核心,設計并制作出一臺數字測溫
3、儀,具有以下功能:1、單點溫度測試;2、測溫范圍: 040;3、分辨率:01;4、溫度輸出顯示:2 位;5、設定上下限,超出范圍時報警。1 方案論證與對比1.1 方案一采用標準at89c52單片機作為控制器;顯示倒計時顯示采用2位led數碼管;東西方向、南北方向通行指示燈采用接p1口的發光二極管;led顯示采用動態掃描,以節約端口數。特種車輛通行采用實時中斷完成,識別方法采用人工識別。按以上系統構架設計,單片機端口資源滿足要求。該系統具有電路簡單,設計方便,耗電較少,可靠性高等特點。1.2 方案二在日常生活及工農業生產中經常要用到溫度的檢測及控制,傳統的測溫元件有熱電偶和熱電阻。而熱電偶和熱電
4、組測出的一般都是電壓,再轉換成對應得溫度,需要比較多的外部硬件支持,硬件電路復雜,軟件調試復雜,制作成本高。本數字溫度計設計采用美國dallas半導體公司繼ds1820之后推出的一種改進型智能溫度傳感器ds1820作為檢測元件,測溫范圍為-55125,分辨率最大可達0.0625。ds18b20可以直接讀出被測溫度值。而且采用3線制與單片機相連,減少了外部硬件電路,具有低成本和易使用的特點。按照系統設計功能的要求,確定系統由3個模塊組成:主控制器.測溫電路和顯示電路。數字溫度計總體電路結構框圖如圖1所示。圖1 數字溫度計電路結構框圖1.3 設計方案對比與選擇對比方案一與方案二可知道,二者所實現的
5、功能基本相同。方案二具有綜合設計優點,而且我們的芯片也是at89c52,最終我們選定方案二。 2 系統電路的設計2.1 主控制器單片機at89c51具有低電壓供電和小體積等特點,兩個端口剛好滿足電路系統的設計需要,很適合便攜式產品的設計使用,系統可用二節電池供電。2.2 顯示電路顯示電路采用6位共陽led數碼管,從p1口輸出段碼,列掃描用p3.0p3.來實現,列驅動用8255。2.3 溫度傳感器ds18b20溫度傳感器是美國dallas半導體公司最新推出的一種改進型智能溫度傳感器,與傳統的熱敏電阻等測溫元件相比,它能直接讀出北側溫度,并且可根據實際要求通過簡單的編程實現912位的數字值讀數方式
6、。ds18b20的性能特點如下:獨特的單線接口僅需要一個端口引腳進行通信;多個ds18b20可以并聯在惟一的三線上,實現多點組網功能;無須外部器件;可通過數據線供電,電壓范圍為3.05.5v;零待機功能;溫度以9或12位數字量讀出;用戶可定義的非易失性溫度報警設置;報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;ds18b20采用3腳pr-35封裝或8腳soic封裝,其內部結構框圖如圖2所示。 圖2 ds18b20內部結構圖64位rom的位結構如圖3所示。開始8位是產品類型的編號,接著是每個器件的惟一的序號,共有
7、48位,最后8位是前面56位的crc檢驗碼,這也是多個ds18b20可以采用一線進行通信的原因。非易失性溫度報警器觸發器th和tl,可通過軟件寫入戶報警上下限。圖3 64位rom結構圖ds18b20溫度傳感器的內部存儲器還包括一個高速暫存ram和一個非易失性的可擦除的eeram。高速暫存ram的結構為8字節的存儲器,結構如圖4所示。頭2個字節包含測得的溫度信息,第3和第4字節是th和tl的拷貝,是易失的,每次上電復位時被刷新。第5個字節為配置寄存器,它的內容用于確定溫度值的數字轉換分辨率。 ds18b20工作時按此寄存器中的分辨率將溫度轉換為相應精度的數值。該字節各位的定義熱圖5所示。低5位一
8、直為1,tm是測試模式位,用于設置ds18b20在工作模式還是在測試模式。在ds18b20出廠時該位被設置為0,用戶不要改動,r1和r0決定溫度轉換得精度位數,即用來設置分辨率,定義方法見表1。圖4 高速暫存ram結構圖圖5 配置寄存器表1 ds18b20分辨率的定義規定由表1可見,ds18b20溫度轉換的時間比較長,而且設定的分辨率越高,所需要的溫度轉換時間越長。因此,在實際應用中要將分辨率和轉換時間權衡考慮。高速暫存ram的第6,7,8字節保存未用,表現為邏輯1。第9字節讀出前面所有8字節的crc碼,可用來檢驗數據,從而保證通信數據的正確性。當ds18b20接收溫度轉換命令后,開始啟動轉換
9、。轉換完成后的溫度值就以16位帶符號擴展的二進制補碼形式存儲在高速暫存存儲器的第1,2字節。單片機可以通過單線接口讀出數據,讀數據時低位在先,高位在后,數據格式以0.0625/lsb形式表示。溫度值格式如圖6所示。 圖6 溫度數據值格式當符號位s=0時,表示測得的溫度值為正值,可以直接將二進制位轉換為十進制;當符號位s=1時,表示測得的溫度值為負值,要先將補碼轉換為原碼,再計算十進制。表2是一部分溫度值對應的二進制溫度數據。表2 ds18b20溫度與測得值對應表ds18b20完成溫度轉換后,就把測得的溫度值與ram中的th,tl字節內容作比較。若tth或ttl,則將該器件內的報警標志置位,并對
10、主機發出報警搜索命令作出響應。因此,可用多只ds18b20同時測量溫度并進行報警搜索。在64位rom的最高有效字節中存儲有循環冗余檢驗碼(crc)。主機根據rom的前56位來計算crc值,并和存入ds18b20的crc值作比較,以判斷主機收到rom數據是否正確。ds18b20的測溫原理如圖8所示。圖中第溫度系數晶振的震蕩頻率受溫度的影響很小,用于產生固定頻率的脈沖送給減法計數器1;高溫度系數晶振隨溫度變化其震蕩頻率明顯改變,所產生的信號作為減法計數器2的脈沖輸入.圖中還隱含著計數門,當計數門打開時,ds18b20就對低溫度系數震蕩器產生的時鐘脈沖計數,進而完成溫度測量。計數門的開啟時間由高溫度
11、系數震蕩器來決定,每次測量前,首先將-55所對應的一個基數分別置入減法計數器1,溫度寄存器中,減法計數器1和溫度寄存器被預置在-55所對應的一個基數值。減法計數器1所對低溫度系數晶振產生的脈沖信號進行減法計數,當減法計數器1的預置值減到0時,溫度寄存器的值將加1,減法計數器1的預置值將被重新裝入,減法計數器1重新開始對低溫度系數晶振產生的脈沖信號進行計數,如此循環直到計數器2計數到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數值就是所測溫度值。圖7中的斜率累加器用于補償和修正測溫過程中的非線形性,其輸出用于減法計數器的預置值,只要計數門仍未關閉就重復上述過程,直到溫度寄存器值達到被預測值。
12、另外,由于ds18b20單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要,系統對ds18b20的各種操作必須按協議進行。操作協議為:初始化ds18b20發rom功能命令發存儲器操作命令處理數據。圖7 ds18b20測溫原理圖ds18b20與單片機的接口電路 ds18b20可以采用兩種方式供電,一種是采用電源供電方式,此時ds18b20的1腳接地,2腳作為信號線,3腳接電源。另一種是寄生電源供電方式,如圖8所示.單片機端口接單線總線,為為保證有效ds18b20時鐘周期內提供足夠的電流,可用一個mosfet管來完成對總線的上拉。圖8 ds18b20采用寄生電源的電路圖當ds18b2
13、0處于寫存儲器操作和溫度a/d轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us。采用寄生電源供電方式時vdd和gnd端均接地。由于單線制只有一根線,因此發送接口必須是三態的。3 系統程序的設計3.1 主程序主程序的主要功能是負責溫度的實時顯示,讀出并處理ds18b20的測量溫度值,溫度測量1s進行一次,其程序流程圖見圖9。圖9 ds18b20溫度計主程序流程圖3.2 溫度程序溫度轉換命令子程序主要是發溫度轉換開始命令,當采用12分辨率時轉換時間為750ms,在本程序設計中采用1s顯示程序延時法等待轉換的完成。溫度轉換命令子程序流程圖如圖10所示。圖10 溫度轉換命令子程序流程圖計算
14、溫度子程序將ram中讀取值進行bcd碼的轉換運算,并進行溫度值正負的判斷,其程序流程圖如圖11所示。圖11 計算溫度子程序流程圖3.3 顯示程序顯示數據刷新子程序主要是對顯示數據進行刷新操作,當最高顯示位為0時將符號顯示位移入下一位。程序流程圖如圖12所示。 圖12 顯示數據刷新子程序流程圖ds18b20的各個rom命令read rom33h這個命令允許總線控制器讀到ds18b20的8位系列編碼,惟一的序列號和8位crc碼。只有在總線上存在單只ds18b20的時候才能使用這個命令。如果總線上有不止一個從機,當所有從機試圖同時傳送信號時,就會發生數據沖突。match rom55h這個是匹配rom
15、命令,后跟64位rom序列,讓總線控制器在多點總線上定位一只特定ds18b20,只有和64位rom序列完全匹配的ds18b20才能響應隨后的存儲器操作。所有和64位rom序列不匹配的從機都將等待復位脈沖。這條命令在總線上有單個或三個器件時都可以使用。skip rom0cch這條命令允許總線控制器不用提供64位rom編碼就使用存儲器操作命令,在單點總線情況下,可以節省時間。如果總線上不止一個從機,在skip rom命令之后跟著發一條讀命令,由于多個從機同時傳送信號。總線上就會發生數據沖突。search rom0f0h當一個系統初次啟動時,總線控制器可能并不知道單線總線上有多少器件或它們的64位r
16、om編碼。搜索rom命令允許總線控制器用排除法識別總線所有從機的64位編碼。alarm search0ech這條命令的流程和search rom相同。然而,只有在最近一次測溫后遇到符合報警條件的情況,ds18b20 才會響應這條命令。報警條件定義為溫度高于th或低于tl。只要ds18b20不掉電,報警狀態將一直保持,直到再一次測得的溫度值達不到報警條件。write scratchpad4eh這個命令向ds18b20的暫存器th和tl中寫入數據。可以在任何時刻發出復位命令來中止寫入。read scratchpad0beh這個命令讀取暫存器的內容。讀取將從第1個字節開始,一直進行下去,直到第9個字
17、節讀完。如果不想讀完所有字節,控制器可以在任何時間發出復位命令來中止讀取。copy scratchpad 48h這個命令把暫存器的內容拷貝到ds18b20的eerom存儲器里,即把溫度報警觸發字節存入非易失性存儲器里。如果總線控制器在這條命令之后跟著發出讀時間隙,而ds18b20又忙于把暫存器拷貝到ee存儲器,ds18b20就會輸出一個0,如果拷貝結束的話,ds18b20則輸出1。如果使用寄生電源,總線控制器必須在這條命令發出后立即啟動強上拉并最少保持10ms。convert t44h這條命令啟動一次溫度轉換而無需其它數據。溫度轉換命令被執行,而后ds18b20保持等待狀態。如果總線控制器在這
18、條命令之后跟著發出時間間隙,而ds18b20又忙于做時間轉換的話,ds18b20將在總線上輸出0,若溫度轉換完成,則輸出1。如果使用寄生電源,總線控制器必須在發出這條命令后立即啟動強上拉,并保持500ms以上時間。recall 、ee0e8h這條命令把報警觸發器里的值拷貝回暫存器。這種拷貝操作在ds18b20上點時自動執行,這樣器件以上電暫存器里馬上就存在有效的數據了。若這條命令發出之后發出數據隙,器件會輸出溫度轉換忙的標識:0為忙,1為完成。read power supply0b4h若把這條命令發給ds18b20后發出讀時間隙,器件會返回他的電源模式:0為寄生電源,1為外部電源。從ds18b
19、20讀取出的二進制值必須先轉換成十進制值,才能用于字符的顯示。因為ds18b20的轉換精度為912位可選的,為了提高精度采用12位。在采用12位轉換精度時,溫度寄存器里的值是以0.0625為步進的,即溫度值為溫度寄存器里的二進制值乘以0.0625,就是實際的十進制溫度值。通過觀察表5.2可以發現一個十進制值和二進制值之間有很明顯的關系,就是把二進制的高字節的低半字節和低字節的高半字節組成一個字節,這個字節的二進制值化為十進制之后,就是溫度值的百、十、個位值,而剩下的低字節的低半字節化為十進制后,就是溫度值得小數部分。小數部分因為是半個字節,所以二進制值范圍是0f,轉換成十進制小數值就是0.06
20、25的倍數(015倍)。這樣需要4位的數碼管來顯示小數部分,實際應用不必有這么高的精度,采用1位數碼管來顯示小數部分,實際應用不必有這么高的精度,采用1位數碼管來顯示小數,可以精確到0.1。表下就是二進制和十進制的近似對應關系表。表3 小數部分二進制和十進制的近似對應關系表4 系統調試及性能分析系統的調試以程序為主,硬件調試比較簡單,首先檢查電路的焊接是否正確,然后可用萬用表測試或通電檢測。軟件調試可以先編寫顯示程序并進行硬件的正確性檢驗,然后分別進行主程序、讀出溫度子程序、溫度轉換子程序、計算溫度子程序、顯示數據刷新等子程序的。編程及調試,由于ds18b20與單片機采用串行數據傳送,因此,對
21、da18b20進行讀寫編程時必須嚴格的保證讀寫時序,否則將無法讀取測量結果。本程序采用單片機匯編邊寫,用keil c51編譯器編程調試。軟件調試到能顯示溫度值,而且在有溫度變化時(例如用手去接觸)顯示溫度能改變就基本完成。性能測試可用制作的溫度計和已有的成品溫度計來同時測量比較,由于ds18b20的精度很高,所以誤差指標可以限制在0.1以內,另外-55+125的測量范圍使得該溫度計完全適合一般的應用場合,其低電壓供電特性可做成用電池供電的手持溫度計。ds18b20溫度計還可以在高低溫報警、遠距離多點測溫控制等方面進行應用開發,但在實際設計中應注意一下問題。ds18b20工作時電流高達1.5ma
22、,總線上掛節點數較多且同時進行轉換時,要考慮增加總線驅動,可用單片機端口在溫度轉換時導通一個modfet供電。連接ds18b20的總線電纜是有長度限制的,因此在用ds18b20進行長距離測溫系統設計時,要充分考慮總線分布電容和阻抗匹配等問題。在ds18b20測溫程序設計中,向ds18b20發出溫度轉換命令后,程序總要等待ds18b20的返回信號,一旦某個ds18b20接觸不好或短線,當程序讀該ds18b20時,將沒有返回信號,程序進行死循環,這一點在進行ds18b20硬件連接和軟件設計時要給予一定的重視。5 儀器件清單 本次設計所涉及元器件都是基于我們的單片機開發板,其中最重要的主控制器89c
23、52和溫度傳感器ds18b20;顯示電路由8255擴展四個數碼顯示管構成。雖然運用到的元器件不多,但是做的過程中還是非常的艱難每個器件的結構和功能都很難以理解弄懂,具體運用到的元器件如表4所示。表4 儀器清單stc89c52芯片1塊ds18b20溫度傳感器1個電源線1根電源充電器1個電阻18個8255擴展芯片1塊數碼管4個9015電容6個6 總結與體會課程設計已經結束了,雖然我們的課題比較難,但是我們還是通過大家的努力還是圓滿的完成了,通過這次課程設計期間使我對單片機課上所學到的知識有了更深的認識,并且把我們平時在電子這一方面所學到的知識有了一個綜合的運用,使我們真正的從實踐掌握了80c51的
24、各方面的知識。首先,當老師給我們每個小組分配下各自的課程設計的課題是,我的是“ds18b20數字溫度計的設計”,拿到課題當時,我是一臉茫然,根本就不知道應該從何開始下手,對此經過我們組大家的商量,分配好各自的任務,我們開始收集關于這方面的資料,而且幸運的是我們找到了和我們課題相關的設計方案,下午我們把各自所收集到資料在一起經過研究,討論,終于對課題有了初步的了解和想法。接下來的幾天我們仍然是學習關于我們這次試驗中所用到的各個芯片,和對于整個課題的設計方法和思路,經過我們的討論和商議終于確定了我們的實際方案。然后我們就開始編寫所用到程序,畫粗略的電路圖,編寫程序的流程圖。當然初次的程序存在很多的
25、錯誤,通過我們的仔細的檢查,終于完成了。最后我們就是寫試驗報告,對我們這次課程設計做一個歸納,總結。圓滿的完成了這次課程設計。參考文獻1 張鑫.單片機原理及應用。 北京:電子工業出版社,20072 樓然苗,李光飛.單片機課程設計指導。 北京:北京航空航天大學出版社,20073 謝四蓮.單片機原理及應用實驗指導書。 婁底:湖南人文科技學研,20104 周潤景,袁偉亭.proteus應用。 北京: 電子工業出版社,20065 彭介華.電子技術課程設計指導。 北京:高等教育出版社,1997附錄一:詳細系統源程序#include#include#include#define uchar unsigne
26、d char#define uint unsigned intsbit beer=p33;bit flag;uchar temprt_h,temprt_l;uchar decimal;/定義18b20數據端口 sbit dq=p17;/共陽級管顯碼 uchar display_code20=0xa0,0xbb,0x62,0x2a,/0,1,2,30x39,0x2c,0x24,0xba,/4,5,6,70x20,0x28,0x30,0x25,/8,9,a,b0xe4,0x23,0x64,0x74,/c,d,e,f0x7f,0xe5,0x31,0xff;/-,l,h,滅/ds18b20溫度傳感器 void delay(uint i)while(i-);/初始化ds18b20void init_ds18b20(void)uchar x=0;do dq=1; delay(1); dq=0; delay(80); dq=1; delay(5); x=dq; while(x);delay(15);/讀一個字節uchar read_18b20_byte(void)uchar i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省蘇州市同里中學2024-2025學年初三年級第一次模擬考試(二)數學試題含解析
- 江蘇省四校聯考2025屆高三第二學期月考(三)英語試題含解析
- 家具定制交易合同
- 版個人房屋建設承包協議案例
- 鋁門采購合同
- 2《讓家更美好》表格式公開課一等獎創新教學設計 統編版七年級上冊道德與法治
- 建筑項目勞動力計劃和主要設備供應計劃
- 人教部編版二年級上冊課文4口語交際:商量教案設計
- 經管營銷多維-廣東溢達-問題分析與解決培訓核心片段記錄-1021-22
- 八年級數學下冊 第20章 數據的初步分析20.2 數據的集中趨勢與離散程度 1數據的集中趨勢第2課時 中位數與眾數教學設計 (新版)滬科版
- DBJ33T 1271-2022 建筑施工高處作業吊籃安全技術規程
- 一年級口算練習題-100以內無進退位
- 創新創業基礎知到智慧樹章節測試課后答案2024年秋哈爾濱理工大學
- 針刺傷警示教育課件
- 星際求職指南-札記
- 【MOOC】戲曲鑒賞-揚州大學 中國大學慕課MOOC答案
- 《初中生物實驗教學的創新與實踐》
- 企業合規管理體系建設與運行機制研究
- 寫字樓項目招商方案
- 期中檢測卷(試題)-2023-2024學年人教PEP版英語六年級下冊
- 擋墻橋墩沖刷計算表
評論
0/150
提交評論