《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于單片機(jī)的數(shù)碼語音溫度計設(shè)計
基于單片機(jī)的數(shù)碼語音溫度計設(shè)計
電子發(fā)燒友
摘要: 單片機(jī)對溫度傳感器的信號進(jìn)行采集,采集的數(shù)據(jù)通過處理后一方面輸出給數(shù)碼管進(jìn)行顯示,另一方面輸出給語音模塊,進(jìn)行語音溫度提示,語音提示的間隔時間通過撥擋開關(guān)進(jìn)行設(shè)定,也可以關(guān)斷語音功能。
Abstract:
Key words :

引 言

目前便宜的體溫計在家中廣泛使用,但其通常只用于測量體溫,量程小、最大42℃ ;讀數(shù)不方便,特別是老年人視力不好,不容易讀準(zhǔn)確; 在測量體溫以外的情況下不便使用,并且破損后水銀泄漏對身體會造成危害等,一些國家已開始禁止銷售水銀溫度計; 非接觸式的紅外測溫儀雖然方便使用,但價格昂貴。

1 系統(tǒng)方案設(shè)計

1. 1 系統(tǒng)的工作原理

單片機(jī)對溫度傳感器的信號進(jìn)行采集,采集的數(shù)據(jù)通過處理后一方面輸出給數(shù)碼管進(jìn)行顯示,另一方面輸出給語音模塊,進(jìn)行語音溫度提示,語音提示的間隔時間通過撥擋開關(guān)進(jìn)行設(shè)定,也可以關(guān)斷語音功能。系統(tǒng)框圖如圖1 所示。

QQ截圖未命名1.jpg  
圖1 系統(tǒng)的方案框圖

1. 2 系統(tǒng)硬件設(shè)計

1. 2. 1 溫度傳感器

采用數(shù)字溫度傳感器DS18B20,該產(chǎn)品采用美國DALLAS 公司生產(chǎn)的可組網(wǎng)數(shù)字溫度傳感器芯片,體積小,使用方便,封裝形式多樣,適用于各種狹小空間數(shù)字測溫和控制領(lǐng)域; 由于項目要求能測量液體溫度、方便人體接觸等,因此采用外加不銹鋼保護(hù)管的封裝形式,具有耐磨耐碰、防水等功能。DS18B20 在與微處理器連接時僅需要一條口線即可實(shí)現(xiàn)雙向通信,可測溫范圍: - 55~ + 125℃ ,可編程為9~ 12 位A/ D 轉(zhuǎn)換精度,測溫分辨率可達(dá)0. 062 5℃ 。被測溫度用符號擴(kuò)展的16 位數(shù)字量方式串行輸出; 其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生; 多個DS18B20 可以并聯(lián)到3 根或2 根線上, CPU 只需一根端口線就能與諸多DS18B20 通信, 占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路; 連接電路如圖2 所示:

QQ截圖未命名1.jpg  
圖2 傳感器的連接圖

圖2 中傳感器的2 腳與單片機(jī)的輸入/ 輸出( I/ O)腳連接,進(jìn)行雙方通信,采用4. 7 k 的電阻上拉。由于DS18B20 單線通信功能是分時完成的,系統(tǒng)對它的各項操作必須嚴(yán)格按協(xié)議進(jìn)行。操作協(xié)議為: 初始化DS18B20( 發(fā)復(fù)位脈沖) →發(fā)ROM 功能命令→發(fā)存儲器操作命令→處理數(shù)據(jù),各項操作都有嚴(yán)格的時序要求。

1. 2. 2 單片機(jī)

采用與MCS51兼容的STC89C52, 具有8K 字節(jié)的在系統(tǒng)可編程Flash 存儲器,其MOSI、MISO、REST、SCK 等引腳通過鎖存后與計算機(jī)的并口連接,就可實(shí)現(xiàn)對內(nèi)部的Flash 存儲器編程,內(nèi)含512 B 的RAM, 32 個可編程I/ O口線, 3 個16 位的定時/ 計數(shù)器等特點(diǎn),可以為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案,非常適合本項目的應(yīng)用。

1. 2. 3 語音模塊

采用美國華幫公司生產(chǎn)的高集成度、高性能的ISD1720 語音錄放芯片, 采樣率在4~ 12 kHz 之間調(diào)節(jié),根據(jù)采樣頻率的不同,可以錄存12~ 36 s 的語音信息, 語音信息在該芯片內(nèi)部的固態(tài)多級存儲陣列里按行存放,可以通過指令中的11 位地址精確尋址; 該芯片集語音處理和存儲于一體,具有重復(fù)自開發(fā),掉電信息保存,可工作于獨(dú)立按鍵模式和SPI 控制模式,錄放結(jié)束自動進(jìn)人低功耗狀態(tài),可直接*輸人或模擬通道輸入,也可喇叭直接輸出,芯片工作電壓2. 4~ 5. 5 V之間,可以多段錄音, 其基本存儲單元入口地址范圍是0X010~0X09F。應(yīng)用電路如圖3 所示。根據(jù)需要,將錄制的語音分成13 個段,即“零~ 十、點(diǎn)、度”,如37. 5 度,播報為“ 三、十、七、點(diǎn)、五、度”,每段語音的錄制時間約為1. 35 s,由于錄制時間不易精確掌握,用手動控制的方式對13 段語音進(jìn)行錄制,然后手動檢查每段語音錄制效果,如圖3 所示,閉合S4 進(jìn)行語音信息錄制、松開即錄制結(jié)束,語音信息通過MIC 錄入,觸發(fā)S5 鍵進(jìn)行播放,檢查當(dāng)前錄制信息段的效果,在錄制或者播放的過程中,可以通過LED 的閃爍來了解操作的進(jìn)程; 如果某段語音錄制效果不理想,必須及時刪除,因為在手動控制方式下,刪除操作只對開始一段和最末一段信息有效; 錄制完成后,還必須檢查每段信息在器件的存儲體系中是否是按環(huán)形結(jié)構(gòu)存儲的,這可以通過閉合S5 并保持來實(shí)現(xiàn),此時,器件將按順序不停的播放當(dāng)前信息段與其前一信息段之間的所有信息段,通過反復(fù)錄制,直到滿意為止; 當(dāng)然,也可以采用商業(yè)的錄制設(shè)備來實(shí)現(xiàn)。

QQ截圖未命名1.jpg

圖3 語音芯片連接圖

由該芯片內(nèi)部的語音存放地址范圍可知,每段語音存放約11 行,為了準(zhǔn)確知道每段語音的入口地址和結(jié)束地址,可以利用單片機(jī)檢查。ISD1720 提供了4 線( SCLK, MOSI, MISO, SS) SPI 接口與單片機(jī)連接,由于二者的SPI 時序不易協(xié)調(diào),系統(tǒng)采用了單片機(jī)的P1. 1, P1. 2, P1. 3, P1. 4 口模擬SPI 時序?qū)SD1720 進(jìn)行控制。具體操作時, 器件初始化完成后,發(fā)送PLAY指令,器件從當(dāng)前信息段的開始地址進(jìn)行語音回放,當(dāng)遇到該段語音的結(jié)束標(biāo)志EOM 時,回放結(jié)束,讀取記錄指針和回放指針的位置( 即查閱狀態(tài)寄存器SR0 和SR1) ,這樣可以精確的知道每段語音的開始地址和結(jié)束地址。由于系統(tǒng)正常工作時,采用SPI 模式,根據(jù)測量得到的溫度值,尋找到相應(yīng)的語音段入口,將語音信息讀出; 在SPI 模式下,該芯片的操作命令SET PLAY、S ET REC、SET??REASE 有一個先入先出的緩存器,在相同類型的SET 命令下,使得從一個存儲塊到另一個存儲塊之間可以實(shí)現(xiàn)無縫連接,使人聽起來感覺到輸出的溫度語音信號是連續(xù)的。圖3 中S1 是復(fù)位按鈕, S2 是快進(jìn)按鈕, S3 是檫除按鈕, S6 是直通模式選擇按鈕, S7 進(jìn)行音量調(diào)節(jié); 以上開關(guān)按鈕都是低電平有效; R4 是語音采樣頻率的選擇電阻,當(dāng)其為80 k 時,語音錄制的采樣頻率為8 kHz; 當(dāng)不使用語音播報功能時,可以將SW 開關(guān)斷開,同時語音播報的時間間隔通過單片機(jī)電路中的1 個三位的撥碼開關(guān)選擇,可以設(shè)置8 個檔位,每個檔位的時間參數(shù)由程序控制。

1. 2. 4 顯示和電源模塊

采用3 位LED 數(shù)碼顯示,保留一位小數(shù),輸出方式采用動態(tài)掃描形式,選擇單片機(jī)的兩個端口經(jīng)過驅(qū)動器后作為LED 的字段線和字位線,減少輸出的總電流;為了便攜式應(yīng)用,電源采用九伏電池供電,通過LM7805 降壓為5 V 供系統(tǒng)各模塊使用。布線和制作PCB 板時,特別要注意地線的處理,要求數(shù)字地、模擬地、以及揚(yáng)聲器的地都要單獨(dú)走線,最后與電源地連接。

1. 3 系統(tǒng)軟件設(shè)計

系統(tǒng)的軟件流程如圖4 所示。
 QQ截圖未命名1.jpg

圖4 系統(tǒng)流程圖

系統(tǒng)初始化后,復(fù)位溫度傳感器,啟動溫度轉(zhuǎn)換,讀取溫度數(shù)據(jù),進(jìn)行處理,當(dāng)溫度處于快速變化過程中時,系統(tǒng)不停的進(jìn)行溫度信號的采集和顯示,判斷語音播報的間隔時間是否來到,當(dāng)滿足要求時,根據(jù)測得的當(dāng)前溫度值,取出其十位、個位和小數(shù)位的值,然后查表得其相應(yīng)的語音信號入口地址,復(fù)位語音芯片,發(fā)上電指令并延時約25 ms,判斷是否已正常上電,正常上電后,要清除中斷標(biāo)志,判斷器件是否已準(zhǔn)備好接收下一條指令,當(dāng)準(zhǔn)備好后,發(fā)送第一段信息的放音指令,然后檢查狀態(tài)寄存器,判斷器件是否正常執(zhí)行剛發(fā)送的指令,正常執(zhí)行后,又判斷器件是否已準(zhǔn)備好接收下一條指令,只有等到器件已準(zhǔn)備好后,才能向器件發(fā)送下一條指令,否則,就可能造成指令的丟失。程序考慮了器件內(nèi)部的FIFO 緩沖器,使N 段語音信號就像一段語音一樣進(jìn)行播放,每段語音之間幾乎沒有死區(qū)時間間隔。當(dāng)語音播報完成后,語音芯片失電,完成一次語音播報,程序回到系統(tǒng)的開始處,準(zhǔn)備下一個溫度采集、處理、顯示和語音輸出過程,如此不斷循環(huán)往復(fù)。

2 結(jié)語

采用語音提示和數(shù)碼顯示的方式設(shè)計的數(shù)碼語音溫度計,精確度高、測溫速度快; 應(yīng)用場合廣泛,既可測量體溫,也可測量食物、水等物質(zhì)的溫度,量程大; 操作使用方便,不僅適合普通家庭也適合某些需要語音提示的工業(yè)現(xiàn)場生產(chǎn)應(yīng)用。


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。