摘 要: 針對水銀溫度計不便讀數、響應速度慢、在普通家庭中使用面狹窄的特點, 提出了數碼語音溫度計的設計方案。選擇不銹鋼封裝的DS18B20 作溫度傳感器、ISD1720 進行語音錄放、STC89C52 單片機進行溫度信號采集、數據處理和語音回放控制, 構建了實際的電路系統。實驗表明, 該數碼語音溫度計測量范圍為0~ 99. 9 ℃, 顯示分辨率為0. 1℃ , 誤差不大于 0. 5℃ , 測溫速度快, 讀數方便, 語音清晰, 語音播報間隔時間可調, 可廣泛應用于家庭或需要溫度語音提示的場合。
0 引 言
溫度測量在人們的日常生活中扮演著重要的角色,當人們感到身體不適時, 通常需要測量體溫; 家中的嬰兒或病人吃的流質食物, 給嬰兒準備的洗澡水等, 都需要事先感測溫度, 溫度過高或過低都會對病人或嬰兒造成危害。目前便宜的體溫計在家中廣泛使用, 但其通常只用于測量體溫, 量程小、最大42℃ ;讀數不方便, 特別是老年人視力不好, 不容易讀準確; 在測量體溫以外的情況下不便使用, 并且破損后水銀泄漏對身體會造成危害等, 一些國家已開始禁止銷售水銀溫度計; 非接觸式的紅外測溫儀雖然方便使用, 但價格昂貴。文獻[ 3] 介紹了一種用于工業應用的數字溫度計設計方法,文獻[ 4-5] 分別介紹了采用具有語音處理功能的單片機和語音芯片設計溫度計的方法, 但是在儀器的小型化、使用方便性以及成本等因數影響下, 在一般家庭不容易推廣, 并且其核心技術也沒有公開。因此, 研制一種使用方便、既能數碼顯示又能語音提示, 價格便宜, 應用場合廣泛, 特別適合家庭使用的溫度測量儀器, 具有重要的實用價值。
1 系統方案設計
1. 1 系統的工作原理
單片機對溫度傳感器的信號進行采集,采集的數據通過處理后一方面輸出給數碼管進行顯示,另一方面輸出給語音模塊, 進行語音溫度提示, 語音提示的間隔時間通過撥擋開關進行設定, 也可以關斷語音功能。系統框圖如圖1 所示。
圖1 系統的方案框圖
1. 2 系統硬件設計
1. 2. 1 溫度傳感器
采用數字溫度傳感器DS18B20, 該產品采用美國DALLAS 公司生產的可組網數字溫度傳感器芯片, 體積小, 使用方便, 封裝形式多樣, 適用于各種狹小空間數字測溫和控制領域; 由于項目要求能測量液體溫度、方便人體接觸等, 因此采用外加不銹鋼保護管的封裝形式, 具有耐磨耐碰、防水等功能。DS18B20 在與微處理器連接時僅需要一條口線即可實現雙向通信, 可測溫范圍: - 55~ + 125℃ , 可編程為9~ 12 位A/ D 轉換精度, 測溫分辨率可達0. 062 5℃ 。被測溫度用符號擴展的16 位數字量方式串行輸出; 其工作電源既可在遠端引入, 也可采用寄生電源方式產生; 多個DS18B20 可以并聯到3 根或2 根線上, CPU 只需一根端口線就能與諸多DS18B20 通信, 占用微處理器的端口較少, 可節省大量的引線和邏輯電路; 連接電路如圖2 所示:
圖2 傳感器的連接圖
圖2 中傳感器的2 腳與單片機的輸入/ 輸出( I/ O)腳連接, 進行雙方通信, 采用4. 7 k 的電阻上拉。由于DS18B20 單線通信功能是分時完成的, 系統對它的各項操作必須嚴格按協議進行。操作協議為: 初始化DS18B20( 發復位脈沖) →發ROM 功能命令→發存儲器操作命令→處理數據, 各項操作都有嚴格的時序要求。
1. 2. 2 單片機
采用與MCS51兼容的STC89C52, 具有8K 字節的在系統可編程Flash 存儲器, 其MOSI、MISO、REST、SCK 等引腳通過鎖存后與計算機的并口連接, 就可實現對內部的Flash 存儲器編程, 內含512 B 的RAM, 32 個可編程I/ O口線, 3 個16 位的定時/ 計數器等特點, 可以為眾多嵌入式控制應用系統提供高靈活、超有效的解決方案, 非常適合本項目的應用。
1. 2. 3 語音模塊
采用美國華幫公司生產的高集成度、高性能的ISD1720 語音錄放芯片, 采樣率在4~ 12 kHz 之間調節, 根據采樣頻率的不同, 可以錄存12~ 36 s 的語音信息, 語音信息在該芯片內部的固態多級存儲陣列里按行存放, 可以通過指令中的11 位地址精確尋址; 該芯片集語音處理和存儲于一體, 具有重復自開發, 掉電信息保存, 可工作于獨立按鍵模式和SPI 控制模式, 錄放結束自動進人低功耗狀態, 可直接*輸人或模擬通道輸入,也可喇叭直接輸出, 芯片工作電壓2. 4~ 5. 5 V之間, 可以多段錄音, 其基本存儲單元入口地址范圍是0X010~0X09F。應用電路如圖3 所示。根據需要, 將錄制的語音分成13 個段, 即“零~ 十、點、度”, 如37. 5 度, 播報為“ 三、十、七、點、五、度”, 每段語音的錄制時間約為1. 35 s,由于錄制時間不易精確掌握, 用手動控制的方式對13 段語音進行錄制, 然后手動檢查每段語音錄制效果, 如圖3 所示, 閉合S4 進行語音信息錄制、松開即錄制結束,語音信息通過MIC 錄入, 觸發S5 鍵進行播放, 檢查當前錄制信息段的效果, 在錄制或者播放的過程中, 可以通過LED 的閃爍來了解操作的進程; 如果某段語音錄制效果不理想, 必須及時刪除, 因為在手動控制方式下, 刪除操作只對開始一段和最末一段信息有效; 錄制完成后, 還必須檢查每段信息在器件的存儲體系中是否是按環形結構存儲的, 這可以通過閉合S5 并保持來實現, 此時, 器件將按順序不停的播放當前信息段與其前一信息段之間的所有信息段, 通過反復錄制, 直到滿意為止; 當然, 也可以采用商業的錄制設備來實現。
由該芯片內部的語音存放地址范圍可知, 每段語音存放約11 行, 為了準確知道每段語音的入口地址和結束地址, 可以利用單片機檢查。ISD1720 提供了4 線( SCLK, MOSI, MISO, SS) SPI 接口與單片機連接, 由于二者的SPI 時序不易協調, 系統采用了單片機的P1. 1, P1. 2, P1. 3, P1. 4 口模擬SPI 時序對ISD1720 進行控制。具體操作時, 器件初始化完成后, 發送PLAY指令, 器件從當前信息段的開始地址進行語音回放, 當遇到該段語音的結束標志EOM 時, 回放結束, 讀取記錄指針和回放指針的位置( 即查閱狀態寄存器SR0 和SR1) , 這樣可以精確的知道每段語音的開始地址和結束地址。由于系統正常工作時, 采用SPI 模式, 根據測量得到的溫度值, 尋找到相應的語音段入口, 將語音信息讀出; 在SPI 模式下, 該芯片的操作命令SET PLAY、S ET REC、SET??REASE 有一個先入先出的緩存器, 在相同類型的SET 命令下, 使得從一個存儲塊到另一個存儲塊之間可以實現無縫連接, 使人聽起來感覺到輸出的溫度語音信號是連續的。圖3 中S1 是復位按鈕, S2 是快進按鈕, S3 是檫除按鈕, S6 是直通模式選擇按鈕, S7 進行音量調節; 以上開關按鈕都是低電平有效; R4 是語音采樣頻率的選擇電阻, 當其為80 k 時,語音錄制的采樣頻率為8 kHz; 當不使用語音播報功能時, 可以將SW 開關斷開, 同時語音播報的時間間隔通過單片機電路中的1 個三位的撥碼開關選擇, 可以設置8 個檔位, 每個檔位的時間參數由程序控制。
1. 2. 4 顯示和電源模塊
采用3 位LED 數碼顯示, 保留一位小數, 輸出方式采用動態掃描形式, 選擇單片機的兩個端口經過驅動器后作為LED 的字段線和字位線, 減少輸出的總電流; 為了便攜式應用, 電源采用九伏電池供電, 通過LM7805 降壓為5 V 供系統各模塊使用。布線和制作PCB 板時, 特別要注意地線的處理, 要求數字地、模擬地、以及揚聲器的地都要單獨走線, 最后與電源地連接。
1. 3 系統軟件設計
系統的軟件流程如圖4 所示。
系統初始化后, 復位溫度傳感器, 啟動溫度轉換, 讀取溫度數據, 進行處理, 當溫度處于快速變化過程中時,系統不停的進行溫度信號的采集和顯示, 判斷語音播報的間隔時間是否來到, 當滿足要求時, 根據測得的當前溫度值, 取出其十位、個位和小數位的值, 然后查表得其相應的語音信號入口地址, 復位語音芯片, 發上電指令并延時約25 ms, 判斷是否已正常上電, 正常上電后, 要清除中斷標志, 判斷器件是否已準備好接收下一條指令, 當準備好后, 發送第一段信息的放音指令, 然后檢查狀態寄存器, 判斷器件是否正常執行剛發送的指令, 正常執行后, 又判斷器件是否已準備好接收下一條指令,只有等到器件已準備好后, 才能向器件發送下一條指令, 否則, 就可能造成指令的丟失。程序考慮了器件內部的FIFO 緩沖器, 使N 段語音信號就像一段語音一樣進行播放, 每段語音之間幾乎沒有死區時間間隔。當語音播報完成后, 語音芯片失電, 完成一次語音播報, 程序回到系統的開始處, 準備下一個溫度采集、處理、顯示和語音輸出過程, 如此不斷循環往復。
2 結 語
采用語音提示和數碼顯示的方式設計的數碼語音溫度計, 精確度高、測溫速度快; 應用場合廣泛, 既可測量體溫, 也可測量食物、水等物質的溫度, 量程大; 操作使用方便, 不僅適合普通家庭也適合某些需要語音提示的工業現場生產應用。