電子產(chǎn)品設(shè)計(jì)論文_第1頁
電子產(chǎn)品設(shè)計(jì)論文_第2頁
電子產(chǎn)品設(shè)計(jì)論文_第3頁
電子產(chǎn)品設(shè)計(jì)論文_第4頁
電子產(chǎn)品設(shè)計(jì)論文_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、電子產(chǎn)品設(shè)計(jì)題 目 智能體溫計(jì) 姓 名 xxx 學(xué) 號 xxx 專業(yè)班級 xxx 所在學(xué)院 信電分院 指導(dǎo)教師(職稱) 楊鋯 二一六 年 六 月 十九 日28摘要電子產(chǎn)品設(shè)計(jì)智能體溫計(jì)摘 要 智能體溫計(jì)采用AT89S52作為核心器件實(shí)現(xiàn)對系統(tǒng)的自動控制,采用雙單片機(jī)串行處理結(jié)構(gòu)。外界溫度經(jīng)AD590集成溫度傳感器采集,溫度變化轉(zhuǎn)換為線性電壓信號,再經(jīng)由OP07構(gòu)成高精度低溫漂的放大電路處理后,作為ADC0809的模擬輸入信號,由ADC0809完成AD轉(zhuǎn)換,得到8位的數(shù)字信號送入單片機(jī)1(AT89S52)。單片機(jī)1將采集到溫度值在LED數(shù)碼管上顯示出來,也通過串口通信將溫度信號傳到單片2(AT8

2、9S52)。此外溫度預(yù)制,報(bào)警電路模塊功能也由單片機(jī)1完成。單片機(jī)2完成溫度值的語音播放功能。通過系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)說明本設(shè)計(jì)方案切實(shí)可以,能夠完成題目所要求的基本功能部分,并留有相應(yīng)的接口,為完成擴(kuò)展功能打下基礎(chǔ)。關(guān)鍵字:單片機(jī) AD590 ADC0809 ISD2560AbstractElectronic product designElectronic thermometerAbstract Intelligent temperature meter adopts AT89S52 as the core device to realize the automatic control of

3、the system, using the serial processing structure. Outside temperature by integrated temperature sensor AD590 acquisition, temperature conversion into the linear voltage signal, and then through the OP07 constitute high precision and low temperature drift of amplification circuits, as ADC0809 analog

4、 input signal, by the ADC0809 complete a / D conversion and get 8 bit digital signal into the microcontroller 1 (AT89S52). SCM 1 will be collected to the temperature value in the LED digital tube display, but also through the serial communication to the temperature signal to the monolithic 2 (AT89S5

5、2). In addition to the temperature, the alarm circuit module function is completed by the MCU 1. SCM 2 to complete the temperature value of the voice player. Through the design and implementation of the system, this design can be realized, can complete the basic functional requirements of the title,

6、 and leave the corresponding interface, for the completion of the extension function to lay the foundation.Key word: single chip microcomputer ADC0809 ISD2560 AD590浙江大學(xué)城市學(xué)院畢業(yè)論文圖目錄目錄摘 要1第1章緒論11.1背景11.2設(shè)計(jì)目的1第2章原理分析22.1設(shè)計(jì)總原理22.1.1溫度傳感器的選擇22.1.2AD轉(zhuǎn)換器的選擇32.1.3語音提示模塊32.2原理分析32.3系統(tǒng)電路原理圖3第3章主要電路設(shè)計(jì)與參數(shù)計(jì)算43.1電

7、源電路模塊43.2溫度檢測、放大模塊53.2.1換成DS18B20溫度模塊怎么改53.2.2AD590簡介53.2.3圖5溫度檢測、放大電路原理63.3A/D轉(zhuǎn)換模塊63.4溫度設(shè)制、顯示及報(bào)警電路模塊73.5串行通信模塊83.6語音播放模塊93.6.1錄音、放音簡介93.6.2ISD2560簡介93.6.3芯片工作原理113.6.4硬件電路設(shè)計(jì)123.6.5本方法的特點(diǎn)12第4章系統(tǒng)軟件設(shè)計(jì)134.1系統(tǒng)程序流程圖13第5章系統(tǒng)測試145.1硬件測試145.1.1單元模塊的測試145.1.2系統(tǒng)整體測試155.1.3軟件測試155.1.4硬件與軟件的聯(lián)機(jī)測試15第6章利用的程序:16第7章參

8、考文獻(xiàn)25圖目錄圖 1 系統(tǒng)框圖2圖 2 系統(tǒng)電路原理圖4圖 3 電源電路圖5圖 4 AD590溫度檢測、放大電路圖6圖 5 AD590包裝與等效電路圖8圖 6 A/D轉(zhuǎn)換電路圖9圖 7 溫度設(shè)制、顯示及報(bào)警電路圖10圖 8 串行通信電路圖10圖 9 錄音、放音電路圖11圖 10 ISD2560管腳圖12圖 11 單片機(jī)1程序主流程圖 圖 12 單片機(jī)2程序主流程圖15圖 13 單片機(jī)2的T0中斷程序流程圖16浙江大學(xué)城市學(xué)院畢業(yè)論文 參考文獻(xiàn)第1章 緒論1.1 背景溫度是一個十分重要的物理量,對它的測量與控制有十分重要的意義。隨著現(xiàn)代工農(nóng)業(yè)技術(shù)的發(fā)展及人們對生活環(huán)境要求的提高,人們也迫切需要

9、檢測與控制溫度。溫度控制電路在工農(nóng)業(yè)生產(chǎn)中有著廣泛的應(yīng)用。日常生活中也可以見到,如電冰箱的自動制冷,空調(diào)器的自動控制等等。利用熱敏電阻器和惠斯通電橋制作一個電子體溫計(jì),也可以演示自動控制電路的工作原理?,F(xiàn)代信息技術(shù)的三大基礎(chǔ)是信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))。傳感器屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其是溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量高居各種傳感器之首。因此傳感器在此電子體溫計(jì)的制作中起了重要的作用。1.2 設(shè)計(jì)目的 傳統(tǒng)的玻璃水銀(汞)體溫計(jì)不僅使用不便,而且還存在著安全隱患。這種體溫計(jì)依靠體溫的傳導(dǎo)使汞柱的熱脹冷縮的影響下伸縮而發(fā)

10、生長度變化,因此其惰性大,獲取體溫平衡值的等待時間較為長久。嬰幼兒好動,測量體溫大多不愿默契配合,用玻璃水銀體溫計(jì)給嬰幼兒測量體溫具有一定的危險(xiǎn)性。體溫計(jì)水銀囊的玻殼薄脆易碎,一旦被不慎咬碎,極易導(dǎo)致汞的外泄污染與中毒。一支普通水銀體溫計(jì)內(nèi)的汞含量約為2g,足以污染800L的水;汞只需0.3g的微量便能對成人的身體贊成致命的傷害。人體一旦吸入大量的甲基汞,將有喪命之虞,如果攝入遭到汞污染的水或食物,將嚴(yán)懲損害神經(jīng)系統(tǒng),孕婦也將因此而產(chǎn)下畸形兒鑒于水銀體溫計(jì)破裂會危及人體健良乃至寶貴的生命,歐美各國從上世紀(jì)末就已紛紛宣布禁止使用與銷售水銀體溫計(jì),并換代升級為安全環(huán)保的電子體溫計(jì)。電子體溫計(jì)在國內(nèi)

11、也正在逐漸成為水銀體溫計(jì)的升級替代品。2003年以來流行的“非典”、“甲流”等呼吸系統(tǒng)傳染性疾病給中國和世界帶來了無盡的痛苦和災(zāi)難。這類疾病的主要病征之一就是發(fā)燒。為此,許多車站、碼頭、學(xué)校、企事業(yè)單位、醫(yī)務(wù)點(diǎn)均以測量體溫作為判斷是否得了“甲流”等疾病的前提。而數(shù)字體溫計(jì)以使用方便、檢測時間短、精確度高、顯示清晰、直觀、安全性好、價(jià)格合理等優(yōu)點(diǎn)將會得到更廣泛的應(yīng)用。第2章 原理分析2.1 設(shè)計(jì)總原理 圖 1 系統(tǒng)框圖2.1.1 溫度傳感器的選擇采用集成溫度傳感器。集成溫度傳感器一般且有具有線性好、精度高、靈敏度高、體積小、使用方便等優(yōu)點(diǎn)。根據(jù)實(shí)驗(yàn)室現(xiàn)有材料可選取AD590。AD590的測溫范圍

12、為-55+150,能滿足本設(shè)計(jì)的050度測量要求。根據(jù)相關(guān)技術(shù)資料:AD590線性電流輸出為1A/K,正比于絕對溫度;AD590的電源電壓范圍為4V30V,并可承受44V正向電壓和20V反向電壓,因而器件反接也不會被損壞。該方案能完全滿足此設(shè)計(jì)的要求,故采用此方案。2.1.2 AD轉(zhuǎn)換器的選擇選用ADC0809。ADC0809數(shù)字量是8位,轉(zhuǎn)換時間為100s,輸入模擬電壓為單極性的05V。由于本設(shè)計(jì)的要求精度不是很高,ADC0809可以達(dá)到要求,故選用此方案。2.1.3 語音提示模塊 采用ISD2560語音錄放集成電路。這是一種永久記憶型語音錄放電路,錄音時間為60S,可重復(fù)錄放10萬次。該芯

13、片采用多電平直接模擬量存儲專利技術(shù),每個采樣值可直接存儲在片內(nèi)單個EEPROM單元中,因此能夠非常真實(shí)、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲。此外,ISD2560還省去了A/D和D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時鐘、定時器、采樣時鐘、濾波器、自動增益控制、邏輯控制、模擬收發(fā)器、解碼器和480K 字節(jié)的EEPROM。ISD2560內(nèi)部EEPROM存儲單元均勻分為600行,有600個地址單元,每個地址單元指向其中一行,每一個地址單元的地址分辨率為100ms 。ISD2560可不分段,也可按最小段長為單位來任意組合分段。因此,選擇方案二。 2.2 原理分析系統(tǒng)框圖如圖1,AD590

14、把采集的外部溫度信號轉(zhuǎn)換成相應(yīng)的電壓,再經(jīng)過OP07運(yùn)放放大后作為ADC0809的模擬輸入信號,ADC0809將此模擬信號轉(zhuǎn)換成數(shù)字信號,通過并口送入到單片機(jī)1。單片機(jī)1把這些信號處理后通過LED數(shù)碼管顯示出來。同時單片機(jī)1還處理按鍵、報(bào)警模塊。單片機(jī)1把溫度值通過串行通信傳送給單片機(jī)2,控制語音芯片報(bào)出相對應(yīng)的溫度值。2.3 系統(tǒng)電路原理圖圖 2 系統(tǒng)電路原理圖如圖2所示,該電路主要由電源電路,溫度檢測、放大電路,AD轉(zhuǎn)換電路,雙單片機(jī)串行通信電路,按鍵輸入、報(bào)警電路,數(shù)碼管掃描顯示電路以及語音芯片電路組成。第3章 主要電路設(shè)計(jì)與參數(shù)計(jì)算3.1 電源電路模塊圖 3 電源電路圖如圖3所示,22

15、0V交流電經(jīng)變壓器市降壓、橋式整流、電容濾波后由7812、7805、7905三端集成穩(wěn)壓管分別得到12V、+5V、-5V電壓。給整個電路供電。3.2 溫度檢測、放大模塊圖 4 AD590溫度檢測、放大電路圖3.2.1 換成DS18B20溫度模塊怎么改如圖4所示,溫度檢測、放大電路主要器件的作用:OP1:電壓跟隨器;OP2:電壓跟隨器;OP3:差分放大電路;AD590:溫度傳感器;SVR:零位調(diào)整。3.2.2 AD590簡介AD590是電流輸出型的半導(dǎo)體溫度感測組件,主要特性如下:1.具有線性輸出電流。2.寬廣的操作溫度范圍(-55150)。3.寬廣的工作電壓范圍(+4V+30V)。4.良好的隔

16、離性。AD590的包裝與等效電路如圖4所示,是TO-52型金屬外殼包裝。他是兩端子的半導(dǎo)體溫度感測組件,另有一端子是外殼接腳,可接地以減少噪聲干擾。AD590如同一個隨溫度而改變輸出電流的定電流源,輸出電流與外殼的開氏(K)溫度成正比。開氏溫度與攝氏溫度的單位相等,0等于273.2K,100等于373.2K。當(dāng)溫度為0時,AD590的輸出電流是273.2A。而溫度為100時,輸出電流是373.2A。溫度每升高1,輸出電流增加1A,及溫度系數(shù)為1A/。圖 5 AD590包裝與等效電路圖3.2.3 溫度檢測、放大電路原理AD590當(dāng)溫度增加1時,其輸出電流會增加1A。即AD590的溫度系數(shù)為1A/

17、。所以在T()時的電流I1(T)為,而溫度每變化1時,V2的電壓變化是為,表示溫度每增加1,V2會增加10mV。在0時V2就已經(jīng)有電壓存在,其值為,則T()時,。如圖3所示,OP3組成差動放大器,電壓增益為。零位調(diào)整SVR1則用于抵補(bǔ)0的電壓值,由差動放大器的公式可得知,若調(diào)整SVR1使V1的電壓為2.732V,則0時,差動放大器的輸出VO為0V。也就是說,若溫度是在0至50之間,則差動放大器的輸出電壓是在0V至5V之間,亦即每0.1V的輸出代表溫度上升1。與設(shè)計(jì)要求相符合。3.3 A/D轉(zhuǎn)換模塊 如圖6:ADC0809把從放大電路傳送過來的模擬信號轉(zhuǎn)變成數(shù)字信號,并行傳送給單片機(jī)的P0口,讓

18、單片機(jī)處理。 圖 6 A/D轉(zhuǎn)換電路圖3.4 溫度設(shè)制、顯示及報(bào)警電路模塊如圖7:通過按鍵可以事先設(shè)定報(bào)警溫度值,當(dāng)顯示的溫度值超過設(shè)定的溫度值時,單片機(jī)就會從INT0腳發(fā)出一連串脈沖,驅(qū)動蜂鳴器發(fā)出報(bào)警聲。圖 7 溫度設(shè)制、顯示及報(bào)警電路圖加上LED報(bào)警,紅色表示高溫,綠色表示正常,黃色表示低溫3.5 串行通信模塊如圖8所示,單片機(jī)1把溫度值發(fā)送數(shù)據(jù)到單片機(jī)2,單片機(jī)2接收數(shù)據(jù)并控制語音芯片報(bào)出當(dāng)前的溫度值。圖 8 串行通信電路圖3.6 語音播放模塊 語音播放模塊如圖9所示。主要由單片機(jī)AT89S51與語音芯片ISD2560組成。圖 9 錄音、放音電路圖3.6.1 錄音、放音簡介如圖9所示,

19、首先通過麥克風(fēng)向語音芯片ISD2560錄入“0,1,2,3,4,5,6,7,8,9,10,點(diǎn),度”等音符。當(dāng)單片機(jī)2接收到單片機(jī)串行發(fā)送過來的溫度值時,就會自動地去尋找相對應(yīng)音符的地址,并把這些音符通過揚(yáng)聲器播放出來。3.6.2 ISD2560簡介ISD2560為28腳的DIP器件封裝,如圖10.圖 10 ISD2560管腳圖各引腳功能如下: 17:A0/M0A6/M6地址/模式選擇; 810: A7A9輸入地址線 ;11: AUX IN輔助輸入 ;12、13 :VSSD、VSSA數(shù)字地和模擬地 14、15 :SP 、SP-揚(yáng)聲器輸出 .16 :VCCA模擬信號電源正極 17、18:M IC、

20、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 外部時鐘 27、P/R 錄/放控制選擇 28 、VCCD 數(shù)字信號電源正極3.6.3 芯片工作原理 ISD2560有10個地址輸入端A0A9,錄址能力可達(dá)1024位,地址空間為01023。其分配情況是:地址0299作為分段用,地址600767未使用,地址7681023為工作模式選擇(即A8、A9均為高)。2500系列

21、的地址線有兩種用途,一是作為工作模式控制,二是作為分段錄放音的起始段地址。當(dāng)最高位地址(MSB)A8、A9都為高電平時(即地址7681023),地址端A0A6就作為工作模式選擇端M0M6,對應(yīng)7種工作模式。當(dāng)A8、A9任一位為低或都為低時(即地址0599),只要在分段錄/放音操作前(不少于300ns)給地址A0A9賦值,操作就從該地址開始。 ISD2560將480K的EEPROM分為600個信息段,每段800個字節(jié)。作為一個整體單位進(jìn)行尋址和控制,應(yīng)給每個信息段分配一個供外部控制的地址,而不是對每個字節(jié)進(jìn)行尋址,否則至少需要19個地址端口。這樣,大大減少了信息檢索所需要的地址線。對較長的語音信

22、號可以跨越多個信息段進(jìn)行錄音,不受內(nèi)部存儲信息段的限制,且內(nèi)部的信息段址會自動增加。在每個語音段的尾部自動增加一個結(jié)束標(biāo)志EOM,組合放音時,通過檢測EOM來控制各語音段的結(jié)束和下一段的開始。 每個信息段的錄放音時間等于總時間除以600。如ISD2560的總時間為60s,則每個信息段的錄放音時間為100ms;ISD25120的總時間為120s,則每個信息段的時間為200ms。因此可以利用該時間長度作為一個段地址,通過單片機(jī)定時器的計(jì)時平行地映射信息段的地址,從而得到每段錄音的起始地址。這樣,就需要設(shè)置一個地址計(jì)數(shù)器。一般錄音從0地址開始,首先通過CPU將它賦給A0A9,然后通過單片機(jī)控制ISD

23、啟動錄音,同時啟動單片機(jī)的定時器開始計(jì)時,每到一個信息段的時間,就給地址計(jì)數(shù)加1。當(dāng)單片機(jī)停止控制ISD錄音時,同時停止定時器計(jì)時。此時地址計(jì)數(shù)器的值即為該段語音的未地址,加1即為下一段語音的首地址,并將它存在EEPROM中,為下一將放音提供的地址信息。通過CPU將該地址賦給A0A9,即可錄制下一段語音。依次下去,即可在錄制完所有語音段的同時得到各段的起始地址。如果不是從0地址開始的語音段,只需將初始地址賦給A0A9,加上地址計(jì)數(shù)器的值,即可得到語音段的末地址。這里不用同時保存各語音段的起始地址和結(jié)束地址,因?yàn)楦鱾€段是相鄰的,前一段的末地址加1即是本段的起始地址,且每個語音段的結(jié)尾均有EOM標(biāo)

24、志,并可發(fā)出中斷。放音時利用它和保存在EEPROM中各語音段的起始地址即可按任意順序組合各個語音段。 3.6.4 硬件電路設(shè)計(jì) ISD器件選用錄音時間為60s的ISD2560器件,以單片機(jī)為處理機(jī),外接控制每個語音段錄音開始與停止按鍵,外部存儲器EEPROM用于保存每個語音首地址。ISD的外圍電路及其與單片機(jī)連接的硬件電路如圖9所示。ISD2560與AT89S52的接口部分包含輸入地址線A0A9、片選CE(CE=0選中ISD芯片)、芯片低功耗狀態(tài)控制PD、錄放音控制選擇P/R(P/R=0為錄音;P/R=1為放音)、錄放音結(jié)束信號輸出EOM,將它作為AT89S51外部中斷0的輸入信號,放音時通過

25、它告知本語音段結(jié)束,便于單片機(jī)立即播放另一個語音段。 3.6.5 本方法的特點(diǎn)能進(jìn)行在系統(tǒng)現(xiàn)場錄音,隨錄隨放,修改語音方便。 修改錄音內(nèi)容時,可以從其中任意一段開始,修改其后的所有錄音內(nèi)容,不必從第一段開始全部修改。這對一些需要廠家固定一些語音段的系統(tǒng)很有好處,將固定的語音段放置在前面的段落中,允許用戶錄制的放在后面,用戶修改錄音內(nèi)容時只需修改后面的語音段即可,不影響廠家錄制的語音。分段靈活。單片ISD2560可分1600個段,若多片級聯(lián)還可更多;各個錄音段的長度任意,只要總錄音時間在所用器件的總時間之內(nèi)即可。第4章 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)程序流程圖 圖 11 單片機(jī)1程序主流程圖 圖 12

26、 單片機(jī)2程序主流程圖如圖11:單片機(jī)1為主機(jī),負(fù)責(zé)溫度顯示、按鍵掃描、BCD碼轉(zhuǎn)換、串行發(fā)送數(shù)據(jù)給單片機(jī)2。以定時器定時1ms,每定時100次即1秒鐘就啟動A/D轉(zhuǎn)換、BCD碼轉(zhuǎn)換,串行發(fā)送2進(jìn)制數(shù)給單片機(jī)2。如圖12、13所示:單片機(jī)2為從機(jī),只負(fù)責(zé)接收數(shù)據(jù)并播報(bào)溫度,以T0定時器定時,結(jié)合延時程序定時1分鐘,使每1分鐘更新一次語音音素地址,即每1分鐘更新一次溫度值 ,并在中斷程序處理過程度中報(bào)一次溫度。圖 13 單片機(jī)2的T0中斷程序流程圖第5章 系統(tǒng)測試5.1 硬件測試5.1.1 單元模塊的測試(A)電源測試:用數(shù)字萬用表電壓檔測量各三端穩(wěn)壓管輸出的電壓值是否正常。測試相關(guān)測試點(diǎn),三路

27、電壓正常。電源設(shè)計(jì)成功。 (B) 溫度采集模塊的測試:調(diào)節(jié)溫度變化,測試點(diǎn)的電壓值是否有相對應(yīng)的改變。當(dāng)溫度變化時,測試點(diǎn)的電壓與溫度之間的線性關(guān)系比較好,如表1所示,達(dá)到設(shè)計(jì)要求。(C)AD轉(zhuǎn)換模塊的測試:當(dāng)輸入為0V和5V以及中間若干電壓輸入時,測試A/D轉(zhuǎn)換是否正常。測試發(fā)現(xiàn)當(dāng)輸入為0V時,ADC0809的輸出為00H,為+5V時為0FFH,當(dāng)輸入為2.5V時,輸出為0EFH,測試結(jié)果表明AD轉(zhuǎn)換的功能完全實(shí)現(xiàn)。(D)語音播放??斓臏y試:通過撥碼開關(guān)人工給語音芯片選地址,測試不同的地址是否有不同的發(fā)音,以檢驗(yàn)語音是否正確錄入及能否正常播放。根據(jù)設(shè)定,將12個語音信號分別放到指定的行地址上

28、,當(dāng)按相應(yīng)的行地址撥開關(guān)給ISD2560時,能夠正常播放設(shè)定的12個語音,說明語音芯片的錄用存貯工作成功。接入系統(tǒng),編程輸出相應(yīng)的行地址,ISD2560能夠正常播放各個語音,說明語音播放模快的硬件設(shè)計(jì)可行。5.1.2 系統(tǒng)整體測試測試方法以水溫代替人的體溫,用一根水銀溫度計(jì)與所制作的體溫計(jì)探頭(捆綁)同時接觸被測熱水的同一點(diǎn)。(A)準(zhǔn)備一杯0攝氏度的冰水混合物和一杯熱水。從0度開始記錄測試點(diǎn)的電壓值與溫度計(jì)對比較。記完一個數(shù)后,往杯中加熱水,這樣,每測一次,記錄一次數(shù)據(jù),再加一次熱水,這樣使水溫漸漸升高,一直測到水溫為50攝氏度。測試結(jié)果如表1所示,說明數(shù)碼管顯示的數(shù)值是否與測試點(diǎn)所測值在誤差

29、允許范圍內(nèi)是成歸一化關(guān)系的。(B)檢測水溫高于50攝氏度時測試點(diǎn)的電壓值。看是否為5V。結(jié)果顯示為+5V,說明保護(hù)電路可行。5.1.3 軟件測試將各功能子程序進(jìn)行KAIL C系統(tǒng)進(jìn)行軟件仿真,全部通過,再進(jìn)行硬件仿真,也能全部實(shí)現(xiàn)所要求實(shí)現(xiàn)的功能。 (1)數(shù)碼管顯示的測試:把放大器的輸出連接到ADC0809的輸入端,ADC0809與單片機(jī)相連接,觀察數(shù)碼管顯示的數(shù)值是否與測試點(diǎn)所測值成歸一化關(guān)系。(2)雙機(jī)串行通信的測試:從主機(jī)發(fā)送一個8位的二進(jìn)制數(shù),用示波器觀察從機(jī)是否接收到。5.1.4 硬件與軟件的聯(lián)機(jī)測試根據(jù)前面的測試,說明系統(tǒng)設(shè)計(jì)的軟、硬件設(shè)計(jì)基本取得成功。將把程序經(jīng)編譯、下載到相應(yīng)的

30、AT89S51芯片中,構(gòu)建電路測試,比較數(shù)碼管顯示的數(shù)值與溫度計(jì)的值和測試點(diǎn)的值。第6章 利用的程序:#include <reg52.h>#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 se

31、t_data3=0x00,0x07,0x03; /預(yù)設(shè)37.0度uchar data ad_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)換存放區(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 sel

32、ect1=P36;sbit select2=P35;sbit K1=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(

33、void) uchar 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)蜂鳴器 /*/*延時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

34、) 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); /個位 temp=(temp%51); temp=t

35、emp*10; bcd_buf0=(temp/51); /小數(shù)位 if(bcd_buf2>set_data2) /報(bào)警值檢測 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+) /延時11msdisplay(); i

36、f(K1=0) beep2(); /按鍵時響一聲 set_flag=!set_flag; /設(shè)置標(biāo)志位取反 if(set_flag=1) /若設(shè)置鍵按下,則檢測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

37、(); /按鍵時響一聲 set_data1+; if(set_data1=10) set_data1=0; if(K4=0) /K4:小數(shù)位加1 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_b

38、uf2=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); /延時1msP1 = dis_codedis_buf1; / 個位顯示代碼傳送到P1口select2=1;select1=0;select0=1;/ P17=0;delay1ms(1); /延時1msP1 = dis_

39、codedis_buf2; / 十位顯示代碼傳送到P1口select2=0;select1=1;select0=1;/ delay1ms(1); /延時1ms/*/*串口發(fā)送一個字符函數(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; / 定時器1工作于方式2,8位自動重載模式, 用于產(chǎn)生波特率 / 定時器0工作于方式1,產(chǎn)生1s的AD間隔時間 TH0=15536/256; /T0定時50m

40、s TL0=15536%256; TH1 = 0xe1; / 波特率1000TL1 = 0xe1;SCON = 0x50; / 設(shè)定串行口工作方式1PCON = 0x00; / 波特率不倍增TI=0; /清除發(fā)送中斷標(biāo)志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 t

41、imer0(void) interrupt 1 TH0=15536/256; /重裝初值 TL0=15536%256; TIMER0_NUM+; if(TIMER0_NUM=20) TIMER0_NUM=0;TIMER0_flag=1; /*Project Name : 智能體溫計(jì)程序_從機(jī)Designed By : sc.DaiDate : 2007.5.30*/#include <reg52.h>#include <absacc.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intuchar data bcd_buf3=0x00,0x00,0x00; /十進(jìn)制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,十,點(diǎn),度 存放地址uchar code sound_add13=0x00,0x0a,0x14,0x1e,0x28,0x32,0x3c, 0x46,0x50,0x5a,0x64,0x6e,0x78; /0,

溫馨提示

  • 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

提交評論