基于單片機體溫檢測儀系統(tǒng)的設(shè)計與實現(xiàn).doc_第1頁
基于單片機體溫檢測儀系統(tǒng)的設(shè)計與實現(xiàn).doc_第2頁
基于單片機體溫檢測儀系統(tǒng)的設(shè)計與實現(xiàn).doc_第3頁
基于單片機體溫檢測儀系統(tǒng)的設(shè)計與實現(xiàn).doc_第4頁
基于單片機體溫檢測儀系統(tǒng)的設(shè)計與實現(xiàn).doc_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.In this paper, a temperature detection system based on a single-chip microcomputer is designed to detect human body temperature, display it in digital form, and play the detected human body temperature specific value through the mode of voice playback.The system is composed of several parts: SCM, sensor, LCD, and voice module. The hardware structure is designed with the microcontroller STC89C52 as the core. It detects the human body temperature through the temperature sensor DS18B20, displays the human body temperature value on the LCD1602, and then plays the detected value through the voice module. . Part of the system software through the software keil C language program development and design, debugging.The designed electronic body temperature detector has realized temperature detection, digitization, and electronization, which is of great help to the development of future thermometers. The electronic thermometer can gradually replace mercury (toxic element) thermometers, which greatly improves the use value of thermometers, makes readings clear, and reduces Human body damage, safety and environmental protection have further improved the smart life of people.Keywords: Body temperature detector; Electronic; STC89C52 microcontroller;LCD1602目錄摘要IAbstractII目錄III1 緒論11.1 背景11.1.1 項目背景11.1.2 國內(nèi)發(fā)展?fàn)顩r11.1.3 項目研究內(nèi)容和要求22 系統(tǒng)分析與設(shè)計32.1 系統(tǒng)分析32.1.1 系統(tǒng)流程32.2 概要設(shè)計32.2.1 程序流程32.2.2 功能模塊介紹33 系統(tǒng)實現(xiàn)123.1 讀ROM地址123.2 讀取溫度133.3 顯示溫度144 測試結(jié)果164.1 測試計劃164.2 仿真結(jié)果185 總結(jié)與展望IV參考文獻(xiàn)V致謝VI.1 緒論1.1 背景 體溫是人們身體狀況的重要指標(biāo)之一。體溫的高低影響著人們的健康狀況,會引起一系列的疾病,所以在生病的時候,體溫的數(shù)值至關(guān)重要,而溫度檢測儀是人們常用的手段。1.1.1 項目背景在正常的健康狀態(tài)下,體溫是穩(wěn)定的,保持在約36.2至37.2,具體的溫度數(shù)值產(chǎn)生狀況可以區(qū)分為:低熱:37.438;中等度熱:38.139:高熱:39.141;超高熱:41以上。體溫的變化會影響人們的健康,所以檢測體溫就顯得非常重要。在現(xiàn)代發(fā)展過程中,體溫探測器是最重要的手段之一。我們經(jīng)常使用的水銀溫度計就是其中之一。然而,由于包含有毒元素和電子技術(shù)的水銀溫度計的發(fā)展,電子溫度計逐漸發(fā)展并漸漸取代水銀溫度計。最早的溫度計產(chǎn)生在16世紀(jì),由意大利發(fā)明家伽利略發(fā)明,后來伽利略的學(xué)生和其他科學(xué)家,在這個基礎(chǔ)上反復(fù)改進(jìn),華氏溫度計誕生了;華氏溫度計制成后又經(jīng)過30多年,瑞典人攝爾修斯改進(jìn)了華倫海特溫度計的刻度,他把水的沸點定為100度,把水的冰點定為0度。后來施勒默爾把兩個溫度點的數(shù)值又倒過來,就成了現(xiàn)在的百分溫度,即攝氏溫度,用表示,成為了人們常用方式。在現(xiàn)代技術(shù)的高速發(fā)展,電子體溫檢測儀逐步出現(xiàn)發(fā)展壯大,漸漸取代普通體溫計,電子體溫計由溫度傳感器,LCD顯示器,和集成電路等電子元件組成。電子體溫檢測儀可以快速準(zhǔn)確地測量一個人體溫,與傳統(tǒng)的水銀溫度計相比,電子溫度檢測儀具有讀數(shù)方便,測量時間短,精度高,記憶性好等優(yōu)點。特別是電子體溫計不含水銀,對人體和環(huán)境沒有影響,特別適合家庭,醫(yī)院等場合使用。 1.1.2 國內(nèi)發(fā)展?fàn)顩r中國的電子溫度計產(chǎn)業(yè)起源于1998年,發(fā)展速度超過30,并在一年內(nèi)超過10年。利潤率,政策壁壘和技術(shù)壁壘低一倍甚至10倍以上,吸引了大量公司進(jìn)入該行業(yè)。目前,擁有80多個電子溫度計的國產(chǎn)品牌是行業(yè)領(lǐng)先的國外品牌,如“歐姆龍”,“夏爾”,“網(wǎng)關(guān)”等。有“海爾”,“Delcon”,“Yucon”和“Hypercon”。華辰,華安,康復(fù),沖等迅速發(fā)展。未來國內(nèi)品牌擴張,試圖進(jìn)入該行業(yè)的廠商將達(dá)到50家以上。由于電子溫度計行業(yè)逐步標(biāo)準(zhǔn)化和高新類的電子產(chǎn)品的興起,電子體溫計產(chǎn)品行業(yè)進(jìn)入空前高速發(fā)展階段。常用的電子溫度計有三種類型:硬棒溫度計:廣泛應(yīng)用于家庭的溫度計,使用腋下測量和口腔測量。軟棒類型:軟頭電子體溫計可以任意彎曲,多方位,無死角,適合所有部位的測量,一般可以使用口,腋,肛三種測量方法。安撫奶嘴類型:嬰兒安撫奶嘴電子體溫計是根據(jù)寶寶的生理特點精心設(shè)計和制造的。所有部件都設(shè)計成圓弧形,曲率基于嬰兒嘴巴的形狀。硅膠奶嘴中的溫度傳感器包含一個溫度傳感器。與以往傳統(tǒng)市場的體溫計相比,它的誤差一般不超過0.1,易于讀取和攜帶,但是當(dāng)由體溫,時間和外界空氣,體內(nèi)不同部位測得的體溫和溫度差異導(dǎo)致穩(wěn)定性差。1.1.3 項目研究內(nèi)容和要求在本項目中,設(shè)計的體溫檢測儀要求便于攜帶,精度準(zhǔn)確,具有播報功能。所以在設(shè)計中選取了單片機STC89C52為核心,因為STC89C52它具有便攜性,易用性和高性能等優(yōu)點,它內(nèi)部具有存儲器4K,寬度8bit,128內(nèi)存,本設(shè)計使用它可以滿足我們所有的需求。此外還選用了溫度傳感器DS18B20為主的檢測體溫模塊,檢測體溫溫度,用LCD1602顯示體溫數(shù)值作為體溫檢測儀的顯示器,最后加以來實現(xiàn)體溫檢測到的數(shù)值播報功能。在本項目中研究的主要是體溫檢測,經(jīng)過溫度傳感器進(jìn)行溫度采集,再進(jìn)行數(shù)字轉(zhuǎn)換,通過單片機轉(zhuǎn)發(fā)給顯示模塊LCD1602,在進(jìn)行數(shù)值播報這一系列功能實現(xiàn)的過程。具體功能:1、 顯示溫度范圍 0攝氏度到85攝氏度。2、 溫度精確到小數(shù)點后一位。3、 LCD1602顯示DS18B20檢測到的溫度數(shù)值。4、 當(dāng)溫度超過一定上限的數(shù)值,會進(jìn)行溫度交警,LCD顯示“temp is too high”2 系統(tǒng)分析與設(shè)計2.1 系統(tǒng)分析 在這個設(shè)計當(dāng)中選用了單片機STC89C52作為核心,主要起主控作用,控制著整個系統(tǒng)的運行。這個體溫檢測儀系統(tǒng)采用了溫度傳感器DS18B20進(jìn)行溫度的檢測,當(dāng)傳感器檢測溫度之后,會在LCD1602上顯示相應(yīng)的溫度數(shù)值。2.1.1 系統(tǒng)流程系統(tǒng)設(shè)計流程圖如圖1-1所示。 圖2-1系統(tǒng)設(shè)計框圖2.2 概要設(shè)計2.2.1 程序流程程序流程圖如圖2-2程序流程圖所示圖2-2程序流程圖2.2.2 功能模塊介紹單片機系統(tǒng)模塊:主要由STC89C52單片機、復(fù)位電路和晶振電路三個部分組成。STC89C52單片機是ATMEL公司制造的低電壓,高性能CMOS 8位微控制器。 它采用ATMEL的高密度非易失性存取技術(shù),內(nèi)置8個字節(jié)的只讀存儲器(EPROM)和128字節(jié)內(nèi)部RAM ,k字節(jié)Flash閃速存儲器。STC89C52單片機擁有較高的性能,而且成本低,可用于各種控制領(lǐng)域,它集成了微型計算機的主要組件,包括CPU,存儲器,可編程I / O端口,定時器/計數(shù)器和串行端口。芯片參數(shù):1、工作電壓:3.3V-5.5V2、工作頻率范圍:0 -40MHz 3、8位CPU4、片集成256字節(jié)RAM。 5、4個8位的并行I/O接口:P0,P1,P2,P36、單片機下載程序直接通過P30 P31 RXD和TXD串行端口。7、具有EEPROM功能。8、2個16位定時/計數(shù)器9、5個優(yōu)先級別的5個中斷源10、定時器可以用來模擬許多異步串行端口。它的基本結(jié)構(gòu)如圖3-1所示。 圖2-3單片機基本結(jié)構(gòu)圖 電源電路:此最小系統(tǒng)中的電源供電模塊的電源可以通過計算機的USB口供給,也可使用外部穩(wěn)定的5V電源供電模塊供給。電源電路中接入了電源指示LED,圖中R2為LED的限流電阻。當(dāng)LED發(fā)亮?xí)r,這表示USB電源電路供電成功。 圖2-4電源電路圖晶振電路:電路中的C1非極性電容器和C2非極性電容器是啟動電容器。 當(dāng)12MHz晶體振蕩器工作在高頻時,它會產(chǎn)生一定的寄生電感。 為了平衡電感并產(chǎn)生諧振,可以添加兩個10-33pf的非極性電容。 單片機內(nèi)部有一個振蕩電路,我們需要將晶振電路連接到外部工作。 晶體和電容以及內(nèi)部電路組成一個振蕩電路。 只要MCU接通電源,電容就開始振蕩,晶體振蕩器工作,從而使MCU具有連續(xù)的時鐘信號。 51單片機有一個12路分頻器,所以時鐘周期為t = 1 /120000001us。 圖2-5晶振電路圖 LCD顯示模塊:LCD1602是一種用于顯示字母,數(shù)字,符號等的點陣式液晶模塊。由多個5X7或5X11點陣字符位組成,每個點字符位都可以顯示一個字符,每一位在點線之間有一個間隔,每行也有一個間隔,它會播放一個字符間距和行。間距的作用。LCD1602指顯示內(nèi)容為16X2,表示可顯示兩行,每行16個字符的LCD模塊(可顯示字符或者數(shù)字)。我們可以通過單片機的端口來控制LCD1602的數(shù)據(jù)引腳, 數(shù)據(jù)命令和使能引腳由SCM的P1.5,P1.6和P1.7端口控制。 通過遵循LCD1602通信時序控制,我們可以顯示要顯示的數(shù)據(jù),通過P2端口發(fā)送給LCD實時顯示。 圖2-6 LCD顯示電路圖LCD1602采用標(biāo)準(zhǔn)的16腳接口,其中:1:GND是電源地2:VCC連接到5V電源的正極。3:V0是LCD對比度調(diào)節(jié)端子。當(dāng)正電源連接時,對比度最弱。當(dāng)電源接地時,對比度最高。 (對比度過高,會產(chǎn)生“鬼影”,使用時可用10K電位器調(diào)節(jié)對比度)。4:RS為寄存器選擇,高電平為1時選擇數(shù)據(jù)寄存器,低電平為0時選擇指令寄存器。5:RW是讀/寫信號線。讀操作在高電平(1)下執(zhí)行,寫操作在低電平(0)下執(zhí)行。6:E(或EN)端為使能端,高電平時讀信息(1),負(fù)跳時執(zhí)行指令。714:D0D7為8位雙向數(shù)據(jù)終端。第15至第16腳:空腳或背光電源。15:針背光正極16:針背光負(fù)極。功能特點:3.3V或5V工作電壓,對比度可調(diào),包括復(fù)位電路,提供多種控制命令,如:清屏,字符閃爍,光標(biāo)閃爍,顯示移位等功能,具有80字節(jié)數(shù)據(jù)顯存DDRA內(nèi)存是192個字符發(fā)生器CGROM與5X7點陣和8個用戶可定義的5X7字符發(fā)生器CGRAM。特點應(yīng)用:微功耗,體積小,顯示內(nèi)容豐富,超薄輕便,常用于袖珍儀器和低功耗應(yīng)用。LCD1602指令、功能令、指令碼如下圖所示: 圖2-7 LCD1602指令集圖測溫模塊:由DS18B20傳感器組成,單總線結(jié)構(gòu),DS18B20的DQ與單片機P3口連接,通過上拉電阻接電源,只要發(fā)送DS18B20傳感器相應(yīng)的ROM地址,就能訪問該器件。本系統(tǒng)通過DS18B20傳感器檢測到人體溫度,再調(diào)用單片機中的讀取DS18B20溫度的程序:向總線放啟動溫度轉(zhuǎn)換命令,啟動連接總線上的DS18B20模塊溫度裝換根據(jù)傳感器的64位ROM地址,發(fā)送到總線匹配對應(yīng)的傳感器模塊向總線發(fā)讀取暫存器命令讀DS18B20模塊轉(zhuǎn)換的溫度值。 圖2-8 測溫模塊電路圖DS18B20傳感器的工作原理:DS18B20的讀寫時序和溫度測量原理與DS1820相同,但由于溫差取得的位數(shù)不同,溫度轉(zhuǎn)換延時時間從2s到750ms不等。 DS18B20溫度測量原理:低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率的脈沖信號給計數(shù)器1。高溫度系數(shù)晶體振蕩器隨著溫度顯著地改變其振蕩速率,并且所產(chǎn)生的信號用作計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器預(yù)設(shè)為對應(yīng)于-55C的基準(zhǔn)值。計數(shù)器1對由低溫度系數(shù)晶體振蕩器產(chǎn)生的脈沖信號進(jìn)行倒計數(shù)。當(dāng)計數(shù)器1的預(yù)置值減小到0時,溫度寄存器值將增加1,計數(shù)器1的預(yù)置再次被加載,并且計數(shù)器1重新啟動。對由低溫度系數(shù)晶體振蕩器產(chǎn)生的脈沖信號進(jìn)行計數(shù),并且重復(fù)該周期直到計數(shù)器2達(dá)到0.溫度寄存器值的累積被停止。此時,溫度寄存器中的值是測量溫度。斜率累加器用于補償和校正溫度測量過程中的非線性,其輸出用于校正計數(shù)器的預(yù)設(shè)值。技術(shù)性能:1、獨特的單線接口模式,DS18B20只需要一條端口線即可連接微處理器,實現(xiàn)微處理器與DS18B20的雙向通信。2、溫度范圍-55C+ 125C,固有溫度誤差(注意,不是分辨率,以前出錯了)1C。3、支持多點聯(lián)網(wǎng)功能,多個DS18B20可以并行連接在三根線上,最多只能并聯(lián)8根,實現(xiàn)多點溫度測量,如果數(shù)量過多,會使電源電源電壓過低,導(dǎo)致信號傳輸不穩(wěn)定。4、電源:3.05.5V / DC(數(shù)據(jù)線寄生供電)5、不需要使用任何外部組件6、測量結(jié)果以912位串行傳輸7、不銹鋼保護(hù)管直徑68、適用于DN1525,DN40DN250各種傳媒行業(yè)管道和狹小空間設(shè)備的測溫9、標(biāo)準(zhǔn)安裝螺紋M10X1,M12X1.5,G1 / 2“可選10、PVC電纜直接出線或德式球接線盒出線,方便與其他電器設(shè)備連接。接線方法:面對傳感器平坦的一面,左正右負(fù),一旦逆轉(zhuǎn),它們會立即變熱,并可能燃燒! 同時,反過來也是傳感器始終顯示85C的原因。 在實際操作過程中,正負(fù)旋轉(zhuǎn)反轉(zhuǎn),傳感器立即發(fā)熱,液晶屏不顯示讀數(shù),正負(fù)極端顯示85C。 另外,如果使用51單片機,中間引腳必須連接4.7K-10K的上拉電阻,否則,由于高電平不能正常輸入/輸出,或者在電源顯示85C后立即或 使用幾個月后溫度升至85C并正常。特點:獨特的第一線接口只需要一個端口通信,簡化了分布式溫度檢測應(yīng)用。不需要外部組件來提供數(shù)據(jù)總線電力。電壓范圍為3.0 V至5.5 V.不需要備用電源。測量溫度范圍為-55C至+ 125C。華氏度相當(dāng)于-67C至257F -10C至+85C0.5C溫度傳感器可編程分辨率為9至12位,溫度轉(zhuǎn)換為12位數(shù)字格式,最大可達(dá)750毫秒,用戶可定義的非易失性溫度報警設(shè)置,應(yīng)用包括溫度控制,工業(yè)系統(tǒng),消費類電子產(chǎn)品溫度計,敏感系統(tǒng)。描述DS18B20的數(shù)字溫度計提供9到12位(可編程設(shè)備溫度讀數(shù))。由于DS18B20是一種端口通信,中央微處理器只有一個與DS18B20的端口連接。對于讀寫和溫度轉(zhuǎn)換,可以從數(shù)據(jù)線本身獲得能量,無需外部電源。由于每個DS18B20包含一個唯一的序列號,所以同一條總線上可以同時存在多個DS18B20。這使得溫度傳感器可以放置在許多不同的地方。它有許多用途,包括空調(diào)環(huán)境控制,建筑物中溫度設(shè)備或機器的傳感,以及過程監(jiān)控和控制。DS18B20使用單線通信接口,由于第一線通信接口,必須先完成ROM設(shè)置,否則存儲器和控制功能將不可用。主要提供以下功能命令之一:1.讀取ROM 2. ROM匹配3.搜索ROM 4.跳過ROM 5.報警檢查。這些指令在沒有設(shè)備的64位平版ROM序列號上運行??梢赃x擇一條線上的多個設(shè)備來選擇一個設(shè)備。同時,總線可以知道總線上有多少設(shè)備以及總線上有哪些設(shè)備。如果指令成功完成DS18B20溫度測量,則數(shù)據(jù)將存儲在DS18B20的存儲器中??刂乒δ苤甘綝S18B20執(zhí)行溫度測量。測量結(jié)果將被放入DS18B20的存儲器中,并可由存儲器功能的指令器讀取,讀取內(nèi)容的片上存儲器。溫度報警觸發(fā)TH和TL有一個字節(jié)的EEPROM數(shù)據(jù)。如果DS18B20不使用警報檢查指令,則這些寄存器可用于一般用戶存儲目的。片內(nèi)還包含配置字節(jié)以理想地解決溫度數(shù)字轉(zhuǎn)換問題。寫入TH,TL指令和配置字節(jié)是使用存儲器功能指令完成的。通過寄存器讀寄存器。所有數(shù)據(jù)的讀寫從最低位開始。部件描述:DS18B20的存儲器由暫存RAM和電可擦除RAM組成,電可擦除RAM又包括溫度觸發(fā)器TH和TL以及配置寄存器。內(nèi)存可以完全確定第一線端口的通信,用寫入寄存器的命令將數(shù)字寫入寄存器,然后讀取寄存器的命令也可用于確認(rèn)這些數(shù)字。當(dāng)進(jìn)行確認(rèn)時,可以使用命令復(fù)制寄存器將這些數(shù)字傳送到電可擦除RAM中。當(dāng)寄存器中的數(shù)字被修改時,此過程確保數(shù)字完整性。高速緩沖存儲器RAM由8個字節(jié)的存儲器組成;讀取寄存器的命令可以讀取第九個字節(jié)。該字節(jié)用于驗證前八個字節(jié)。64位光刻ROM,其前8位是DS18B20自己的代碼,接下來的48位是連續(xù)的數(shù)字代碼,最后8位是CRC校驗的前56位。 64位光刻ROM還包含五個ROM功能命令:讀取ROM,匹配ROM,跳轉(zhuǎn)ROM,查找ROM和報警查找。外部電源連接:DS18B20可以使用外部電源VDD或內(nèi)部寄生電源。當(dāng)VDD端口連接到3.0V至5.5V的電壓時,使用外部電源;當(dāng)VDD端口接地時使用內(nèi)部寄生電源。無論是內(nèi)部寄生電源還是外部電源,I / O端口線都必須連接一個約5K的上拉電阻。配置寄存器配置有不同的位數(shù),以確定溫度和轉(zhuǎn)換次數(shù)。可以看出,R1和R0是溫度決定位,可以通過R1和R0的不同組合來配置為9位,10位,11位和12位溫度顯示。這樣,可以知道對應(yīng)于不同溫度轉(zhuǎn)換位的轉(zhuǎn)換時間。四種配置的分辨率分別為0.5,0.25,0.125和0.0625,出貨時配置為12位。溫度讀數(shù):DS18B20配置為12位。讀取溫度時,讀取16位數(shù)據(jù)。前5位是符號位。當(dāng)前5位為1時,讀取溫度為負(fù)值;目前的5位。在0時,讀取溫度為正值。當(dāng)溫度為正值時,讀取方法為:將十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。當(dāng)溫度為負(fù)值時,讀數(shù)方法為:將16加到16的倒數(shù),然后轉(zhuǎn)換為10進(jìn)制。例:0550H = +85 度(0*160+5*161+5*162+0*163=1360;1360*0.0625=85),F(xiàn)C90H = -55 度。ROM指令表如下所示:圖2-9 ROM指令表圖RAM指令表: 圖2-10 RAM指令表圖時序:使用時間間隙來讀寫 DSl8B20 的數(shù)據(jù)位和寫命令 (1)初始化時序見圖 2.11 總線 在to 時段發(fā)送一復(fù)位脈沖(最短為 480us 的低電平信號) 接著在 tl 時段釋放總線并進(jìn)入接收狀態(tài) DSl8B20 在檢測到總線的上升沿之后 等待 15-60us 接著 DS18B20 在 t2 時段發(fā)出存在脈沖( 60-240 us) 如圖中虛線所示。 圖2-11 初始化時序(2)寫時間隙當(dāng)總線 t0 時段從高電平到低電平時,就產(chǎn)生寫時間隙,見圖 2 -12和 圖 2-13,從 t0時段開始在15us 之內(nèi)應(yīng)將所需寫的位送到總線上 DSl8B20 在 t 后 15-60us 間對總線采樣,若低電平 寫入的位是 0 。見圖 2-12,若高電平寫入的是 1 ,見圖 2-13連續(xù)寫 2 位間的間隙應(yīng)大于 1us。 圖2-12 寫0時序 圖2-13 寫1時序(3)讀時間隙 見圖 2-13主機總線 to 時段從高拉至低電平時 總線只須保持低電平 l 7us 之后在 t1 時段將總線拉高 產(chǎn)生讀時間隙 讀時間隙在 t1 時段后 t 2 時段前有效 t z 距 to 為 15us 也就是說 t z 時段前主機必須完成讀位 并在 t o 后的 60 us 一 120 us 內(nèi)釋放總線。 圖2-14 讀時序 讀取溫度過程:調(diào)用初使化子程序-送入跳過 ROM 命令(0xcc)-送入溫度轉(zhuǎn)換命令(0x44)-溫度轉(zhuǎn)換,再次初使化 ds18B20-送入跳過 ROM 命令(0xcc)-送入讀溫度暫存器命令(0xbe)-讀出溫度值低字節(jié)-讀出溫度值高字節(jié)。報警模塊:當(dāng)檢測到的體溫數(shù)值超過37攝氏度時,系統(tǒng)會進(jìn)行報警顯示,LCD1602進(jìn)行報警提示,LCD第二行會顯示“temp is too high”。 3 系統(tǒng)實現(xiàn)3.1 讀ROM地址 讀ROM地址程序要把DS18B20模塊連接到單總線上,并把當(dāng)前DS18B20模塊的ROM地址讀?。哼^程如下,首先計算存儲當(dāng)前DS18B20模塊ROM地址的存儲單元的偏移地址,然后初始化DS18B20,發(fā)送和讀取ROM命令,并將ROM地址讀入內(nèi)存位置。讀ROM地址部分程序:void read_ROM() uchar j; j = NUM1*8; DS18B20_init(); write_byte(0x33); ROMj = read_byte();圖3-1 ROM讀取地址程序的流程圖3.2 讀取溫度讀取DS18B20溫度時,首先向總線放啟動溫度轉(zhuǎn)換命令,啟動連接總線上的DS18B20模塊溫度裝換;再根據(jù)傳感器的64位ROM地址,發(fā)送到總線匹配對應(yīng)的傳感器模塊;最后向總線發(fā)讀取暫存器命令讀DS18B20模塊轉(zhuǎn)換的溫度值。讀取溫度部分程序:void read_temp() DS18B20_init();write_byte(0xcc); write_byte(0x44); delay(400);DS18B20_init();write_byte(0xcc);write_byte(0xbe);DATA_L = read_byte();DATA_H = read_byte(); temp1=DATA_H*256 + DATA_L; temp=temp1*0.0625;temp2=temp*10;圖3-2 DS18B20讀取溫度程序的流程圖3.3 顯示溫度 顯示溫度傳感器讀出的溫度值,DS18B20傳感器的溫度值是12位,存放在2個字節(jié)中,其中高字節(jié)的高5位為符號位,如果溫度值是正數(shù),則符號位0,如果溫度值是負(fù)數(shù),則符號位為1。在顯示溫度程序時,首先根據(jù)高位字節(jié)的高5位確定是正數(shù)或者負(fù)數(shù),并提取高位字節(jié)的百位,十位和十位數(shù)字,并將其轉(zhuǎn)換為字符代碼并將其放入相應(yīng)的緩沖區(qū);將其內(nèi)容顯示在液晶監(jiān)視器上。顯示溫度部分程序:void disp_temp() uchar k;wc51r(0x80); LCD1_line10 =(temp2%100)%10+0x30;LCD1_line7 = (temp2/100)+0x30; LCD1_line8 = (temp2%100)/10+0x30; LCD1_line9 = .;LCD1_line12 = ;LCD1_line13 = C;for(k=0;k 370) wc51r(0xc0); for(k=0;k16;k+) wc51ddr(LCD2_linek); delay(2); else wc51r(0xc0); for(k=0;k“Options” - “Output”HEX-80中選擇HEX Format列,然后勾選Create HEX File列。如下圖所示: 圖4-2 keil配置圖接下來我們把編譯生成的hex文件,下載到仿真軟件中的模擬單片機,進(jìn)行仿真測試。Proteus軟件是英國Lab Center Electronics公司發(fā)布的EDA工具軟件(該軟件是廣州飛馬電子科技有限公司的總代理)。它不僅具有其他EDA工具軟件的仿真功能,而且還可以仿真MCU和外圍設(shè)備。它是模擬微控制器和外圍設(shè)備的更好工具。盡管目前國內(nèi)的推廣工作剛剛起步,但單片機愛好者,從事單片機教學(xué)的教師以及致力于單片機開發(fā)和應(yīng)用的科技工作者對此表示贊賞。Proteus是英國著名的EDA工具(仿真軟件)。從原理圖布局和代碼調(diào)試到單片機和外圍電路的協(xié)同仿真,一鍵切換到PCB設(shè)計,真正實現(xiàn)了從概念到產(chǎn)品的完整設(shè)計。它是世界上唯一將電路仿真軟件,PCB設(shè)計軟件和虛擬模型仿真軟件相結(jié)合的設(shè)計平臺。該處理器型號支持8051,HC11,PIC10 / 12/16/18/24/30 / DsPIC33,AVR,ARM,8086和MSP430等,2010年又增加了Cortex和DSP系列處理器,并繼續(xù)增加其他系列處理器模型。在編譯方面,它也支持許多編譯器,如IAR,keil和MPLAB。特征:1.原則布局2. PCB自動或手動布線3. SPICE電路仿真革命性的特點:1.交互式電路仿真用戶甚至可以使用RAM,ROM,鍵盤,電

溫馨提示

  • 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

提交評論