

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 基于單片機的溫度檢測儀設計</p><p> 學生姓名: </p><p> 學生學號: </p><p> 院(系): 電氣信息工程學院 </p><p> 年級專業(yè): 2008級電子信息工程</p><p> 指導教
2、師: </p><p><b> 二〇一一年十二月</b></p><p><b> 目 錄</b></p><p><b> 前 言2</b></p><p><b> 一、引言3</b></p&g
3、t;<p><b> 二、設計方案4</b></p><p> 三、設計框圖及流程圖4</p><p><b> 1、主控制器4</b></p><p><b> 2、顯示電路4</b></p><p><b> 3、溫度傳感器4&l
4、t;/b></p><p><b> 4、流程圖5</b></p><p> 四、溫度檢測儀程序6</p><p> 五、電路仿真的設計與分析10</p><p> 1、Proteus仿真軟件介紹10</p><p><b> 2、仿真圖11</b>
5、</p><p><b> 參考文獻12</b></p><p><b> 致 謝13</b></p><p><b> 前 言</b></p><p> 隨著科技的發(fā)展和“信息時代”的到來,作為獲取信息的手段——傳感器技術得到了顯著的進步,其應用領域越來越廣泛,
6、對其要求越來越高,需求越來越迫切。因此,了解并掌握各類傳感器的基本結構、工作原理及特性是非常重要的。</p><p> 傳感器主要用于測量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類傳感器的結構、原理及其性能指標,還必須懂得傳感器經過適當的接口電路調整才能滿足信號的處理、顯示和控制的要求,而且只有通過對傳感器應用實例的原理和智能傳感器實例的分析了解,才能將傳感器和信息通信與信息處理結合起來
7、,適應傳感器的生產、研制、開發(fā)和應用。另一方面,傳感器的被測信號來自于各個應用領域,每個領域都為了改革生產力、提高工效和時效,各自都在開發(fā)研制適合應用的傳感器,于是種類繁多的新型傳感器及傳感器系統(tǒng)不斷涌現。溫度傳感器是其中重要的一類傳感器。其發(fā)展速度之快,以及其應用之廣,并且還有很大潛力。</p><p><b> 一、引言</b></p><p> 本設計所介紹
8、的數字溫度計與傳統(tǒng)的溫度計相比,具有讀數方便,測溫范圍廣,測溫準確,其輸出溫度采用數字顯示,主要用于對測溫比較準確的場所,或科研實驗室使用,該設計控制器使用單片機AT89S51,測溫傳感器使用DS18B20,用4位共陽極LED數碼管以串口傳送數據,實現溫度顯示,能準確達到以上要求。</p><p><b> 二、設計方案</b></p><p> 用溫度傳感器,在
9、單片機電路設計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進行轉換,就可以滿足設計要求。</p><p> 三、設計框圖及流程圖</p><p><b> 1 主控制器</b></p><p> 單片機AT89S51具有低電壓供電和體積小等特點,四個端口
10、只需要兩個口就能滿足電路系統(tǒng)的設計需要,很適合便攜手持式產品的設計使用系統(tǒng)可用二節(jié)電池供電。</p><p><b> 2 顯示電路</b></p><p> 顯示電路采用4位共陽LED數碼管。</p><p><b> 3溫度傳感器</b></p><p> DS18B20溫度傳感器是美國
11、DALLAS半導體公司最新推出的一種改進型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據實際要求通過簡單的編程實現9~12位的數字值讀數方式。DS18B20的性能特點如下:</p><p> ●獨特的單線接口僅需要一個端口引腳進行通信;</p><p> ●多個DS18B20可以并聯在惟一的三線上,實現多點組網功能;</p><p&
12、gt;<b> ●無須外部器件;</b></p><p> ●可通過數據線供電,電壓范圍為3.0~5.5V;</p><p><b> ●零待機功耗;</b></p><p> ●溫度以9或12位數字;</p><p> ●用戶可定義報警設置;</p><p>
13、●報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;</p><p> ●負電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; </p><p> DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內部結構框圖如下圖所示。</p><p><b> 4、流程圖</b></p><p&
14、gt; 主程序流程圖: 讀溫度流程圖:</p><p> 讀溫度子程序: 計算溫度子程序:</p><p><b> 四、溫度檢測儀程序</b></p><p> # include "
15、reg51.h" </p><p> # include "intrins.h" </p><p> # define disdata P0</p><p> # define discan P2</p><p> # define uchar unsigned char </p>
16、;<p> # define uint unsigned int </p><p> sbit DQ = P3^7; //溫度輸入口</p><p> sbit DIN = P0^7;//led小數點控制</p><p> uchar DQ;</p><p><b> uint h;</b>&
17、lt;/p><p> uchar code ditab[16]= </p><p> {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09}; </p><p> uchar code dis_7[12]= {0xc0,0xf9,0xa4,0xb0,0x99
18、,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};</p><p> uchar code scan_con[4]={0xf7,0xfB,0xFD,0xFE};//列掃描控制字 </p><p> uchar data temp_data[2]={0x00, 0x00,}; //讀出溫度暫存</p><p> uchar data
19、display[5]={0x00,0x00,0x00,0x00,0x00}; //顯示單元數據,共4個數據,1個運算暫存用</p><p> void delay(uint t) </p><p><b> { </b></p><p> for(;t>0;t--); </p><p><b>
20、}</b></p><p> /******************************顯示掃描函數******************************/ </p><p><b> scan() </b></p><p><b> { </b></p><p><
21、;b> char k; </b></p><p> for(k=0;k<4;k++) //4位LED掃描控制</p><p><b> { </b></p><p> disdata=dis_7[display[k]]; </p><p> if(k==1){DIN=0;} /
22、/當K=1時,P0^7為低電平顯示小數點</p><p> discan=scan_con[k]; //列掃描</p><p> delay(30);</p><p> discan=0xFF; </p><p><b> } </b></p><p><b> }</
23、b></p><p> /*******************************DS復位函數******************************/ </p><p> ow_reset(void) </p><p><b> { </b></p><p> char presence=1;
24、</p><p> while(presence) </p><p><b> { </b></p><p> while(presence) </p><p><b> { </b></p><p> DQ=1;_nop_();_nop_(); </p>
25、;<p><b> DQ=0; </b></p><p> delay(50); //延時550毫秒</p><p><b> DQ=1; </b></p><p> delay(6); </p><p> presence=DQ; </p><p>
26、;<b> } </b></p><p> delay(45); </p><p> presence=~DQ; </p><p><b> } </b></p><p><b> DQ=1; </b></p><p><b> }
27、 </b></p><p> /*****************************DS寫命令函數*********************************/ </p><p> void write_byte(uchar val) //向1-WIRE總線上寫一字節(jié)</p><p><b> { </b>&l
28、t;/p><p><b> uchar i;</b></p><p> for(i=8;i>0;i--) </p><p><b> { </b></p><p> DQ=1;_nop_();_nop_(); </p><p> DQ=0;_nop_();_nop
29、_();_nop_();_nop_();_nop_(); </p><p> DQ=val&0x01; //最低位移出</p><p> delay(6); </p><p> val=val/2; //右移1位</p><p><b> } </b></p><p><
30、b> DQ=1; </b></p><p> delay(1); </p><p><b> }</b></p><p> /*******************************DS讀一字節(jié)函數****************************************************/ <
31、;/p><p> uchar read_byte(void) </p><p><b> { </b></p><p><b> uchar i; </b></p><p> uchar value=0;</p><p> for(i=8;i>0;i--) <
32、;/p><p><b> { </b></p><p> DQ=1;_nop_();_nop_(); </p><p> value>>=1;</p><p><b> DQ=0; </b></p><p> _nop_();_nop_();_nop_();
33、_nop_();</p><p> DQ=1;_nop_();_nop_();_nop_();_nop_(); </p><p> if(DQ) value|=0x80; </p><p> delay(6); </p><p><b> } </b></p><p><b>
34、 DQ=1; </b></p><p> return(value); </p><p><b> }</b></p><p> /******************************讀出溫度函數*************************************************/ </p>
35、<p> read_temp() </p><p><b> { </b></p><p> ow_reset(); </p><p> write_byte(0xcc); </p><p> write_byte(0xbe);</p><p> temp_data[0]=
36、read_byte(); </p><p> temp_data[1]=read_byte(); </p><p> ow_reset(); </p><p> write_byte(0xcc); </p><p> write_byte(0x44); </p><p><b> }</b&g
37、t;</p><p> /********************************計算溫度子函數**********************************************/ </p><p> work_temp() </p><p><b> { </b></p><p> uchar
38、 n=0; </p><p> if(temp_data[1]>127) </p><p> {temp_data[1]=(255-temp_data[1]);temp_data[0]=(255-temp_data[0]);n=1;} //負溫度求補碼</p><p> display[4]=temp_data[0]&0x0f;display[0
39、]=ditab[display[4]]; </p><p> display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4) ; </p><p> display[3]=display[4]/100; </p><p> display[1]=display[4
40、]%100; </p><p> display[2]=display[1]/10; </p><p> display[1]=display[1]%10; </p><p> if(!display[3]){display[3]=0x0a; </p><p> if(!display[2]){display[2]=0x0a;}} /
41、/最高位為0時不顯示</p><p> if(n){display[3]=0x0b;} //負溫度是最高為顯示“-”</p><p><b> }</b></p><p> /*******************************主函數********************************************
42、**************/ </p><p><b> main () </b></p><p><b> { </b></p><p> disdata=0xff;// 初始化端口</p><p> discan=0xff;</p><p> for(h=0;
43、h<4;h++) //開機顯示“8888”scan();</p><p> {display[h]=8;}</p><p> ow_reset(); //開機先轉換一次</p><p> write_byte(0xcc);//skip ROM </p><p> write_byte(0x44);//發(fā)轉換命令<
44、/p><p> for(h=0;h<500;h++)//開機顯示“8888”兩秒 </p><p> {scan();} </p><p><b> while(1) </b></p><p><b> { </b></p><p> read_temp();
45、//讀出溫度數據</p><p> work_temp(); //處理溫度數據</p><p> for(h=0;h<500;h++) //顯示溫度兩秒</p><p> {scan();} </p><p><b> } </b></p><p><b> }<
46、/b></p><p> 五、電路仿真的設計與分析</p><p> 1、Proteus仿真軟件介紹</p><p> Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:①實現了單片機仿真和SPICE電路仿真相結合。具有模
47、擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調試器、SPI調試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功
48、能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境,如Keil C51 uVision2等軟件。④具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真軟件,功能極其強大。</p><p><b> 2、仿真圖</b></p><p><b> 參考文獻&
49、lt;/b></p><p> [1] 李朝青.單片機原理及接口技術(簡明修訂版).杭州:北京航空航天大學出版社,1998</p><p> [2] 李廣弟.單片機基礎[M].北京:北京航空航天大學出版社,1994</p><p> [3] 閻石.數字電子技術基礎(第三版). 北京:高等教育出版社,1989</p><p> [
50、4] 單片機C語言程序設計(完全自學手冊)北京:電子工業(yè)出版社,2008</p><p><b> 致 謝</b></p><p> 在本次課程設計中,我得到了指導老師以及同學的熱心指導。幫助解決課程設計中遇到的許多問題。還不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在課程設計中學習到許多新的知識。通過這次畢業(yè)設計,使我深刻地認識到學好專
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機溫度檢測課程設計
- 基于單片機溫度計課程設計
- 基于單片機溫度計課程設計
- 單片機課程設計-- 基于單片機的數字溫度計設計
- 溫度計課程設計---基于51單片機數字溫度計設計
- 基于51單片機的酒精檢測儀課程設計
- 基于51單片機的酒精檢測儀課程設計
- 單片機溫度計課程設計
- 單片機課程設計---基于單片機的數字溫度計設計
- 課程設計--基于單片機數字溫度計設計
- 單片機課程設計--基于單片機的數字溫度計的設計
- 機電課程設計—溫度巡回檢測儀
- 基于單片機數字溫度計課程設計
- 數字溫度計課程設計---基于51單片機數字溫度計設計
- 單片機課程設計報告---基于單片機的數字溫度計設計
- 基于單片機的數字溫度計課程設計
- 基于51單片機的溫度計課程設計
- 基于單片機的數字溫度計課程設計
- 單片機課程設計--數字溫度計
- 單片機課程設計--數字溫度計
評論
0/150
提交評論