智能電子體溫計論文_第1頁
智能電子體溫計論文_第2頁
智能電子體溫計論文_第3頁
智能電子體溫計論文_第4頁
智能電子體溫計論文_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、智能體溫計 本智能體溫計采用AT89S52作為核心器件實現(xiàn)對系統(tǒng)的自動控制,采用雙單片機串行處理結(jié)構(gòu)。外界溫度經(jīng)AD590集成溫度傳感器采集,溫度變化轉(zhuǎn)換為線性電壓信號,再經(jīng)由OP07構(gòu)成高精度低溫漂的放大電路處理后,作為ADC0809的模擬輸入信號,由ADC0809完成AD轉(zhuǎn)換,得到8位的數(shù)字信號送入單片機1(AT89S52)。單片機1將采集到溫度值在LED數(shù)碼管上顯示出來,也通過串口通信將溫度信號傳到單片2(AT89S52)。此外溫度預(yù)制,報警電路模塊功能也由單片機1完成。單片機2完成溫度值的語音播放功能。通過系統(tǒng)的設(shè)計與實現(xiàn)說明本設(shè)計方案切實可以,能夠完成題目所要求的基本功能部分,并留有

2、相應(yīng)的接口,為完成擴展功能打下基礎(chǔ)。關(guān)鍵字:單片機 AD590 ADC0809 ISD2560 一、主要模塊的方案論證與比較1、溫度傳感器的選擇采用集成溫度傳感器。集成溫度傳感器一般且有具有線性好、精度高、靈敏度高、體積小、使用方便等優(yōu)點。根據(jù)實驗室現(xiàn)有材料可選取AD590。AD590的測溫范圍為-55+150,能滿足本設(shè)計的050度測量要求。根據(jù)相關(guān)技術(shù)資料:AD590線性電流輸出為1A/K,正比于絕對溫度;AD590的電源電壓范圍為4V30V,并可承受44V正向電壓和20V反向電壓,因而器件反接也不會被損壞。該方案能完全滿足此設(shè)計的要求,故采用此方案。2、AD轉(zhuǎn)換器的選擇選用ADC0809

3、。ADC0809數(shù)字量是8位,轉(zhuǎn)換時間為100s,輸入模擬電壓為單極性的05V。由于本設(shè)計的要求精度不是很高,ADC0809可以達到要求,故選用此方案。3、語音提示模塊 采用ISD2560語音錄放集成電路。這是一種永久記憶型語音錄放電路,錄音時間為60S,可重復(fù)錄放10萬次。該芯片采用多電平直接模擬量存儲專利技術(shù),每個采樣值可直接存儲在片內(nèi)單個EEPROM單元中,因此能夠非常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲。此外,ISD2560還省去了A/D和D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時鐘、定時器、采樣時鐘、濾波器、自動增益控制、邏輯控制、模擬收發(fā)器、解碼器和480K 字節(jié)的

4、EEPROM。ISD2560內(nèi)部EEPROM存儲單元均勻分為600行,有600個地址單元,每個地址單元指向其中一行,每一個地址單元的地址分辨率為100ms 。ISD2560可不分段,也可按最小段長為單位來任意組合分段。因此,選擇方案二。 二、總系統(tǒng)設(shè)計方案1、總系統(tǒng)方案設(shè)計描述: 根據(jù)題目要求,將系統(tǒng)分為若干模塊,以單片機為核心,完成多項功能。圖1 系統(tǒng)框圖系統(tǒng)框圖如圖1,AD590把采集的外部溫度信號轉(zhuǎn)換成相應(yīng)的電壓,再經(jīng)過OP07運放放大后作為ADC0809的模擬輸入信號,ADC0809將此模擬信號轉(zhuǎn)換成數(shù)字信號,通過并口送入到單片機1。單片機1把這些信號處理后通過LED數(shù)碼管顯示出來。同

5、時單片機1還處理按鍵、報警模塊。單片機1把溫度值通過串行通信傳送給單片機2,控制語音芯片報出相對應(yīng)的溫度值。2、系統(tǒng)電路原理圖圖2 系統(tǒng)電路原理圖如圖2所示,該電路主要由電源電路,溫度檢測、放大電路,AD轉(zhuǎn)換電路,雙單片機串行通信電路,按鍵輸入、報警電路,數(shù)碼管掃描顯示電路以及語音芯片電路組成。三、主要電路設(shè)計與參數(shù)計算1、電源電路模塊圖3 電源電路圖如圖3所示,220V交流電經(jīng)變壓器市降壓、橋式整流、電容濾波后由7812、7805、7905三端集成穩(wěn)壓管分別得到12V、+5V、-5V電壓。給整個電路供電。2、溫度檢測、放大模塊圖4 AD590溫度檢測、放大電路圖換成DS18B20溫度模塊怎么

6、改如圖4所示,溫度檢測、放大電路主要器件的作用:OP1:電壓跟隨器;OP2:電壓跟隨器;OP3:差分放大電路;AD590:溫度傳感器;SVR:零位調(diào)整。 (1)AD590簡介AD590是電流輸出型的半導(dǎo)體溫度感測組件,主要特性如下:1.具有線性輸出電流。2.寬廣的操作溫度范圍(-55150)。3.寬廣的工作電壓范圍(+4V+30V)。4.良好的隔離性。AD590的包裝與等效電路如圖4所示,是TO-52型金屬外殼包裝。他是兩端子的半導(dǎo)體溫度感測組件,另有一端子是外殼接腳,可接地以減少噪聲干擾。AD590如同一個隨溫度而改變輸出電流的定電流源,輸出電流與外殼的開氏(K)溫度成正比。開氏溫度與攝氏溫

7、度的單位相等,0等于273.2K,100等于373.2K。當溫度為0時,AD590的輸出電流是273.2A。而溫度為100時,輸出電流是373.2A。溫度每升高1,輸出電流增加1A,及溫度系數(shù)為1A/。圖5 AD590包裝與等效電路圖(2)、圖2溫度檢測、放大電路原理AD590當溫度增加1時,其輸出電流會增加1A。即AD590的溫度系數(shù)為1A/。所以在T()時的電流I1(T)為,而溫度每變化1時,V2的電壓變化是為,表示溫度每增加1,V2會增加10mV。在0時V2就已經(jīng)有電壓存在,其值為,則T()時,。如圖3所示,OP3組成差動放大器,電壓增益為。零位調(diào)整SVR1則用于抵補0的電壓值,由差動放

8、大器的公式可得知,若調(diào)整SVR1使V1的電壓為2.732V,則0時,差動放大器的輸出VO為0V。也就是說,若溫度是在0至50之間,則差動放大器的輸出電壓是在0V至5V之間,亦即每0.1V的輸出代表溫度上升1。與設(shè)計要求相符合。3、A/D轉(zhuǎn)換模塊 如圖6:ADC0809把從放大電路傳送過來的模擬信號轉(zhuǎn)變成數(shù)字信號,并行傳送給單片機的P0口,讓單片機處理。 圖6 A/D轉(zhuǎn)換電路圖4、溫度設(shè)制、顯示及報警電路模塊如圖7:通過按鍵可以事先設(shè)定報警溫度值,當顯示的溫度值超過設(shè)定的溫度值時,單片機就會從INT0腳發(fā)出一連串脈沖,驅(qū)動蜂鳴器發(fā)出報警聲。圖7 溫度設(shè)制、顯示及報警電路圖加上LED報警,紅色表示

9、高溫,綠色表示正常,黃色表示低溫5、串行通信模塊如圖8所示,單片機1把溫度值發(fā)送數(shù)據(jù)到單片機2,單片機2接收數(shù)據(jù)并控制語音芯片報出當前的溫度值。圖8 串行通信電路圖6、語音播放模塊 語音播放模塊如圖9所示。主要由單片機AT89S51與語音芯片ISD2560組成。圖9 錄音、放音電路圖(1)錄音、放音簡介如圖9所示,首先通過麥克風(fēng)向語音芯片ISD2560錄入“0,1,2,3,4,5,6,7,8,9,10,點,度”等音符。當單片機2接收到單片機串行發(fā)送過來的溫度值時,就會自動地去尋找相對應(yīng)音符的地址,并把這些音符通過揚聲器播放出來。(2)ISD2560簡介ISD2560為28腳的DIP器件封裝,如

10、圖10.圖10 ISD2560管腳圖各引腳功能如下: 17:A0/M0A6/M6地址/模式選擇; 810: A7A9輸入地址線 ;11: AUX IN輔助輸入 ;12、13 :VSSD、VSSA數(shù)字地和模擬地 14、15 :SP 、SP-揚聲器輸出 .16 :VCCA模擬信號電源正極 17、18:M IC、MIC REF 麥克風(fēng)輸入端和輸入?yún)⒖级?19 、AGC自動增益控制 20、21 ANA IN、ANA OUT 模擬信號輸入和輸出 22、 OUF 溢出 23 、CE 片選(低電平允許芯片工作)24 、PD 芯片低功耗狀態(tài)控制 25 、EOM 錄放音結(jié)束信號輸出 26、 XCLK 外部時鐘

11、27、P/R 錄/放控制選擇 28 、VCCD 數(shù)字信號電源正極(3)芯片工作原理 ISD2560有10個地址輸入端A0A9,錄址能力可達1024位,地址空間為01023。其分配情況是:地址0299作為分段用,地址600767未使用,地址7681023為工作模式選擇(即A8、A9均為高)。2500系列的地址線有兩種用途,一是作為工作模式控制,二是作為分段錄放音的起始段地址。當最高位地址(MSB)A8、A9都為高電平時(即地址7681023),地址端A0A6就作為工作模式選擇端M0M6,對應(yīng)7種工作模式。當A8、A9任一位為低或都為低時(即地址0599),只要在分段錄/放音操作前(不少于300n

12、s)給地址A0A9賦值,操作就從該地址開始。 ISD2560將480K的EEPROM分為600個信息段,每段800個字節(jié)。作為一個整體單位進行尋址和控制,應(yīng)給每個信息段分配一個供外部控制的地址,而不是對每個字節(jié)進行尋址,否則至少需要19個地址端口。這樣,大大減少了信息檢索所需要的地址線。對較長的語音信號可以跨越多個信息段進行錄音,不受內(nèi)部存儲信息段的限制,且內(nèi)部的信息段址會自動增加。在每個語音段的尾部自動增加一個結(jié)束標志EOM,組合放音時,通過檢測EOM來控制各語音段的結(jié)束和下一段的開始。 每個信息段的錄放音時間等于總時間除以600。如ISD2560的總時間為60s,則每個信息段的錄放音時間為

13、100ms;ISD25120的總時間為120s,則每個信息段的時間為200ms。因此可以利用該時間長度作為一個段地址,通過單片機定時器的計時平行地映射信息段的地址,從而得到每段錄音的起始地址。這樣,就需要設(shè)置一個地址計數(shù)器。一般錄音從0地址開始,首先通過CPU將它賦給A0A9,然后通過單片機控制ISD啟動錄音,同時啟動單片機的定時器開始計時,每到一個信息段的時間,就給地址計數(shù)加1。當單片機停止控制ISD錄音時,同時停止定時器計時。此時地址計數(shù)器的值即為該段語音的未地址,加1即為下一段語音的首地址,并將它存在EEPROM中,為下一將放音提供的地址信息。通過CPU將該地址賦給A0A9,即可錄制下一

14、段語音。依次下去,即可在錄制完所有語音段的同時得到各段的起始地址。如果不是從0地址開始的語音段,只需將初始地址賦給A0A9,加上地址計數(shù)器的值,即可得到語音段的末地址。這里不用同時保存各語音段的起始地址和結(jié)束地址,因為各個段是相鄰的,前一段的末地址加1即是本段的起始地址,且每個語音段的結(jié)尾均有EOM標志,并可發(fā)出中斷。放音時利用它和保存在EEPROM中各語音段的起始地址即可按任意順序組合各個語音段。 (4)硬件電路設(shè)計 ISD器件選用錄音時間為60s的ISD2560器件,以單片機為處理機,外接控制每個語音段錄音開始與停止按鍵,外部存儲器EEPROM用于保存每個語音首地址。ISD的外圍電路及其與

15、單片機連接的硬件電路如圖9所示。ISD2560與AT89S52的接口部分包含輸入地址線A0A9、片選CE(CE=0選中ISD芯片)、芯片低功耗狀態(tài)控制PD、錄放音控制選擇P/R(P/R=0為錄音;P/R=1為放音)、錄放音結(jié)束信號輸出EOM,將它作為AT89S51外部中斷0的輸入信號,放音時通過它告知本語音段結(jié)束,便于單片機立即播放另一個語音段。 (5)本方法的特點能進行在系統(tǒng)現(xiàn)場錄音,隨錄隨放,修改語音方便。 修改錄音內(nèi)容時,可以從其中任意一段開始,修改其后的所有錄音內(nèi)容,不必從第一段開始全部修改。這對一些需要廠家固定一些語音段的系統(tǒng)很有好處,將固定的語音段放置在前面的段落中,允許用戶錄制的

16、放在后面,用戶修改錄音內(nèi)容時只需修改后面的語音段即可,不影響廠家錄制的語音。分段靈活。單片ISD2560可分1600個段,若多片級聯(lián)還可更多;各個錄音段的長度任意,只要總錄音時間在所用器件的總時間之內(nèi)即可。四、系統(tǒng)軟件設(shè)計1、系統(tǒng)程序流程圖 圖11 單片機1程序主流程圖 圖12 單片機2程序主流程圖如圖11:單片機1為主機,負責溫度顯示、按鍵掃描、BCD碼轉(zhuǎn)換、串行發(fā)送數(shù)據(jù)給單片機2。以定時器定時1ms,每定時100次即1秒鐘就啟動A/D轉(zhuǎn)換、BCD碼轉(zhuǎn)換,串行發(fā)送2進制數(shù)給單片機2。如圖12、13所示:單片機2為從機,只負責接收數(shù)據(jù)并播報溫度,以T0定時器定時,結(jié)合延時程序定時1分鐘,使每1

17、分鐘更新一次語音音素地址,即每1分鐘更新一次溫度值 ,并在中斷程序處理過程度中報一次溫度。圖13 單片機2的T0中斷程序流程圖五、系統(tǒng)測試1、硬件測試 (1)單元模塊的測試(A)電源測試:用數(shù)字萬用表電壓檔測量各三端穩(wěn)壓管輸出的電壓值是否正常。測試相關(guān)測試點,三路電壓正常。電源設(shè)計成功。 (B) 溫度采集模塊的測試:調(diào)節(jié)溫度變化,測試點的電壓值是否有相對應(yīng)的改變。當溫度變化時,測試點的電壓與溫度之間的線性關(guān)系比較好,如表1所示,達到設(shè)計要求。(C)AD轉(zhuǎn)換模塊的測試:當輸入為0V和5V以及中間若干電壓輸入時,測試A/D轉(zhuǎn)換是否正常。測試發(fā)現(xiàn)當輸入為0V時,ADC0809的輸出為00H,為+5V

18、時為0FFH,當輸入為2.5V時,輸出為0EFH,測試結(jié)果表明AD轉(zhuǎn)換的功能完全實現(xiàn)。(D)語音播放模快的測試:通過撥碼開關(guān)人工給語音芯片選地址,測試不同的地址是否有不同的發(fā)音,以檢驗語音是否正確錄入及能否正常播放。根據(jù)設(shè)定,將12個語音信號分別放到指定的行地址上,當按相應(yīng)的行地址撥開關(guān)給ISD2560時,能夠正常播放設(shè)定的12個語音,說明語音芯片的錄用存貯工作成功。接入系統(tǒng),編程輸出相應(yīng)的行地址,ISD2560能夠正常播放各個語音,說明語音播放??斓挠布O(shè)計可行。(2)系統(tǒng)整體測試測試方法以水溫代替人的體溫,用一根水銀溫度計與所制作的體溫計探頭(捆綁)同時接觸被測熱水的同一點。(A)準備一杯

19、0攝氏度的冰水混合物和一杯熱水。從0度開始記錄測試點的電壓值與溫度計對比較。記完一個數(shù)后,往杯中加熱水,這樣,每測一次,記錄一次數(shù)據(jù),再加一次熱水,這樣使水溫漸漸升高,一直測到水溫為50攝氏度。測試結(jié)果如表1所示,說明數(shù)碼管顯示的數(shù)值是否與測試點所測值在誤差允許范圍內(nèi)是成歸一化關(guān)系的。(B)檢測水溫高于50攝氏度時測試點的電壓值??词欠駷?V。結(jié)果顯示為+5V,說明保護電路可行。2、軟件測試將各功能子程序進行KAIL C系統(tǒng)進行軟件仿真,全部通過,再進行硬件仿真,也能全部實現(xiàn)所要求實現(xiàn)的功能。 (1)數(shù)碼管顯示的測試:把放大器的輸出連接到ADC0809的輸入端,ADC0809與單片機相連接,觀

20、察數(shù)碼管顯示的數(shù)值是否與測試點所測值成歸一化關(guān)系。(2)雙機串行通信的測試:從主機發(fā)送一個8位的二進制數(shù),用示波器觀察從機是否接收到。3、硬件與軟件的聯(lián)機測試根據(jù)前面的測試,說明系統(tǒng)設(shè)計的軟、硬件設(shè)計基本取得成功。將把程序經(jīng)編譯、下載到相應(yīng)的AT89S51芯片中,構(gòu)建電路測試,比較數(shù)碼管顯示的數(shù)值與溫度計的值和測試點的值。整體測試結(jié)果如表1所示。六、測試數(shù)據(jù)及實驗結(jié)果 1 測試數(shù)據(jù)按照前述的測試方法,取得到測試結(jié)果如表1所示。如表1 數(shù)碼顯示與測試點電壓隨溫度變化的關(guān)系溫度值(攝氏度) 數(shù)碼管顯示值測試點電壓值(V)000.00.010.010.01.00119.019.01.90238.23

21、8.23.82148.048.04.80260.550.05.0012 測試結(jié)果分析根據(jù)上述測試結(jié)果,此系統(tǒng)的設(shè)計基本取得成功。智能體溫計在測試溫度方面有一定的成效,測試誤差較小,顯示的誤差與實際的溫度值誤差在內(nèi),在功能上達到了賽題的要求。3 心得與體會通過本次設(shè)計,深深感到理論與實踐之間的差距。在學(xué)習(xí)單片課程時,很多知識點在理論完全理解了,但到具體的電路設(shè)計與實現(xiàn)中,會出現(xiàn)很多一時無法理解的現(xiàn)象,要通過不斷的通過強化自身的實踐動手能力的培養(yǎng),才能用理論來指導(dǎo)實踐,通過實踐來進一步深入理解理論。七 結(jié)束語 本設(shè)計完成了以下功能:(1)溫度信號的采集與歸一化處理;(2)AD轉(zhuǎn)換;(3)溫度值的顯

22、示,顯示的誤差與實際的溫度值誤差在內(nèi);(4)語音播報溫度與聲音報警功能。參考文獻 1 全國大學(xué)生電子設(shè)計競賽組委會.第五屆全國大學(xué)生電子設(shè)計競獲獎作品選編.北京:北京理工大學(xué)出版社,2003年第1版.2 王港元.電工電子實踐指導(dǎo).南昌:江西科學(xué)技術(shù)出版社.2005.03第一版3 謝自美.電子線路設(shè)計·實驗·測試.武漢:華中科技大學(xué)出版社.2000.5第二版.4 胡漢才.單片機原理及系統(tǒng)設(shè)計. 北京:清華大學(xué)出版社。2001.01第一版.5 由集成溫度傳感器AD590構(gòu)成的多溫度測試系統(tǒng).北京:電子技術(shù)應(yīng)用.1998年第6期.程序:#include <reg52.h&g

23、t;#include <absacc.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar code dis_code10=0xc0,0xf9,0xa4,0xb0,/ 0, 1, 2, 30x99,0x92,0x82,0xf8,0x80,0x90; / 4, 5, 6, 7, 8, 9, off uchar data set_data3=0x00,0x07,0x03; /預(yù)設(shè)37.0度uchar data ad_data; /AD轉(zhuǎn)換結(jié)果uchar data dis

24、_buf3=0x00,0x00,0x00; / 顯示緩沖區(qū)uchar data bcd_buf3=0x00,0x00,0x00; /十進制BCD碼轉(zhuǎn)換存放區(qū)uchar data TIMER0_NUM;bit TIMER0_flag;bit data set_flag=0;sbit ALE=P24;sbit OE=P25;sbit START=P26;sbit EOC=P27;sbit P30=P30;sbit select0=P37;sbit select1=P36;sbit select2=P35;sbit K1=P20;sbit K2=P21;sbit K3=P22;sbit K4=P23

25、;sbit bep=P33;sbit SET_IND=P34;sbit P17=P17; /小數(shù)點uint data temp;/*/*函數(shù)聲明/*/void delay1ms(uchar t); void adc(void);void BCD(void);void keyscan(void);void send_str(void);void beep(void);void display(void);/*/*按鍵蜂鳴函數(shù)/*/void beep2(void) uchar data j,k; for(j=26;j>0;j-) for(k=254;k>0;k-); bep=!bep;

26、 bep=1; /*/*蜂鳴報警/*/void beep(void) uchar data j,k; for(j=100;j>0;j-) for(k=254;k>0;k-) bep=0; bep=1; /關(guān)蜂鳴器 /*/*延時1ms函數(shù)/*/void delay1ms(uchar t) uchar j,k; for(j=0;j<t;j+) for(k=0;k<120;k+);/*/*AD轉(zhuǎn)換函數(shù)/*/void adc(void) ALE=1; _nop_(); _nop_(); ALE=0; START=1; _nop_(); _nop_(); START=0; _no

27、p_(); _nop_(); _nop_(); _nop_(); while(EOC=0); /等待轉(zhuǎn)換結(jié)束 OE=1; ad_data=P0; /讀入轉(zhuǎn)換數(shù)據(jù) OE=0;/*/*十進制BCD碼轉(zhuǎn)換函數(shù)/*/void BCD(void) bcd_buf2=(ad_data/51); /十位 temp=(ad_data%51); temp=(temp*10); bcd_buf1=(temp/51); /個位 temp=(temp%51); temp=temp*10; bcd_buf0=(temp/51); /小數(shù)位 if(bcd_buf2>set_data2) /報警值檢測 beep();

28、 else if(bcd_buf2=set_data2) if(bcd_buf1>set_data1) beep(); else if(bcd_buf1=set_data1) if(bcd_buf0>set_data0) beep(); /*/*鍵盤掃描函數(shù)/*/void keyscan(void) uchar data m; if(K1=0) /K1設(shè)置鍵 for(m=0;m<100;m+) /延時11msdisplay(); if(K1=0) beep2(); /按鍵時響一聲 set_flag=!set_flag; /設(shè)置標志位取反 if(set_flag=1) /若設(shè)置

29、鍵按下,則檢測K2-K4 SET_IND=0; /設(shè)置燈亮 if(K2=0) /K2:十位加1 for(m=0;m<100;m+) /延時11ms display(); if(K2=0) beep2(); /按鍵時響一聲 set_data2+; if(set_data2=5) set_data2=0; if(K3=0) /K3:個位加1 for(m=0;m<100;m+) /延時11ms display(); if(K3=0) beep2(); /按鍵時響一聲 set_data1+; if(set_data1=10) set_data1=0; if(K4=0) /K4:小數(shù)位加1

30、for(m=0;m<100;m+) /延時11ms display(); if(K4=0) beep2(); /按鍵時響一聲 set_data0+; if(set_data0=10) set_data0=0; else SET_IND=1;/*/*顯示函數(shù)/*/void display(void) if(set_flag) /設(shè)置鍵按下,則顯示設(shè)置的數(shù)值 dis_buf0=set_data0; dis_buf1=set_data1; dis_buf2=set_data2; else /否則顯示溫度值 dis_buf0=bcd_buf0; dis_buf1=bcd_buf1; dis_bu

31、f2=bcd_buf2; P1 = 0xff; / 先關(guān)閉所有數(shù)碼管P1 = dis_codedis_buf0; / 小數(shù)顯示代碼傳送到P1口select2=1;select1=1;select0=0;/ 位選delay1ms(1); /延時1msP1 = dis_codedis_buf1; / 個位顯示代碼傳送到P1口select2=1;select1=0;select0=1;/ P17=0;delay1ms(1); /延時1msP1 = dis_codedis_buf2; / 十位顯示代碼傳送到P1口select2=0;select1=1;select0=1;/ delay1ms(1);

32、/延時1ms/*/*串口發(fā)送一個字符函數(shù)/*/void send_str(void)SBUF = ad_data; /串口發(fā)送AD轉(zhuǎn)換溫度值while(TI=0); / 等待數(shù)據(jù)傳送TI = 0; / 清除數(shù)據(jù)傳送標志/*/*主函數(shù)/*/void main(void) TMOD = 0x21; / 定時器1工作于方式2,8位自動重載模式, 用于產(chǎn)生波特率 / 定時器0工作于方式1,產(chǎn)生1s的AD間隔時間 TH0=15536/256; /T0定時50ms TL0=15536%256; TH1 = 0xe1; / 波特率1000TL1 = 0xe1;SCON = 0x50; / 設(shè)定串行口工作方式

33、1PCON = 0x00; / 波特率不倍增TI=0; /清除發(fā)送中斷標志EA = 1; / 開總中斷ET0 = 1; /開T0中斷ET1=0;TR1 = 1; / 啟動T1 TR0 = 1; /啟動T0 while(1) display(); keyscan(); if(TIMER0_flag) TIMER0_flag=0;adc();BCD(); send_str(); /*/*T0中斷服務(wù)程序/*每秒鐘ADC一次,串口發(fā)送一次/*/void timer0(void) interrupt 1 TH0=15536/256; /重裝初值 TL0=15536%256; TIMER0_NUM+;

34、if(TIMER0_NUM=20) TIMER0_NUM=0;TIMER0_flag=1; /*Project Name : 智能體溫計程序_從機Designed By : sc.Dai*/#include <reg52.h>#include <absacc.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar data bcd_buf3=0x00,0x00,0x00; /十進制BCD碼轉(zhuǎn)換存放區(qū)/uchar code sound_add13=0x00,0x14,0x28,0x3c,0x50,0x64,0x78, /0x8c,0xa0,0xb4,0xc8,0xdc,0xf0; /0,1,2,3,4,5, /6,7,8,9,十,點,度 存放地址uchar code sound_add13=0x00,0x0a,0x14,0x1e,0x28,0x32,0x3c, 0x46,0x50,0x5a,0x64,0x6e,0x78; /0,1

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論