基于Proteus的電子體溫計的設(shè)計與仿真_第1頁
基于Proteus的電子體溫計的設(shè)計與仿真_第2頁
基于Proteus的電子體溫計的設(shè)計與仿真_第3頁
基于Proteus的電子體溫計的設(shè)計與仿真_第4頁
基于Proteus的電子體溫計的設(shè)計與仿真_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于Proteus的電子體溫計的設(shè)計與仿真專業(yè):電子信息工程 學(xué)號: 姓名:施小飛摘要:體溫計是現(xiàn)代人們?nèi)粘<揖由畹牡谋貍淦分?,而常見的體溫計多為傳統(tǒng)的水銀體溫計,該體溫 計是基于傳統(tǒng)的熱漲冷縮的性質(zhì)制成的,該體溫計在 使用中存在著測溫時間較長,讀數(shù)不方便和水銀外泄 的不安全因數(shù),因此十分有必要設(shè)計一款更加方便快 速的電子體溫計來解決這些問題。本文將以 AT89C51 單片機(jī)為基礎(chǔ)并結(jié)合數(shù)字溫度傳感器 DS18B20,以及數(shù)碼管顯示等,來實現(xiàn)電子體溫計的設(shè)計。關(guān)鍵詞:電子體溫計;AT89C51單片機(jī);溫度傳感器DS18B20Proteuss microcontroller-based de

2、sign and simulation of electronic thermometerAbstract:Thermometer is the home of modern daily life of essential goods, and more common for the traditional mercury thermometer thermometer, the thermometer is based on the traditional nature of the heating or cooling is made, and the thermometer in use

3、 there is a temperature a long time, reading is not convenient and safe mercury leakage factor, it is necessary to design a more convenient and fast electronic thermometer to solve these problems. This will be combined with AT89C51 microcontroller based digital temperature sensor DS18B20, and digita

4、l display, electronic thermometer designed to achieve.Keywords:Electronic thermometer;AT89C51 microcontroller;Temperature sensor DS18B201、緒論1.1 體溫計的發(fā)展與現(xiàn)狀體溫測量的歷史,可以追溯到l6世紀(jì)。當(dāng)時Saatorio用空氣熱膨脹的原理,制出了第一支測量口腔溫度的體溫計。本世紀(jì)初,開始用水銀來制作體溫計,至今在臨床上得到了廣泛的應(yīng)用。根據(jù)1928年Ebstein的報告,當(dāng)時除測量口腔及腋下的溫度外,還可以測量直腸、頸部、大腿根部,外耳及尿溫。這些都是用

5、被測皮膚溫度與玻璃球內(nèi)積存的水銀溫度相等的原理實現(xiàn)的。由于水銀體溫計使用方便、精度高,因而應(yīng)用很廣。再加上測溫方法及其結(jié)構(gòu)都已成熟,沒多大改進(jìn)余地,人們對它的研究失去了信心,至今幾乎沒有什么進(jìn)展。由于用水銀體溫計進(jìn)行體溫監(jiān)測很不方便,水銀的污染的可能也很嚴(yán)重等,為了正確測量人體局部溫度,促使人們開發(fā)了各種不同的測溫儀器和測溫方法。雖然水銀體溫計仍不愧是一個精度高、便宜、使用方便的測溫儀器。現(xiàn)在已有許多醫(yī)院采用了電子體溫計,用其它電子儀器測量體溫也日益普及。這一事實至少表明,電子測溫儀器的性能已接近水銀溫度計的性能。因此,鑒于傳統(tǒng)的水銀體溫計汞的污染及其攜帶不方便易破碎,尤其是測量時間過長等缺點

6、,本課題為解決此問題設(shè)計出一種數(shù)字式電子體溫計。它在穩(wěn)定性及響應(yīng)時間上比傳統(tǒng)的水銀體溫計有著顯著的優(yōu)勢,精度要求也能和傳統(tǒng)的水銀體溫計相媲美。1.2 可靠性需求與可用性需求: 由于該設(shè)計應(yīng)用于人體身體健康的體溫測量,因此必須保證設(shè)計的可靠性和可用性。該設(shè)計利用的溫度傳感器為精度0.5的 DS18B20 傳感器保證了該體溫計測量的精確性,為了提醒使用者的高溫狀 態(tài),設(shè)計中的蜂鳴器則保證了該設(shè)計的可靠性。2.系統(tǒng)設(shè)計2.1 系統(tǒng)概述該設(shè)計是以 AT89C51 芯片為核心,通過檢DS18B20的工作與否,然后將其內(nèi)部的數(shù)字量溫度讀到單片機(jī),通過相應(yīng)的數(shù)碼管顯示,當(dāng)溫度超出設(shè)定的溫度時用蜂鳴器報警。其

7、外圍電路包括復(fù)位電路、晶振電路。系統(tǒng)方框圖為:2.2 系統(tǒng)元件2.2.1 AT89C51 的簡介AT89C51是 一種帶4K字節(jié)閃存可編程可擦只讀存儲器( FPEROMFlash Program m able and Erasable Read Only Mem ory)的低電壓、高性能CMOS8位微處 理器 ,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦 除只讀存儲 器可以反復(fù)擦除1000次.該器件采用ATMEL高密度非易失存儲器制造技 術(shù)制造, 與工業(yè)標(biāo)準(zhǔn)的MCS -51指令集和輸出管腳相兼容.由于將多功能8位CPU和閃爍存 儲器組合在單個

8、芯片中 ,ATMEL的AT89 C51是一種高效微控制器,AT89C2051是 它的 一種精簡版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案 。2.3 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)換電路集成在形如

9、一只三極管的集成電路內(nèi)。(5)溫范圍55125,在-10+85時精度為0.5。(6)可編程的分辨率為 912 位,對應(yīng)的可分辨溫度 分別為 0.5、0.25、0.125和 0.0625,可實現(xiàn)高精 度測溫。(7)在 9 位分辨率時最多在 93.75ms 內(nèi)把溫度轉(zhuǎn)換為數(shù)字,12 位分辨率時最多在750ms 內(nèi)把溫度值轉(zhuǎn)換為數(shù)字, 速度更快。(8)測量結(jié)果直接輸出數(shù)字溫度信號,以“一線總 線”串行傳送給 CPU,同時可傳送 CRC 校驗碼,具有極強(qiáng)的 抗干擾糾錯能力。(9)負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而 燒毀,但不能正常工作。2.4 DS18B20 的結(jié)構(gòu)介紹DS18B20 內(nèi)部結(jié)構(gòu)

10、主要由四部分組成:64 位光刻 ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器 TH 和 TL、配 置寄存器。引腳定義:(1)DQ 為數(shù)字信號輸入/輸出端;(2)GND 為電源地;(3)VDD 為外接供電電源輸入端(在寄生電源接線方式 時接地)。2.5 數(shù)碼管常見的數(shù)碼管由八個條狀和一個點狀發(fā)光二極管管芯 制成,叫八段數(shù)碼管。根據(jù)其結(jié)構(gòu)的不同,可分為共陽極 數(shù)碼管和共陰極數(shù)碼管兩種,發(fā)光二極管的陽極連在一起的稱為共陽極顯示器,陰極連在一起的成為共陰顯示器。1位顯示器由 8 個發(fā)光二極管組成,其中 7 個發(fā)光二極管 ag 控制 7 個筆畫的亮或暗,另一個控制一個小數(shù)點的亮和暗, 這種筆畫的八段顯示器

11、能顯示的字符較少,字符的形狀有 些失真,但失控簡單,使用方便。如下圖所示:LED 數(shù)碼管引腳圖3.詳細(xì)設(shè)計3.1 硬件設(shè)計3.1.1 溫度采集模塊 溫度采集模塊的作用是采集傳感器周圍的溫度,并將模擬信號轉(zhuǎn)化為數(shù)字信號,采集模塊如下圖3.1.2 復(fù)位電路電路的功能是完成對單片機(jī)的復(fù)位,具有上電復(fù)位功 能和按鍵復(fù)位功能。本設(shè)計中采用自動復(fù)位的上電復(fù)位方 式。晶振為 12MHZ。復(fù)位電路如圖3.1.3 顯示模塊顯示范圍主要為 0-100,精度為 0.1,顯示數(shù)碼管 即為 4 位 8 段顯示的數(shù)碼管,由于單片機(jī)資源有限,這里采 用的是動態(tài)掃描的方法。在該接法中,單片機(jī)的借口為 P0 口,作為輸出口,需

12、要上拉,圖中的電阻均為 10K。數(shù)碼管 采用共陽管。顯示接口電路圖如下3.1.4 報警電路設(shè)計的安全溫度為 037當(dāng)人體溫度超過 37 時,就要求有所報警指示,該設(shè)計采用 PNP 三極管 9015 進(jìn) 行驅(qū)動蜂鳴器,三極管工作在開關(guān)狀態(tài)。原理圖如下3.15 整體設(shè)計仿真3.2 軟件設(shè)計3.2.1 設(shè)計流程該設(shè)計的主要思路為溫度采樣、數(shù)碼管的顯示以及報 警電路的設(shè)置。流程圖如下:3.2.2 源程序:void init(void)num=0;alarm_flag=0;alarm_num=0;temp_max=36; /設(shè)置溫度上限值temp_min=0; /設(shè)置溫度下限值TMOD=0x01; /定

13、時器T0工作于方式1TH0=(65536-50000)/256; /定時器T0賦初值TL0=(65536-50000)%256;EA=1; /開總允許中斷ET0=1; /開定時器T0中斷TR0=1; /啟動定時器T0/*1us的延時(12M)延時子程序*/void delay_us(uchar x) /when crystal is 12M ,a*2+5 us , / 子程序調(diào)用要5us,while 就等于DJNZ指令while (-x); /x取值1255;/*1ms的延時(12M)延時子程序*/void delay_ms(uchar x)uchar i,j;for (i=0; ix; i+

14、)for (j=0; j200; j+)_nop_(); /一個nop約1us_nop_();/*dds18b20初始化*/void init1820(void)DQ = 1; /復(fù)位_nop_(); /稍做延時DQ = 0; /拉低數(shù)據(jù)線,準(zhǔn)備Reset OneWire Bus;delay_us(125); /延時要大于480us小于960us,延時510us,釋放總線delay_us(125);DQ = 1; /提升數(shù)據(jù)線;delay_us(15); /延時35us;ds18b20要等待15-16us15while(DQ) /等待器件信號,檢測應(yīng)答脈沖信號_nop_();delay_us(

15、60); /延時125us;DQ = 1; /提升數(shù)據(jù)線,準(zhǔn)備數(shù)據(jù)傳輸;/*寫數(shù)據(jù)的一個字節(jié),滿足寫1和些0的時隙要求*/void write1820(uchar a)uchar i;for(i=0;i= 1; /右移一位uchar read1820(void)uchar i;uchar temp=0;DQ = 1;_nop_(); /準(zhǔn)備讀;for(i=0;i= 1; /低位先發(fā);DQ = 0; /讀開始脈沖;_nop_(); /延時;16DQ = 1; /必須寫1,否則讀出來的將是不預(yù)期的數(shù)據(jù);delay_us(2); /延時9us;_nop_();if(DQ) /在12us處讀取數(shù)據(jù);t

16、emp |= 0x80;delay_us(30); /延時65us;DQ = 1; /拉高電平_nop_(); /恢復(fù)總線;return temp;void Rdtemp(void)uchar k,tmp_int;uint tp;float m=1.0, tmp_float;init1820(); /初始化DS1820display();write1820(0xcc); /跳過ROM/delay_ms(2);write1820(0x44); /溫度轉(zhuǎn)換命令/ _nop_();/ DQ=1;/ delay_ms(250); /多個1820時要延時,單個就不用/ delay_ms(250);/ d

17、elay_ms(250);init1820(); /初始化DS1820display();write1820(0xcc); /跳過ROMwrite1820(0xbe); /讀占存器命令display();Temp_L=read1820(); /溫度值低位字節(jié)(其中低4位為二進(jìn)制的小數(shù)部分)Temp_H=read1820(); /高位值高位字節(jié)(其中5位為符號位)init1820();display();tp=Temp_H*256+Temp_L;/* 正負(fù)號處理 */num=0;k=Temp_H4;if(k0)tp=(tp)+1);17Temp_L=tp%256;disp_ds18b20num+

18、=LED_CODE10;/* 正數(shù)處理 */display();tp=tp4;tmp_int=(tp&0x7f);if(tmp_int10)disp_ds18b20num+=LED_POINT_CODEtmp_int;else if(tmp_int=6)num=0;float ds18b20_float_date(uchar tmpl)uchar i,a,b,k;float m=1.0,p;p=0.0;b=0;k=(tmpl&0x0f);if( k=0 )return (p);for(i=0;i4;i+)a=(k&0x01);b=(a|b);b=(b1);18b=(b1);p=(m/b)/2)

19、;return (p);/*溫度值小數(shù)顯示部分處理函數(shù)*/void disp_float(float date)uchar g,s;uint b,q;g=(date*10); /個分位disp_ds18b20num+=LED_CODEg; /送個分位s=date*100;s=s%10; / 十分位disp_ds18b20num+=LED_CODEs; /送十分位b=date*1000;b=(b%100)%10; /百分位disp_ds18b20num+=LED_CODEb; /送百分位q=date*10000;q=(q%1000)%100)%10; /千分位disp_ds18b20num+=L

20、ED_CODEq; /送千分位/*顯示函數(shù)*/void display(void)uchar i;P2=0x01; /P2口賦初值控制數(shù)碼管的位for(i=0;i6;i+)P0=disp_ds18b20i; /數(shù)碼管段顯示delay_ms(1); /1ms延時P2=(P2255) Temp_H+; /如果低8位大于255,向高8位進(jìn)1tp=Temp_H*256+Temp_L; /將轉(zhuǎn)換的溫度放入到tp中間變量中y=tp4; /右移4位,除去小數(shù)部分if(y(temp_min)+1) /與設(shè)定的警戒下限值比較alarm_flag=1; /低于下限值elsealarm_flag=0; /在下限值之上else / 溫度為正溫度時處理tp=Temp_H*256+Temp_L; /讀取的溫度為正溫度tp=tp4; /除去小數(shù)部分y=(char)tp; /轉(zhuǎn)為符號型if(ytemp_max) /比較與設(shè)定的上限警戒值alarm_flag=1; / 大于上限警戒值elsealarm_flag=0; /小于上限警戒值/*主函數(shù)*/void main(void)ucha

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論