版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)理與信息工程學(xué)院?jiǎn)纹瑱C(jī)原理及應(yīng)用期末課程設(shè)計(jì)題 目:智能體溫計(jì) 專 業(yè):電子信息工程 班 級(jí): 電信061姓 名:學(xué)號(hào):指導(dǎo)老師:成 績(jī):( 2008.12 )目 錄第1節(jié) 引 言3智能體溫計(jì)概述31.2 本次設(shè)計(jì)要求41.3 系統(tǒng)主要功能4第2節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì)52.1 主要模塊的設(shè)計(jì)方案論證52.1.1 溫度傳感器的選擇52.1.2 A/D轉(zhuǎn)換器的選擇52.1.3 語(yǔ)音提示模塊52.2 總系統(tǒng)設(shè)計(jì)方案62.2.1 系統(tǒng)設(shè)計(jì)框圖62.2.2 系統(tǒng)整體硬件電路62.3系統(tǒng)硬件組成82.3.1電源電路模塊82.3.2溫度檢測(cè)和放大模塊82.3.3A/D轉(zhuǎn)換模塊92.3.4 溫度設(shè)置、顯示
2、及報(bào)警電路模塊102.3.5 串行通信模塊102.3.6 語(yǔ)音播放模塊11第3節(jié) 系統(tǒng)軟件設(shè)計(jì)13 3.1 系統(tǒng)主程序設(shè)計(jì)133.2 程序清單14第4節(jié)結(jié)束語(yǔ)24參考文獻(xiàn)25智能體溫計(jì)數(shù)理與信息工程學(xué)院 06電子信息工程陶如紅指導(dǎo)教師:余水寶第1節(jié) 引 言隨著人們生活水平的不斷提高,單片機(jī)控制無(wú)疑是人們追求的目標(biāo)之一,它在日用電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,給人帶來(lái)的方便也是不可否定的,其中智能體溫計(jì)就是一個(gè)典型的例子,但人們對(duì)它的要求越來(lái)越高,要為現(xiàn)代人工作、科研、生活、提供更好的更方便的設(shè)施就需要從單片機(jī)技術(shù)入手,一切向著數(shù)字化控制,智能化控制方向發(fā)展。傳統(tǒng)的溫度計(jì)有反應(yīng)速度慢、讀數(shù)麻煩、測(cè)量
3、精度不高、誤差大等缺點(diǎn),溫度傳感器AD590具有線性優(yōu)良、性能穩(wěn)定、靈敏度高、抗干擾能力強(qiáng)、使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于冰箱、空調(diào)器、糧倉(cāng)等日常生活中溫度的測(cè)量和控制。本論文利用集成溫度傳感器AD590設(shè)計(jì)并制作了一款基于AT89S52的3位數(shù)碼管顯示的智能體溫計(jì),其電路簡(jiǎn)單,軟硬件結(jié)構(gòu)模塊化,易于實(shí)現(xiàn)。1.1 智能體溫計(jì)概述隨著時(shí)代的進(jìn)步和發(fā)展,單片機(jī)技術(shù)已經(jīng)普及到我們生活,工作,科研,各個(gè)領(lǐng)域,已經(jīng)成為一種比較成熟的技術(shù),本文將介紹一種基于單片機(jī)控制的智能體溫。本智能體溫計(jì)采用 AT89S52作為核心器件實(shí)現(xiàn)對(duì)系統(tǒng)的自動(dòng)控制,采用雙單片機(jī)串行處理結(jié)構(gòu)。外界溫度經(jīng) AD590 集成溫度傳感器采
4、集,溫度變化轉(zhuǎn)換為線性電壓信號(hào),再經(jīng)由 OP07 構(gòu)成高精度低溫漂的放大電路處理后,作為 ADC0809 的模擬輸入信號(hào),由ADC0809 完成 AD轉(zhuǎn)換,得到 8位的數(shù)字信號(hào)送入單片機(jī) 1(AT89S52)。單片機(jī) 1 將采集到溫度值在 LED數(shù)碼管上顯示出來(lái), 也通過(guò)串口通信將溫度信號(hào)傳到單片 2 (AT89S52) 。此外溫度預(yù)置, 報(bào)警電路模塊功能也由單片機(jī) 1完成。 單片機(jī)2 完成溫度值的語(yǔ)音播放功能。通過(guò)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)說(shuō)明本設(shè)計(jì)方案切實(shí)可以,能夠完成題目所要求的基本功能部分,并留有相應(yīng)的接口,為完成擴(kuò)展功能打下基礎(chǔ)。 1.2 本次設(shè)計(jì)要求單片機(jī)在日用電子產(chǎn)品中的應(yīng)用越來(lái)越廣泛,溫
5、度則是人們?nèi)粘I钪谐3P枰獪y(cè)量和控制的一個(gè)量。本論文通過(guò)AT89S52單片機(jī)和溫度傳感器AD590從硬件和軟件兩方面進(jìn)行了設(shè)計(jì)。 本次設(shè)計(jì)的設(shè)計(jì)要求:(1)基本范圍0-50;(2)精度誤差小于0.1;(3)LED數(shù)碼直讀顯示;擴(kuò)展功能:(1)實(shí)現(xiàn)語(yǔ)音報(bào)溫功能;(2)實(shí)現(xiàn)報(bào)警功能;本設(shè)計(jì)完成了以下功能: (1)溫度信號(hào)的采集與歸一化處理; (2)AD轉(zhuǎn)換; (3)溫度值的顯示,顯示的誤差與實(shí)際的溫度值誤差在± 內(nèi); (4)語(yǔ)音播報(bào)溫度與聲音報(bào)警功能。第2節(jié) 系統(tǒng)主要硬件電路設(shè)計(jì)2.1 主要模塊的設(shè)計(jì)方案論證2.1.1溫度傳感器的選擇 方案一:采用熱敏電阻。熱敏
6、電阻價(jià)格便宜,對(duì)溫度靈敏,原理簡(jiǎn)單,但線性度不好,如不進(jìn)行線性補(bǔ)償,對(duì)于本設(shè)計(jì)歸一化輸出的要求,難以達(dá)到設(shè)計(jì)精度;如要對(duì)非線性進(jìn)行補(bǔ)償,則電路結(jié)構(gòu)復(fù)雜,難以調(diào)整。故不采用。 方案二:采用熱電偶。熱電偶在測(cè)溫范圍內(nèi)熱電性質(zhì)穩(wěn)定,不隨時(shí)間變化而變化,電阻溫度系數(shù)小,導(dǎo)電率高,比熱小,但熱電偶一般體積較大,使用不方便,價(jià)格相對(duì)較高。作為一個(gè)智能體溫計(jì)的溫度傳感器,要求體積小,使用方便,便于攜帶,故此方案不合適。 方案三:采用集成溫度傳感器。集成溫度傳感器一般且有具有線性好、精度高、靈敏度高、體積小、使用方便等優(yōu)點(diǎn)。根據(jù)實(shí)驗(yàn)室現(xiàn)有材料可選取 AD590。AD590 的測(cè)溫范圍為-55+150,能滿足本
7、設(shè)計(jì)的 050 度測(cè)量要求。根據(jù)相關(guān)技術(shù)資料:AD590線性電流輸出為 1 µ A/K,正比于絕對(duì)溫度;AD590 的電源電壓范圍為 4V30V,并可承受 44V正向電壓和 20V反向電壓,因而器件反接也不會(huì)被損壞。該方案能完全滿足此設(shè)計(jì)的要求,故采用此方案。 2.AD 轉(zhuǎn)換器的選擇 方案一:選用 AD574。AD574 的數(shù)字量位數(shù)可設(shè)成 8 位也可以設(shè)為 12位,且無(wú)需外接 CLOCK時(shí)鐘,轉(zhuǎn)換時(shí)間達(dá)到 25s,輸出模擬電壓可以是單極性的 010V或020V,也可以是雙極性的±5V或±10V之間。AD574精度高,但與 8 位的單片機(jī)接口較復(fù)雜,且價(jià)格昂貴,考
8、慮到體溫計(jì)是對(duì)溫度的測(cè)量,其響應(yīng)時(shí)間的要求不高。故不選用此方案。方案二:選用 ICL7135。這類芯片比較適合于低速測(cè)量?jī)x器,適用于精度高,速度要求不高的系統(tǒng)設(shè)計(jì)中。ICL7135 的輸出為動(dòng)態(tài)掃描 BCD碼,與單片機(jī)的接口較復(fù)雜。且它的滿量程輸入為 2V電壓,如在本設(shè)計(jì)中使用要進(jìn)行衰減,較難保證轉(zhuǎn)換精度。 方案三:選用 ADC0809。ADC0809數(shù)字量是 8位,轉(zhuǎn)換時(shí)間為 100s,輸入模擬電壓為單極性的 05V。由于本設(shè)計(jì)的要求精度不是很高,ADC0809 可以達(dá)到要求,故選用此方案。 2.1.3語(yǔ)音提示模塊 方案一:通過(guò) A/D轉(zhuǎn)換器、單片機(jī),存儲(chǔ)器,DA轉(zhuǎn)換器實(shí)現(xiàn)聲音信號(hào)的采樣、處
9、理、存儲(chǔ)和實(shí)現(xiàn)。首先將聲音信號(hào)放大,通過(guò) AD轉(zhuǎn)換器采樣將語(yǔ)音模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并由單片機(jī)和處理存放到存儲(chǔ)器中,實(shí)現(xiàn)錄音操作。在錄、放音過(guò)程中由單片機(jī)控制 D/A轉(zhuǎn)換器,將存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)化成聲音信號(hào)。此方案安裝調(diào)試復(fù)雜,集成度低。 方案二:采用 ISD2560語(yǔ)音錄放集成電路。該芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣值可直接存儲(chǔ)在片內(nèi)單個(gè) EEPROM單元中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂、音調(diào)和效果聲。此外,ISD2560 還省去了 A/D和 D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時(shí)鐘、定時(shí)器、采樣時(shí)鐘、濾波器、自動(dòng)增益控制、邏輯控制、模擬收發(fā)器、解碼器
10、和 480K 字節(jié)的 EEPROM。ISD2560可不分段,也可按最小段長(zhǎng)為單位來(lái)任意組合分段。因此,選擇方案二。 22 總系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)框圖根據(jù)設(shè)計(jì)要求,可將系統(tǒng)分為若干模塊,以單片機(jī)為核心,完成多項(xiàng)功能。圖2-1 系統(tǒng)框圖系統(tǒng)框圖如圖2- 1,AD590 把采集的外部溫度信號(hào)轉(zhuǎn)換成相應(yīng)的電壓,再經(jīng)過(guò) OP07 運(yùn)放放大后作為 ADC0809的模擬輸入信號(hào),ADC0809 將此模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)并口送入到單片機(jī)1。單片機(jī)1把這些信號(hào)處理后通過(guò) LED 數(shù)碼管顯示出來(lái)。同時(shí)單片機(jī)1還處理按鍵、報(bào)警模塊。單片機(jī) 1把溫度值通過(guò)串行通信傳送給單片機(jī) 2,控制語(yǔ)音芯片報(bào)出相對(duì)應(yīng)的溫度
11、值。2.2.2系統(tǒng)整體硬件電路如圖 2-2 所示,該電路主要由電源電路,溫度檢測(cè)、放大電路,AD轉(zhuǎn)換電路,雙單片機(jī)串行通信電路,按鍵輸入、報(bào)警電路,數(shù)碼管掃描顯示電路以及語(yǔ)音芯片電路組成。圖2-2 系統(tǒng)電路原理圖系統(tǒng)硬件組成 電源電路模塊圖2-3 電源電壓電路如圖 2-3 所示,220V交流電經(jīng)變壓器市降壓、橋式整流、電容濾波后經(jīng)7812、7805、7905 三端集成穩(wěn)壓管分別得到12V、+5V、-5V電壓,給整個(gè)電路供電。溫度檢測(cè)、放大模塊圖2-4 AD590 溫度檢測(cè)、放大電路圖如圖2-4 所示,溫度檢測(cè)、放大電路主要器件的作用:OP1、OP2:電壓跟隨器;OP3:差分放大電路;AD590
12、:溫度傳感器;SVR:零位調(diào)整。 (1)AD590 簡(jiǎn)介 AD590 是電流輸出型的半導(dǎo)體溫度感測(cè)組件,主要特性如下: 1.具有線性輸出電流。 2.寬廣的操作溫度范圍(-55150)。3.寬廣的工作電壓范圍(+4V+30V)。 4.良好的隔離性。 AD590 的包裝與等效電路如圖 4 所示,是 TO-52 型金屬外殼包裝。他是兩端子的半導(dǎo)體溫度感測(cè)組件,另有一端子是外殼接腳,可接地以減少噪聲干擾。 AD590 如同一個(gè)隨溫度而改變輸出電流的定電流源,輸出電流與外殼的開氏(K)溫度成正比。開氏溫度與攝氏溫度的單位相等,0等于 273.2K,100等于 373.2K。當(dāng)溫度為 0A。而溫度為 10
13、0A。溫度每升高 1,輸出電流增加 1A,其溫度系數(shù)為 1A/。圖2-5 AD590 包裝與等效電路圖(2)溫度檢測(cè)、放大電路原理 AD590的溫度系數(shù)為 1A/。所以在 T()時(shí)的電流I1(T)為I1(T)=I1(0)+1A/*T (2-1)而溫度每變化 1時(shí),V2 的電壓變化是為1A/*10K=10mV/,即溫度每增加 1,V2 會(huì)增加 10mV。在 0時(shí) V2就已經(jīng)有電壓存在,其值為V2(0)=A *10K=2.732V (2-2)則 T時(shí)V2(T)=V2(0)+10mV/*T (2-3)如圖 2-3 所示,OP3 組成差動(dòng)放大器,電壓增益為 R2/R1=100K/20K=5 (2-4)
14、零位調(diào)整 SVR1則用于抵補(bǔ)0的電壓值,由差動(dòng)放大器的公式V0=R2/R1*(V2-V1) (2-5)可得知,若調(diào)整 SVR1使V1的電壓為2.732V,則 0時(shí),差動(dòng)放大器的輸出 VO為0V。也就是說(shuō),若溫度是在 0至50之間,則差動(dòng)放大器的輸出電壓是在0V至5V之間,亦即每的輸出代表溫度上升 1。與設(shè)計(jì)要求相符合。2.3.3 A/D轉(zhuǎn)換模塊 如圖 2-6:ADC0809 把從放大電路傳送過(guò)來(lái)的模擬信號(hào)轉(zhuǎn)變成數(shù)字信號(hào),并行傳送給單片機(jī)的 P0 口,讓單片機(jī)處理。圖2-6 A/D轉(zhuǎn)換電路圖溫度設(shè)制、顯示及報(bào)警電路模塊如圖 2-7:通過(guò)按鍵可以事先設(shè)定報(bào)警溫度值,當(dāng)顯示的溫度值超過(guò)設(shè)定的溫度值時(shí)
15、,單片機(jī)就會(huì)從 INT0 腳發(fā)出一連串脈沖,驅(qū)動(dòng)蜂鳴器發(fā)出報(bào)警聲。圖2-7 溫度設(shè)制、顯示及報(bào)警電路圖串行通信模塊如圖 2-8 所示, 單片機(jī) 1 把溫度值發(fā)送數(shù)據(jù)到單片機(jī) 2,單片機(jī)2 接收數(shù)據(jù)并控制語(yǔ)音芯片報(bào)出當(dāng)前的溫度值。圖2-8 串行通信電路圖語(yǔ)音播放模塊語(yǔ)音播放模塊如圖 2-9所示。主要由單片機(jī) AT89S51 與語(yǔ)音芯片 ISD2560 組成。圖2-9 錄音、放音電路圖(1)錄音、放音簡(jiǎn)介 如圖2-9 所示,首先通過(guò)麥克風(fēng)向語(yǔ)音ISD256錄入“0,1,2,3,4,5,6,7,8,9,10,點(diǎn),度”等音符。當(dāng)單片機(jī) 2 接收到單片機(jī)串行發(fā)送過(guò)來(lái)的溫度值時(shí),就會(huì)自動(dòng)地去尋找相對(duì)應(yīng)音符
16、的地址,并把這些音符通過(guò)揚(yáng)聲器播放出來(lái)。 (2)硬件電路設(shè)計(jì) ISD 器件選用錄音時(shí)間為 60s 的 ISD2560 器件,以單片機(jī)為處理機(jī),外接控制每個(gè)語(yǔ)音段錄音開始與停止按鍵,外部存儲(chǔ)器 EEPROM 用于保存每個(gè)語(yǔ)音首地址。ISD 的外圍電路及其與單片機(jī)連接的硬件電路如圖 2-9 所示。 ISD2560 與 AT89S52 的接口部分包含輸入地址線 A0A9、片選 CE(CE=0 選中 ISD芯片)、芯片低功耗狀態(tài)控制 PD、錄放音控制選擇 P/R(P/R=0 為錄音;P/R=1 為放音)、錄放音結(jié)束信號(hào)輸出 EOM,將它作為 AT89S51外部中斷 0的輸入信號(hào),放音時(shí)通過(guò)它告知本語(yǔ)音
17、段結(jié)束,便于單片機(jī)立即播放另一個(gè)語(yǔ)音段。ISD2560引腳封裝如圖 2-10所示.圖2-10 ISD2560管腳圖(3)本方法的特點(diǎn) 能進(jìn)行在系統(tǒng)現(xiàn)場(chǎng)錄音,隨錄隨放,修改語(yǔ)音方便。修改錄音內(nèi)容時(shí),可以從其中任意一段開始,修改其后的所有錄音內(nèi)容,不必從第一段開始全部修改。這對(duì)一些需要廠家固定一些語(yǔ)音段的系統(tǒng)很有好處,將固定的語(yǔ)音段放置在前面的段落中, 允許用戶錄制的放在后面, 用戶修改錄音內(nèi)容時(shí)只需修改后面的語(yǔ)音段即可,不影響廠家錄制的語(yǔ)音。 分段靈活。單片 ISD2560 可分1600 個(gè)段,若多片級(jí)聯(lián)還可更多;各個(gè)錄音段的長(zhǎng)度任意,只要總錄音時(shí)間在所用器件的總時(shí)間之內(nèi)即可。第3節(jié) 系統(tǒng)的軟件
18、設(shè)計(jì)31 系統(tǒng)程序流程如圖 3-1:?jiǎn)纹瑱C(jī) 1 為主機(jī),負(fù)責(zé)溫度顯示、按鍵掃描、BCD碼轉(zhuǎn)換、串行發(fā)送數(shù)據(jù)給單片機(jī) 2。以定時(shí)器定時(shí) 1ms,每定時(shí) 100 次即1 秒鐘就啟動(dòng) A/D轉(zhuǎn)換、BCD碼轉(zhuǎn)換,串行發(fā)送 2 進(jìn)制數(shù)給單片機(jī) 2。 圖3-1 單片機(jī)1 程序主流程圖如圖 3-2,3-3所示:?jiǎn)纹瑱C(jī) 2 為從機(jī),只負(fù)責(zé)接收數(shù)據(jù)并播報(bào)溫度,以 T0 定時(shí)器定時(shí),結(jié)合延時(shí)程序定時(shí)1分鐘, 使每1分鐘更新一次語(yǔ)音音素地址, 即每1分鐘更新一次溫度值,并在中斷程序處理過(guò)程度中報(bào)一次溫度。圖3-2 單片機(jī)2程序主流程圖圖3-3 單片機(jī) 2的T0中斷程序流程圖32 程序清單/*單片機(jī)1程序*/#inc
19、lude <reg52.h> #include <absacc.h> #include <intrins.h> #define uchar unsigned char #define uint unsigned int uchar code dis_code10=0xc0,0xf9,0xa4,0xb0, / 0, 1, 2, 3 0x99,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
20、_data; /AD轉(zhuǎn)換結(jié)果 uchar data dis_buf3=0x00,0x00,0x00; / 顯示緩沖區(qū) uchar data bcd_buf3=0x00,0x00,0x00; /十進(jìn)制 BCD碼轉(zhuǎn)換存放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 K
21、1=P20; sbit K2=P21; sbit K3=P22; sbit K4=P23; sbit bep=P33; sbit SET_IND=P34; sbit P17=P17; /小數(shù)點(diǎn) 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
22、 data j,k; for(j=26;j>0;j-) for(k=254;k>0;k-); bep=!bep; bep=1; /*/ /*蜂鳴報(bào)警 /*/ 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)蜂鳴器 /*/ /*延時(shí)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(
23、void) ALE=1; _nop_(); _nop_(); ALE=0; START=1;_nop_(); _nop_(); START=0; _nop_(); _nop_(); _nop_(); _nop_(); while(EOC=0); /等待轉(zhuǎn)換結(jié)束 OE=1; ad_data=P0; /讀入轉(zhuǎn)換數(shù)據(jù) OE=0; /*/ /*十進(jìn)制 BCD碼轉(zhuǎn)換函數(shù) /*/ void BCD(void) bcd_buf2=(ad_data/51); /十位 temp=(ad_data%51); temp=(temp*10); bcd_buf1=(temp/51); /個(gè)位 temp=(temp%51
24、); temp=temp*10; bcd_buf0=(temp/51); /小數(shù)位 if(bcd_buf2>set_data2) /報(bào)警值檢測(cè) beep(); 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+) /延時(shí) 1
25、1msdisplay(); if(K1=0) beep2(); /按鍵時(shí)響一聲 set_flag=!set_flag; /設(shè)置標(biāo)志位取反 if(set_flag=1) /若設(shè)置鍵按下,則檢測(cè) K2-K4 SET_IND=0; /設(shè)置燈亮 if(K2=0) /K2:十位加1 for(m=0;m<100;m+) /延時(shí) 11ms display(); if(K2=0) beep2(); /按鍵時(shí)響一聲 set_data2+; if(set_data2=5) set_data2=0; if(K3=0) /K3:個(gè)位加1 for(m=0;m<100;m+) /延時(shí) 11ms display
26、(); if(K3=0) beep2(); /按鍵時(shí)響一聲 set_data1+; if(set_data1=10) set_data1=0; if(K4=0) /K4:小數(shù)位加1 for(m=0;m<100;m+) /延時(shí) 11ms display(); if(K4=0) beep2(); /按鍵時(shí)響一聲 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
27、_buf1=set_data1; dis_buf2=set_data2; else /否則顯示溫度值 dis_buf0=bcd_buf0; dis_buf1=bcd_buf1; dis_buf2=bcd_buf2; P1 = 0xff; / 先關(guān)閉所有數(shù)碼管 P1 = dis_codedis_buf0; / 小數(shù)顯示代碼傳送到 P1 口 select2=1;select1=1;select0=0; / 位選 delay1ms(1); /延時(shí) 1ms P1 = dis_codedis_buf1; / 個(gè)位顯示代碼傳送到 P1 口 select2=1; select1=0;select0=1; P
28、17=0; delay1ms(1); /延時(shí) 1ms P1 = dis_codedis_buf2; / 十位顯示代碼傳送到 P1 口 select2=0;select1=1;select0=1; delay1ms(1); /延時(shí) 1ms /*/ /*串口發(fā)送一個(gè)字符函數(shù) /*/ void send_str(void) SBUF = ad_data; /串口發(fā)送 AD轉(zhuǎn)換溫度值 while(TI=0); / 等待數(shù)據(jù)傳送 TI = 0; / 清除數(shù)據(jù)傳送標(biāo)志 /*/ /*主函數(shù) /*/ void main(void) TMOD = 0x21; /定時(shí)器 1 工作于方式 2,8 位自動(dòng)重載模式,
29、用于產(chǎn)生波特率 / 定時(shí)器 0 工作于方式 1,產(chǎn)生 1s 的 AD 間隔時(shí)間 TH0=15536/256; /T0定時(shí) 50ms TL0=15536%256; TH1 = 0xe1; / 波特率1000 TL1 = 0xe1; SCON = 0x50; / 設(shè)定串行口工作方式 1 PCON = 0x00; / 波特率不倍增 TI=0; /清除發(fā)送中斷標(biāo)志 EA = 1; / 開總中斷 ET0 = 1; /開 T0 中斷 ET1=0; TR1 = 1; / 啟動(dòng)T1 TR0 = 1; /啟動(dòng)T0 while(1) display(); keyscan(); if(TIMER0_flag) TI
30、MER0_flag=0; adc(); BCD(); send_str(); /*/ /*T0 中斷服務(wù)程序 /*每秒鐘 ADC 一次,串口發(fā)送一次 /*/ void timer0(void) interrupt 1 TH0=15536/256; /重裝初值 TL0=15536%256; TIMER0_NUM+; if(TIMER0_NUM=20) TIMER0_NUM=0; TIMER0_flag=1; /*單片機(jī)2程序*/ #include <reg52.h> #include <absacc.h> #include <intrins.h> #defin
31、e uchar unsigned char #define uint unsigned int uchar data bcd_buf3=0x00,0x00,0x00; /十進(jìn)制 BCD碼轉(zhuǎn)換存放區(qū) uchar code sound_add13=0x00,0x0a,0x14,0x1e,0x28,0x32,0x3c, 0x46,0x50,0x5a,0x64,0x6e,0x78; /0,1,2,3,4,5, /6,7,8,9,十,點(diǎn),度 存放地址 uchar data order6; /"X十 X點(diǎn)uchar ad_data; /存放接收的 AD轉(zhuǎn)換數(shù)據(jù) uint TIMER_NUM; /
32、1 分鐘計(jì)時(shí) sbit EOM=P20; sbit PD=P21; sbit CE=P22; uchar i; uint data temp; /* /*十進(jìn)制 BCD碼轉(zhuǎn)換函數(shù) /*/ void BCD(void) bcd_buf2=(ad_data/51); /十位 temp=(ad_data%51); temp=(temp*10); bcd_buf1=(temp/51); /個(gè)位 temp=(temp%51); temp=temp*10; bcd_buf0=(temp/51); /小數(shù)位 /*/ /*語(yǔ)音芯片報(bào)溫度函數(shù) /*調(diào)用一次報(bào)告一次溫度 /*/ void sound_play(void) _nop_(); _nop_(); PD=0; /節(jié)電控制端接低電平,正常工作 for(i=0;i<6;i+) uchar data n=0; P0=sound_addorderi;/ CE=0; /開始播放 _nop_(); _nop_(); CE=1; while(EOM); while(EO
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)軟件管理系統(tǒng)采購(gòu)協(xié)議樣本一
- 2025年度拆墻工程安全施工與質(zhì)量驗(yàn)收合同4篇
- 二零二五版智能法律咨詢APP下載服務(wù)條款3篇
- 二零二五年度消防培訓(xùn)與應(yīng)急演練服務(wù)合同3篇 - 副本
- 人教版九年級(jí)化學(xué)上冊(cè)第3章物質(zhì)構(gòu)成的奧秘《第2節(jié) 組成物質(zhì)的化學(xué)元素》第一課時(shí)公開課教學(xué)課件
- 2025年度拆除廣告牌與城市公共安全施工合同范本4篇
- 二零二五年度建筑鋼材材料代購(gòu)與配送服務(wù)合同3篇
- 2025年度建筑拆除與環(huán)保處理一體化施工合同4篇
- 2025年度工業(yè)用地場(chǎng)地代租賃合同參考范本4篇
- 2024院同樂分院中草藥保健品生產(chǎn)加工合同3篇
- 新員工入職培訓(xùn)測(cè)試題附有答案
- 勞動(dòng)合同續(xù)簽意見單
- 大學(xué)生國(guó)家安全教育意義
- 2024年保育員(初級(jí))培訓(xùn)計(jì)劃和教學(xué)大綱-(目錄版)
- 河北省石家莊市2023-2024學(xué)年高二上學(xué)期期末考試 語(yǔ)文 Word版含答案
- 企業(yè)正確認(rèn)識(shí)和運(yùn)用矩陣式管理
- 分布式光伏高處作業(yè)專項(xiàng)施工方案
- 陳閱增普通生物學(xué)全部課件
- 檢驗(yàn)科主任就職演講稿范文
- 人防工程主體監(jiān)理質(zhì)量評(píng)估報(bào)告
- 20225GRedCap通信技術(shù)白皮書
評(píng)論
0/150
提交評(píng)論