版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 基于單片機(jī)的溫度檢測儀設(shè)計</p><p> 學(xué)生姓名: </p><p> 學(xué)生學(xué)號: </p><p> 院(系): 電氣信息工程學(xué)院 </p><p> 年級專業(yè): 2008級電子信息工程</p><p> 指導(dǎo)教
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> 二、設(shè)計方案4</b></p><p> 三、設(shè)計框圖及流程圖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> 五、電路仿真的設(shè)計與分析10</p><p> 1、Proteus仿真軟件介紹10</p><p><b> 2、仿真圖11</b>
5、</p><p><b> 參考文獻(xiàn)12</b></p><p><b> 致 謝13</b></p><p><b> 前 言</b></p><p> 隨著科技的發(fā)展和“信息時代”的到來,作為獲取信息的手段——傳感器技術(shù)得到了顯著的進(jìn)步,其應(yīng)用領(lǐng)域越來越廣泛,
6、對其要求越來越高,需求越來越迫切。因此,了解并掌握各類傳感器的基本結(jié)構(gòu)、工作原理及特性是非常重要的。</p><p> 傳感器主要用于測量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此,不僅必須掌握各類傳感器的結(jié)構(gòu)、原理及其性能指標(biāo),還必須懂得傳感器經(jīng)過適當(dāng)?shù)慕涌陔娐氛{(diào)整才能滿足信號的處理、顯示和控制的要求,而且只有通過對傳感器應(yīng)用實例的原理和智能傳感器實例的分析了解,才能將傳感器和信息通信與信息處理結(jié)合起來
7、,適應(yīng)傳感器的生產(chǎn)、研制、開發(fā)和應(yīng)用。另一方面,傳感器的被測信號來自于各個應(yīng)用領(lǐng)域,每個領(lǐng)域都為了改革生產(chǎn)力、提高工效和時效,各自都在開發(fā)研制適合應(yīng)用的傳感器,于是種類繁多的新型傳感器及傳感器系統(tǒng)不斷涌現(xiàn)。溫度傳感器是其中重要的一類傳感器。其發(fā)展速度之快,以及其應(yīng)用之廣,并且還有很大潛力。</p><p><b> 一、引言</b></p><p> 本設(shè)計所介紹
8、的數(shù)字溫度計與傳統(tǒng)的溫度計相比,具有讀數(shù)方便,測溫范圍廣,測溫準(zhǔn)確,其輸出溫度采用數(shù)字顯示,主要用于對測溫比較準(zhǔn)確的場所,或科研實驗室使用,該設(shè)計控制器使用單片機(jī)AT89S51,測溫傳感器使用DS18B20,用4位共陽極LED數(shù)碼管以串口傳送數(shù)據(jù),實現(xiàn)溫度顯示,能準(zhǔn)確達(dá)到以上要求。</p><p><b> 二、設(shè)計方案</b></p><p> 用溫度傳感器,在
9、單片機(jī)電路設(shè)計中,大多都是使用傳感器,所以這是非常容易想到的,所以可以采用一只溫度傳感器DS18B20,此傳感器,可以很容易直接讀取被測溫度值,進(jìn)行轉(zhuǎn)換,就可以滿足設(shè)計要求。</p><p> 三、設(shè)計框圖及流程圖</p><p><b> 1 主控制器</b></p><p> 單片機(jī)AT89S51具有低電壓供電和體積小等特點,四個端口
10、只需要兩個口就能滿足電路系統(tǒng)的設(shè)計需要,很適合便攜手持式產(chǎn)品的設(shè)計使用系統(tǒng)可用二節(jié)電池供電。</p><p><b> 2 顯示電路</b></p><p> 顯示電路采用4位共陽LED數(shù)碼管。</p><p><b> 3溫度傳感器</b></p><p> DS18B20溫度傳感器是美國
11、DALLAS半導(dǎo)體公司最新推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測溫元件相比,它能直接讀出被測溫度,并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9~12位的數(shù)字值讀數(shù)方式。DS18B20的性能特點如下:</p><p> ●獨特的單線接口僅需要一個端口引腳進(jìn)行通信;</p><p> ●多個DS18B20可以并聯(lián)在惟一的三線上,實現(xiàn)多點組網(wǎng)功能;</p><p&
12、gt;<b> ●無須外部器件;</b></p><p> ●可通過數(shù)據(jù)線供電,電壓范圍為3.0~5.5V;</p><p><b> ●零待機(jī)功耗;</b></p><p> ●溫度以9或12位數(shù)字;</p><p> ●用戶可定義報警設(shè)置;</p><p>
13、●報警搜索命令識別并標(biāo)志超過程序限定溫度(溫度報警條件)的器件;</p><p> ●負(fù)電壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作; </p><p> DS18B20采用3腳PR-35封裝或8腳SOIC封裝,其內(nèi)部結(jié)構(gòu)框圖如下圖所示。</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小數(shù)點控制</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}; //顯示單元數(shù)據(jù),共4個數(shù)據(jù),1個運算暫存用</p><p> void delay(uint t) </p><p><b> { </b></p><p> for(;t>0;t--); </p><p><b>
20、}</b></p><p> /******************************顯示掃描函數(shù)******************************/ </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、/當(dāng)K=1時,P0^7為低電平顯示小數(shù)點</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復(fù)位函數(shù)******************************/ </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寫命令函數(shù)*********************************/ </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é)函數(shù)****************************************************/ <
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> /******************************讀出溫度函數(shù)*************************************************/ </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> /********************************計算溫度子函數(shù)**********************************************/ </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;} //負(fù)溫度求補(bǔ)碼</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;} //負(fù)溫度是最高為顯示“-”</p><p><b> }</b></p><p> /*******************************主函數(shù)********************************************
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++) //開機(jī)顯示“8888”scan();</p><p> {display[h]=8;}</p><p> ow_reset(); //開機(jī)先轉(zhuǎn)換一次</p><p> write_byte(0xcc);//skip ROM </p><p> write_byte(0x44);//發(fā)轉(zhuǎn)換命令<
44、/p><p> for(h=0;h<500;h++)//開機(jī)顯示“8888”兩秒 </p><p> {scan();} </p><p><b> while(1) </b></p><p><b> { </b></p><p> read_temp();
45、//讀出溫度數(shù)據(jù)</p><p> work_temp(); //處理溫度數(shù)據(jù)</p><p> for(h=0;h<500;h++) //顯示溫度兩秒</p><p> {scan();} </p><p><b> } </b></p><p><b> }<
46、/b></p><p> 五、電路仿真的設(shè)計與分析</p><p> 1、Proteus仿真軟件介紹</p><p> Proteus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:①實現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模
47、擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:6800系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功
48、能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。</p><p><b> 2、仿真圖</b></p><p><b> 參考文獻(xiàn)&
49、lt;/b></p><p> [1] 李朝青.單片機(jī)原理及接口技術(shù)(簡明修訂版).杭州:北京航空航天大學(xué)出版社,1998</p><p> [2] 李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,1994</p><p> [3] 閻石.數(shù)字電子技術(shù)基礎(chǔ)(第三版). 北京:高等教育出版社,1989</p><p> [
50、4] 單片機(jī)C語言程序設(shè)計(完全自學(xué)手冊)北京:電子工業(yè)出版社,2008</p><p><b> 致 謝</b></p><p> 在本次課程設(shè)計中,我得到了指導(dǎo)老師以及同學(xué)的熱心指導(dǎo)。幫助解決課程設(shè)計中遇到的許多問題。還不斷向我們傳授分析問題和解決問題的辦法,并指出了正確的努力方向,使我在課程設(shè)計中學(xué)習(xí)到許多新的知識。通過這次畢業(yè)設(shè)計,使我深刻地認(rèn)識到學(xué)好專
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)溫度檢測課程設(shè)計
- 基于單片機(jī)溫度計課程設(shè)計
- 基于單片機(jī)溫度計課程設(shè)計
- 單片機(jī)課程設(shè)計-- 基于單片機(jī)的數(shù)字溫度計設(shè)計
- 溫度計課程設(shè)計---基于51單片機(jī)數(shù)字溫度計設(shè)計
- 基于51單片機(jī)的酒精檢測儀課程設(shè)計
- 基于51單片機(jī)的酒精檢測儀課程設(shè)計
- 單片機(jī)溫度計課程設(shè)計
- 單片機(jī)課程設(shè)計---基于單片機(jī)的數(shù)字溫度計設(shè)計
- 課程設(shè)計--基于單片機(jī)數(shù)字溫度計設(shè)計
- 單片機(jī)課程設(shè)計--基于單片機(jī)的數(shù)字溫度計的設(shè)計
- 機(jī)電課程設(shè)計—溫度巡回檢測儀
- 基于單片機(jī)數(shù)字溫度計課程設(shè)計
- 數(shù)字溫度計課程設(shè)計---基于51單片機(jī)數(shù)字溫度計設(shè)計
- 單片機(jī)課程設(shè)計報告---基于單片機(jī)的數(shù)字溫度計設(shè)計
- 基于單片機(jī)的數(shù)字溫度計課程設(shè)計
- 基于51單片機(jī)的溫度計課程設(shè)計
- 基于單片機(jī)的數(shù)字溫度計課程設(shè)計
- 單片機(jī)課程設(shè)計--數(shù)字溫度計
- 單片機(jī)課程設(shè)計--數(shù)字溫度計
評論
0/150
提交評論