基于AT89S52智能語音溫度計的設計_第1頁
基于AT89S52智能語音溫度計的設計_第2頁
基于AT89S52智能語音溫度計的設計_第3頁
基于AT89S52智能語音溫度計的設計_第4頁
基于AT89S52智能語音溫度計的設計_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、題目: 基于基于 AT89S52AT89S52 智能語音溫度計的設計智能語音溫度計的設計摘要以AT89S52為核心,選用DS18B20單總線數字溫度傳感器,RT1602液晶顯示器實現,液晶顯示當前日期、時間和溫度。當測量溫度超過設定的溫度上下限時,啟動蜂鳴器和指示燈報警。溫度顯示穩定,且溫度測量誤差1,溫度值小數部分保留兩位有效數字。增加了攝氏溫度與華氏溫度轉換對比顯示功能,設定了整點語音自動播報時間溫度,手動實時播報時間溫度功能。關鍵詞:DS18B20;液晶顯示;語音播報;聲光報警AbstractAT89S52 as the core, choose to single bus digita

2、l temperature sensor DS18B20, DS1302 serial clock chip, RT1602 LCD monitor realization, LCD display the current date, time, weeks and temperature. When measuring temperature over set temperature fluctuation limit, start with light alarm buzzer. Temperature display stability, and temperature measurem

3、ent error acuities 1, plus or minus temperature the decimal part retained two significant digits. Increased Celsius temperature conversion contrast with Fahrenheit and sets up a display function beep voice automatically broadcast time temperature, manual real-time broadcast time temperature function

4、.Keyword:DS18B20;LCD;speech function;sounding and light alarm.目錄摘要.IIABSTRACT.III1 引言.12 設計要求.13 方案論證.13.1 電源模塊.23.2 溫度傳感器模塊.23.3 顯示模塊.23.4 鍵盤控制模塊.33.5 語音播報模塊.34 設計原理.4.4.44.1.2 單片機外圍電路設計.64.1.3 AT89S52 復位電路 .74.1.4 AT89S52 時鐘電路 .84.2 電源模塊.9.94.3.1 DS18B20 的測溫原理 .104.3.2 DS18B20 與 AT89S52 的接口電路設計 .1

5、1.11.12.13.144.7.1 ISD1420 語音芯片錄放音電路設計 .144.7.2 ISD1420 與 AT89S52 接口電路設計 .175 軟件部分.185.1 開發工具介紹.18.18.19.20.21.22.23.246 仿真結果數據分析.25.257 結束語.25參考文獻.27附錄一:電路圖.28附錄二:源程序.291 引言21 世紀是人類全面進入信息電子化的時代,現代信息技術的三大基礎是信息采集(即傳感器技術)、信息傳輸(通信技術)和信息處理(計算機技術)。隨著人類探知領域和空間的拓展,使得人們需要獲得的電子信息種類日益增加,需要信息傳遞的速度加快,信息處理能力增強,因

6、此要求與此相對應的信息采集技術傳感技術必須跟上信息化發展的需要。傳感器技術是人類探知自然界信息的觸覺,為人們認識和控制相應的對象提供條件和依據。它屬于信息技術的前沿尖端產品,尤其溫度傳感器被廣泛用于工農業生產、科學研究和生活等領域,數量居各種傳感器之首。近百年來,溫度傳感器的發展大致經歷了以下三個階段:(1)傳統的分立式溫度傳感器 (含敏感元件);(2)模擬集成溫度傳感器控制器;(3)智能溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數字式、由集成化向智能化、網絡化的方向發展。作為現代信息技術的三大核心技術之一的傳感技術,將是二十一世紀世界各國在高新技術發展方面爭奪的一個重要領域。2 設計

7、要求1顯示當前日期、時間、溫度。2當測量溫度超過設定溫度時,啟動報警模塊報警。3手動實時播報溫度,時間。4溫度顯示穩定,誤差1。3 方案論證分析本題,根據設計要求先確定了本系統的整體設計原理框圖如圖所示 圖 3.1 原理框圖 溫度采集 鍵盤控制微控制器模塊顯示模塊 報警模塊 語音錄放 電源模塊3.1 電源模塊方案一:采用三只干電池作為電源。該方案的優點是設計簡明扼要,成本低;缺點是輸出功率不高,只能勉強驅動單片機,適合小電流負載。而且在整個系統工作中,電壓會隨著時間的推移不斷降低,進而出現死機等情況。方案二:采用獨立的穩壓電源。電源的穩壓的特性較好,能夠保證整個系統穩定工作。綜上分析,為使系統

8、調試方便,能夠穩定工作,必須有可靠電源,所以決定選擇第二種方案。3.2 溫度傳感器模塊方案一:AD590 是單片集成的敏感電流源,激勵電壓在+4V+30V 間選擇,其測量范圍為-55 攝氏度-150 攝氏度,所輸出的電流數值(微安數)等于絕對溫度 K 的數值。AD590 具有標準化的輸出和固有的線性關系,分不同的測溫范圍和精度供設計者選用,通過微調電路對 AD590 的輸出進行修正,可達到很高的測試精度。AD590 不需要低電平測量設備和電橋,可以使用長導線,而不會因為電壓的降低和感應的噪聲電壓而產生誤差;它又是一個高阻抗的電流源;對激勵的電壓變化不夠敏感。但是 AD590 需要把被測溫度轉化

9、為電流再通過放大器和 A/D 轉換器才能輸出數字量送給單片機進行溫度控制。方案二:DS18B20 是美國達拉斯半導體公司推出的第一片支持“一線總線”接口的溫度傳感器。它具有微型化、低功耗、高性能、抗干擾能力強、易配微處理器等優點,可以將溫度直接轉化成串行數字量供微處理器處理。因此,在溫度測量系統中,采用抗干擾能力強的新型數字溫度傳感器是解決這些問題的有效方案,新型數字溫度傳感器 DS18B20 具有體積更小、精度更高、適用電壓更寬、采用一線總線、可組網優點,在實際測溫的過程中取得了良好的測量效果。其供電方式簡單,可用數據線供電,所需的外圍器件較少,甚至不需要外圍器件。通過比較,溫度傳感器 DS

10、18B20 具有更高的性價比,DS18B20 能夠構建經濟的測溫網絡。因而在本次設計中,選用的是數字溫度傳感器 DS18B20,故采用的是方案二。3.3 顯示模塊方案一:采用八位數碼管,將單片機的數據通過數碼管顯示出來。該方案簡單易行,但所需的元器件較多,且不容易進行操作,可讀性較差,一旦設定后,很難加入其它的功能,顯示格式受控制,且耗電量大。方案二:采用 LCD 顯示屏進行顯示。LCD 顯示屏是一種低壓、微功耗的顯示器件,只要 2-3 伏就可以工作了,工作電流僅為幾微安,是其它顯示器無法比擬的,同時可以顯示大量信息,除數字外,還可以顯示字母,曲線,比傳統的 LED 數碼顯示器的畫面有了質的提

11、高。雖然 LCD 顯示器的價格比傳統的 LED數碼管要貴些,但它的顯示效果更好,是當今顯示器的主流,所以采用 LCD 作為顯示器。采用 LCD,更容易實現題目的要求,對后續的功能兼容性高,只需將軟件修改即可,可操作性強,易于度數,采用 RT1602 兩行十六字符的顯示,能同時顯示時間,溫度。綜上分析,采用第二種方案。3.4 鍵盤控制模塊方案一:44 矩陣式鍵盤。此方案對于本系統來說無非是浪費 I/O 占用MCU 的資源,不利于系統的擴展,這就使系統的實用性降低,況且本系統根本不需要 16 個按鍵。方案二:獨立式按鍵。對于獨立式按鍵來說,如果設置過多按鍵,雖然會占用較多 I/O 口,給布線帶來不

12、便,此方案適用于按鍵較少的情況。在本設計中所需要的控制點數的較少,只需要幾個功能鍵,簡便、易操作、成本低就成了首要考慮的因素。所以此時,可采用獨立式按鍵結構。3.5 語音播報模塊方案一:通過 A/D 轉換器、單片機,存儲器,DA 轉換器實現聲音信號的采樣、處理、存儲和實現。首先將聲音信號放大,通過 AD 轉換器采樣將語音模擬信號轉換成數字信號,并由單片機和處理存放到存儲器中,實現錄音操作。在錄、放音過程中由單片機控制 D/A 轉換器,將存儲器中的數據轉化成聲音信號。此方案安裝調試復雜,集成度低,成本也不低。方案二:采用 ISD1420 語音錄放。ISD1420 是采用模擬存取技術集成的可反復錄

13、放的 20 秒語音芯片,掉電語音不丟失,最大可分 160 段,最小每段語音長度為 125ms,每段語音都可由地址線控制輸出,每 125ms 為一個地址,由 A0-A7 八根地址線控制。該芯片采用多電平直接模擬量存儲專利技術,每個采樣值可直接存儲在片內單個 EEPROM 單元中,因此能夠非常真實、自然地再現語音、音樂、音調和效果聲。此外,ISD1420 還省去了 A/D 和 D/A 轉換器,方便擴展更多的功能。綜上所述,選擇方案二,即 ISD1420。4 設計原理本系統選用的模塊包括:單片機系統,電源模塊,LCD 顯示模塊,語音播報模塊,溫度傳感器模塊,鍵盤控制模塊,具體的電路圖參照附錄二。此次

14、的畢業設計的核心部分是單片機的控制,給以相關的命令,按照人們的意愿執行相應的操作,這次選用的是 ATMEL 公司生產的常用芯片 AT89S52,主要是他的價格便宜,而且是我們通用性較強,容易獲得。單片機介紹CPU 即中央處理器的簡稱,是單片機的核心部件,它完成各種運算和控制操作,CPU 由運算器和控制器兩部分電路組成。 a. 運算器電路 運算器電路包括 ALU(算術邏輯單元) 、ACC(累加器) 、B 寄存器、狀態寄存器、暫存器1和暫存器2等部件,運算器的功能是進行算術運算和邏輯運算。 b. 控制器電路控制器電路包括程序計數器 PC、PC 加1寄存器、指令寄存器、指令譯碼器、數據指針 DPTR

15、、堆棧指針 SP、緩沖器以及定時與控制電路等。控制電路完成指揮控制工作,協調單片機各部分正常工作。 c. 定時器/計數器 MCS52單片機片內有兩個16位的定時/計數器,即定時器0和定時器1。它們可以用于定時控制、延時以及對外部事件的計數和檢測等。 d. 存儲器 MCS52系列單片機的存儲器包括數據存儲器和程序存儲器,其主要特點是程序存儲器和數據存儲器的尋址空間是相互獨立的,物理結構也不相同。 e. 并行 I/O 口 MCS52單片機共有4個8位的 I/O 口(P0、P1、P2和 P3) ,每一條 I/O 線都能獨立地用作輸入或輸出。P0口為三態雙向口,能帶8個 TTL 門電路,P1、P2和

16、P3口為準雙向口,負載能力為4個 TTL 門電路。 f. 串行 I/O 口 MCS521單片機具有一個采用通用異步工作方式的全雙工串行通信接口,可以同時發送和接收數據。 g. 中斷控制系統 8051共有5個中斷源,即外中斷2個,定時/計數中斷2個,串行中斷1個。 h. 時鐘電路 MCS52芯片內部有時鐘電路,但晶體振蕩器和微調電容必須外接。時鐘電路為單片機產生時鐘脈沖序列,振蕩器的頻率范圍為1.2MHz12MHz,典型取值為6MHz。 i.總線 以上所有組成部分都是通過總線連接起來,從而構成一個完整的單片機。系統的地址信號、數據信號和控制信號都是通過總線傳送的,總線結構減少了單片機的連線和引腳

17、,提高了集成度和可靠性。 選用單片機的結構: 1 一個8 位算術邏輯單元 2 32 個 I/O 口4 組8 位端口可單獨尋址 3 兩個16 位定時計數器 4 全雙工串行通信 5 6 個中斷源兩個中斷優先級 6 128 字節內置 RAM 7 獨立的64K 字節可尋址數據和代碼區 每個8051 處理周期包括12 個振蕩周期每12 個振蕩周期用來完成一項操作如取指令和計算指令執行時間可把時鐘頻率除以12 取倒數然后指令執行所須的周期數因此如果你的系統時鐘是11.059MHz 除以12 后就得到了每秒執行的指令個數為921583條指令取倒數將得到每條指令所須的時間1.085ms 。AT89S52的管腳

18、圖如圖4.1所示: 圖4.1 AT89S52管腳圖 單片機外圍電路設計 本設計選用的 AT89S52 是一個低功耗,高性能 CMOS 8 位單片機,片內含4k Bytes ISP(In-system programmable)的可反復擦寫 1000 次的 Flash 只讀程序存儲器,器件采用 ATMEL 公司的高密度、非易失性存儲技術制造,兼容標準MCS-51 指令系統及 80S52 引腳結構,芯片內集成了通用 8 位中央處理器和 ISP Flash 存儲單元,功能強大的微型計算機的 AT89S52 可為許多嵌入式控制應用系統提供高性價比的解決方案。AT89S52 具有如下特點:40 個引腳,

19、4k Bytes Flash 片內程序存儲器,128 bytes 的隨機存取數據存儲器(RAM) ,32 個外部雙向輸入/輸出(I/O)口,5 個中斷優先級 2 層中斷嵌套中斷,2 個 16 位可編程定時計數器,2 個全雙工串行通信口,看門狗(WDT)電路,片內時鐘振蕩器。此外,AT89S52 設計和配置了振蕩頻率,并可通過軟件設置省電模式。空閑模式下,CPU 暫停工作,而 RAM 定時計數器,串行口,外中斷系統可繼續工作,掉電模式凍結振蕩器而保存 RAM 的數據,停止芯片其它功能直至外中斷激活或硬件復位。同時該芯片還具有 PDIP、TQFP 和 PLCC 等三種封裝形式。AT89S52 單片

20、機綜合了微型處理器的基本功能。當 AT89S52 芯片接到來自溫度傳感器的信號時,其內部程序將根據信號的類型進行處理,并且將處理的結果送到顯示模塊、報警模塊、語音播報模塊,發送控制信號控制各模塊。該模塊在硬件設計方面,其外圍電路提供能使之工作的晶振脈沖、復位按鍵,四個 I/O 口分別用于外圍設備連接。單片機AT89S52 硬件連接圖如圖 4.2 所示,其中 P0 接口外接上拉電阻以保證高低電平的準確性。單片機 AT89S52 的 I/O 端口具體分配與下表 4.1: AT89S52 的 I/O 端口具體分配AT89S52 的 IO 端口外接點LCD 顯示地址端口語音芯片播音地址端口DS18b2

21、0 通道連接鍵盤控制端口連接報警器端口開始播音口LCD 讀/寫選擇端LCD 數據/命令端LCD 使能端4.1.3 AT89S52 復位電路系統復位是任何微機系統執行的第一步,使整個控制芯片回到默認的硬件狀態下即單片機的片內電路初始化,使單片機從一種確定的初態開始運行。AT89S52 的復位是由外部的復位電路來實現的。復位引腳 RST 通過一個斯密特觸發器與復位電路相連,斯密特觸發器用來抑制噪聲,復位電路通常采用上電自動復位和按鈕復位兩種方式。手動復位:手動復位需要人為在復位輸入端加高電平讓系統復位。一般采用的方法是在 RST 端和正電源 VCC 之間接一個按鍵,當按下按鍵后,VCC 和 RST

22、端接通,RST 引腳處有高電平,而且按鍵動作一般是數十毫秒、大于兩個機器周期的時間,能夠安全的讓系統復位。上電復位:上電復位電路是種簡單的復位電路,只要在 RST 復位引腳接一個電容到 VCC,接一個電阻到地就可以了。上電復位是指在給系統上電時,復位電路通過電容加到 RST 復位引腳一個短暫的高電平信號,這個復位信號隨著 VCC 對電容的充電過程而回落,所以 RST 引腳復位的高電平維持時間取決于電容的充電時間。為了保證系統安全可靠的復位,RST 引腳的高電平信號必須維持足夠長的時間。在本設計中復位電路的設計是采用簡單,用得比較廣的復位電路接法,如圖 4.3 所示,它具有上電復位和按鍵復位的雙

23、重復位功能。圖 4.3 復位電路4.1.4 AT89S52 時鐘電路示:圖 4.4 時鐘電路圖AT89S52 單片機內部有一個用于構成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳 XTAL1,輸出端為引腳 XTAL2。這兩個引腳跨接石英晶體振蕩器和微調電容,就構成一個穩定的自激振蕩器。4.24.2 電源模塊電源模塊鑒于系統使用的單片機 AT89S52 和各芯片工作電壓在 5V 左右。我們選擇了 5V 穩壓電源給單片機和各芯片供電。電路由簡單實用的三端穩壓器構成,輸入電壓 5V,滿足大部分電路的要求,電源電路圖如下圖 4.5 所示,由于使用了全橋,電壓輸入既可以使用交流輸入,又

24、可以使用正負直流輸入,能夠防止由于極性接反造成的事故。濾波電容使用電解電容與小電容并聯的方式,能夠有效消除高頻自激現象。發光二極管接到電源與地之間,如果電源輸出不正常,發光二極管都會出現工作異常,提示電源部分故障。圖 4.5 電源電路圖4.3 溫度傳感器模塊本模塊主要作用是進行溫度采集,然后經采集的數據送入 AT89S52 里進行分析處理。在本次設計中采用了 DS18B20 作為數據采集器,它的精度最少可以精確到 0.0625,完全可以用來進行環境溫度的測量。DS18B20 是美國 DALLAS 公司生產的單總線數字溫度傳感器,可把溫度信號直接轉換成串行數字信號供微處理器處理,而且可以在一條總

25、線上掛接任意多個 DS18B20 芯片,構成多點溫度檢測系統無需任何外加硬件。DS18B20 數字溫度傳感器可提供 912 位溫度讀數,讀取或寫入 DS18B20 的信息僅需一根總線,總線本身可以向所有掛接的DS18B20 芯片提供電源,而不需額外的電源。由 DS18B20 這一特點,非常適合于多點溫度檢測系統,硬件結構簡單,方便聯網,在倉儲管理、工農業生產制造、氣象觀測、科學研究以及日常生活中被廣泛應用。 DS18B20 的測溫原理。溫度轉換后以 16bit 格式存入便箋式 RAM,可以用讀便箋式 RAM命令(BEH) 通過 1 - Wire 接口讀取溫度信息,數據傳輸時低位在前,高位在后。

26、內部溫度數據格式如圖 4.6 所示。溫度/數字對應關系如表 4.2 所示(分辨率為12bit 時) 。由于 DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。操作協議為:初始化 DS18B20(發復位脈沖)發 ROM功能命令發存儲器操作命令處理數據。 表 溫度和數據對應表溫度二進制數據十六進制數據+125C0000 0111 1101 000007D0h+85C*0000 0101 0101 00000550h+25.0625C0000 0001 1001 00010191h+10.125C0000 0000 1010 001000A2h+0.5C0000 00

27、00 0000 10000008h0C0000 0000 0000 00000000h-0.5C1111 1111 1111 1000FFF8h-10.125C1111 1111 0101 1110FF5Eh-25.0625C1111 1110 0110 1111FE6Fh-55C1111 1100 1001 0000FC90h DS1820B 內部溫度數據格式 DS18B20 與 AT89S52 的接口電路設計DS18B20 可以從單總線上得到能量并儲存在內部電容中,該能量是當信號線處于低電平期間消耗,在信號線為高電平時能量得到補充,這種供電方式稱為寄生電源供電。DS18B20 也可以由 3

28、5.5V 的外部電源供電。所以在硬件上,DS18B20 與單片機的連接有兩種方法,一種是 VCC 接外部電源,GND 接地,I/O 與單片機的 I/O 線相連;另一種是用寄生電源供電,此時 UDD、GND 接地,I/O 接單片機 I/O。無論是內部寄生電源還是外部供電,I/O 口線要接 5K 左右的上拉電阻.我們采用的是第一種連接方法, 如圖 4.7 所示:把 DS18B20 數據線與 AT89S52 的 P2.0,再加上上拉電阻。圖 4.7 DS18B20 與 AT89S52 的接口電路4.4 鍵盤控制模塊按鍵的開關狀態通過一定的電路轉換為高、低電平狀態。按鍵閉合過程在相應的 I/O 端口形

29、成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩定,這一過程是處于高、低電平之間的一種不穩定狀態,稱為抖動。本系統中用到四個功能控制按鍵,用 P2 的 4 個 I/O 口接 4 個獨立式按鍵即可滿足需要,軟件消除抖動,當發現有鍵按下時,延時10-20ms再查詢是否有鍵按下,若沒有鍵按下,說明上次查詢結果為干擾或抖動;若沒有鍵按下,說明上次查詢結果為干擾或抖動;若仍有鍵按下,則說明閉合鍵已穩定。準確判斷去執行相應的程序。電路圖如圖 4.8 所示。圖 4.8 鍵盤控制電路4.5 報警模塊報警模塊的工作原理是當溫度傳感器檢測到的溫度高于溫度的上限或低于溫度的下限設定值時單片機的發出高電平信號

30、促使 PNP 三極管導通點亮發光二極管,蜂鳴器也發出響聲,產生聲光報警。電路圖如圖 4.9 所示。 報警電路該模塊是由 RT1602 液晶顯示器件組成, 第 3 腳: VL 為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影” ,使用時可以通過一個 10K 的電位器調整對比度。第 4 腳:RS 為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。第 5 腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當 RS 和 RW 共同為低電平時可以寫入指令或者顯示地址,當 RS 為低電平 RW 為高電平時可以讀忙信號,當 RS 為高電平

31、 RW 為低電平時可以寫入數據。第 6 腳:E 端為使能端,當 E 端由高電平跳變成低電平時,液晶模塊執行命令。第 714 腳:D0D7 為8 位雙向數據線。由上可知 1602 基本操作時序如表 4。其第 1516 腳:背光電源腳。RT1602 與單片機的應用連接電路圖如圖 4.10 所示。表 4.3 LCD1602 基本操作時序基本時序操作輸入輸出讀狀態RS=L,R/W=H,E=HDOD7=狀態讀數據RS=H,R/W=H,E=H無寫指令RS=L,R/W=L,E=高脈沖,DOD7=指令碼DOD7=數據讀指令RS=H,R/W=L,E=高脈沖,DOD7=數據無 圖 4.10 液晶顯示模塊接口電路本

32、模塊采用的核心語音芯片 ISD1402 語音芯片是美國 ISD(Information Storage Device)公司的產品。它包括時鐘振蕩器、128K 可編程電擦除只讀存儲器(EEPROM)、低噪前置放大器、自動增益控制電路、抗干擾濾波器、差分功率放大器等電路。ISD1400 系列語音芯片采用直接存儲模擬信號,自動待機省電,可編程電擦除只讀存儲和總線技術。ISD1400 是一種具有高保真、錄音數據永久保存、省電、適用于同單片機接口特點的新一代語音芯片。ISD1420是 ISD1400 系列中錄音時長為 20s 語音芯片。ISD1420 是采用模擬存取技術集成的可反復錄放的 20 秒語音芯

33、片,掉電語音不丟失,最大可分 160 段,最小每段語音長度為 125ms,每段語音都可由地址線控制輸出,每 125ms 為一個地址,由 A0-A7 八根地址線控制。4.7.1 ISD1420 語音芯片錄放音電路設計分段錄音時,ISD1420 的 A0-A7 用作地址輸入線,A6、A7 不可同時為高電平,所以地址范圍為 00H-9FH,即為十進制碼 0-159 共 160 個數值。這表明ISD1420 的 EEPROM 模擬存儲器最多可被劃分為 160 個存儲單元,也就是說ISD1420 最多可存儲 160 個語音段,語音段的最小時間長度為。不同分段的選擇是通過對 A0-A7 端接不同的高低電平

34、來實現。ISD1420 分段錄音可以通過硬件(開關)來實現也可以通過軟件編程來實現。為硬件實現錄音和放音的電路圖。圖 4.11 語音芯片錄音和放音電路其中 ISD1420 各引腳說明如下:A0-A7地址輸入端,當 A6 和 A7 不全為高電平時,A0-A7 為分段錄音信息地址線,不同的地址對應不同的錄音片斷。MIC話筒輸入端,話筒輸入信號通過電容交流耦合至此引腳并傳給片上預放大器,耦合電容 C7 的值和該端內阻 R7(10K)決定語音信號通頻帶下限頻率。 MICREF話筒參考輸人端,MICREF 是預放大器的反相輸入端,配合外電路可使片上預放大器具有較高的噪聲抑制比和共模抑制比。ANA IN模

35、擬信號輸人端,對于話筒輸入,ANA IN 引腳應通過外部電容C4與ANA OUT引腳連接,耦合電容C4決定片上控制預放大器通頻帶的下限頻率。ANA OUT預放大器的輸出端,預放大器的電壓增益取決于 AGC 電平,對于小信號輸入電平,其增益最大為 24dB,對于強信號,增益較低。AGC自動增益控制端,AGC 動態地調整預放大器增益,使加至 MIC 輸入端的非失真信號的范圍擴展。內阻抗(5 歐)和外部電容決定 AGC 的響應時間,外部電容和外部電阻的 RC 時間常數決定 AGC 的釋放時間。SP+、SP- 喇叭輸出端,該端可直接驅動 16 歐的喇叭。XCLK外接時鐘輸入端,ISD1420 具有內部

36、時鐘,一旦接人外部時鐘,內部時鐘會自動失去作用。改電路不用外部時鐘該引腳接地,一般不推薦使用外部時鐘,除非要求時鐘信號特別精確。RECLED工作狀態指示端,在錄音或放音時該端輸出低電平,可驅動一個LED 來指示狀態。在錄音過程中指示燈一直亮著,在放音結束時,指示燈閃爍一下。PLAYE邊沿觸發放音控制端,該端輸人一低脈沖,芯片即進入放音狀態,直至遇到信息結束標記(EOM)或到存儲空間的末尾時回放過程結束,電路自動進入準備狀態。回放過程中 PLAYE 變化不會影響回放過程。PLAYL電平觸發放音控制端,該端電平變為低電平并保持,芯片進入放音狀態,放音過程持續到該端電平由低變高或遇到信息結束標記(E

37、OM),結束后電路進入準備狀態。REC錄音觸發端,REC 一旦變為低電平,芯片就進入錄音狀態,REC 的權限優先于 PLAYE 和 PLAYL,在放音期間若遇 REC 接低電平時,放音就會立即停止并轉入錄音狀態開始錄音。錄音期間 REC 應始終保持低電平,REC 變高或存儲空間變滿時錄音過程結束,這時在錄音截止的地方會記錄一個信息結束標記(EOM)。VCCD、VCCA數字電源正端和模擬電源正端。VSSD、VSSA數字地和模擬地。電路實現錄音功能說明如下,S1、S2、S3 分別是控制錄音和放音按鍵,當按下 S1 時開始錄音,S2、S3 為兩種方式的放音按鍵,當按一下 S2 時開始放音,是下降沿觸

38、發的,而 S3 為電平控制的,必須一直按著此鍵直至放音結束。LED和限流電阻組成錄放音指示電路,當錄音結束、錄音超出時限(存儲器溢出)或放音結束時,ISD1420 的 25 腳呈高電平,LED 熄滅。對 ISD1420 進行分段錄音之前要先列出語音信息與分段地址的對照表,如表 4.4 所示。然后檢查電路連接、接線和電源情況。并通過對照表來設置 8 個開關選擇要錄音的地址,最后按下錄音鍵直至錄音結束,松開錄音鍵,重復此操作就可以將自己需要錄入的內容全部錄入到芯片中。另外,A0 和 A1 都需要接地,因為我們要確保分段間隔不小于,所以至少要四段,否則錄音的信息可能會重疊,導致放音時達不到自己的要求

39、。用戶錄制的語音每一段結束后芯片自動設有段結束標志(EOM) ,芯片錄滿后設有溢出標志(OVF) 。表 4.4 分段語音信息與地址對照表語 音 信 息分段地址A7A6A5A4A3A2A1A0100H 0 0 0 0 0 0 0 0208H 0 0 0 0 1 0 0 0310H0 0 0 1 0 0 00418H0 0 0 1 10 00520H0 0 1 0 0 0 00628H0 0 1 0 1 0 00730H0 01 1 0 0 00838H0 01 1 1 0 00940H0 1 0 00 0 0 0十48H0 1 0 0 1 0 00攝氏度50H0 1 0 1 0 0 0 0現在溫

40、度是58H1 0 0 1 1 0 0 04.7.2 ISD1420 與 AT89S52 接口電路設計ISD1420 錄音和放音電路可以通過硬件開關控制。本設計錄音是用硬件控制,但是播報溫度放音是通過 AT89S52 來控制的。單片機某一段的起始地址進行放音操作,遇到段結束標志(EOM)即自動停止放音,單片機收到段結束標志(EOM)就開始觸發下一段語音的起始地址,如此控制,即可以將很多、不同段的語音組合在一起成一句話放音出來,實現語音的自動組合。ISD1420 與AT89S52 的接口連接入下:AT89S52 的 P1 端口連接地址線 ISD1420 的 A0-A7,ISD1420 放音電路通過

41、 AT89S52 的口控制 PLAYER 放音。具體連接圖見圖4.11。5 軟件部分5.1 開發工具介紹 單片的使用除了硬件,同樣也要軟件的使用,我們寫匯編程序編程 CPU 可執行的機器碼有兩種方法,一種是手工匯編,一種是機器匯編。機器匯編通過匯編軟件變為機器碼,用于 MSC-51 單片機的匯編軟件有早期的 A51,隨著單片機開發技術的不斷發展,從使用普通匯編語言到高級語言的不斷發展,Keil 是目前最流行開發 MCS-51 系列單片機的軟件。Keil c51 匯編,PLM 語言和 C 語言的程序設計,界面友好。Keil 是美國 keil software 公司出品的 52 系列兼容單片機 c

42、 語言開發系統。用過匯編語言后再使用 C 語言來開發,體會更加深刻。 Keil C51 軟件提供豐富的庫,與匯編相比,C 語言在功能上,結構上,可讀性,可維護性上有明顯的優勢,因而易學易用函數和功能強大的集成開發調試工具,全 Windows 界面。另外重要的一點,只要看一下編譯后生產的匯編代碼,就能體會到 KeilC51DE 生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解,在開發大型軟件時更能體現高級語言的優勢。5.2 系統的主程序設計主程序是在程序運行的過程中必須先經過初始化,包括鍵盤程序,測量程序,以及各個控制端口的初始化工作。系統在初始化完成后就進入讀取溫度測量程序,

43、實時的測量當前的溫度,得到溫度后判斷溫度是否超過溫度設置的上下限。超出(低于)溫度上下限,調用報警子程序。再顯示電路在 LCD初始化判斷溫度在設定范圍顯示溫度子程序報警子程序顯示時間子程序測量溫度子程序判斷顯示模式子程序顯示溫度上下限子程序鍵盤掃描子程序圖 5.1 主程序流程圖5.2.1 鍵盤掃描子程序對于系統來說,鍵輸入程序是整個鍵盤控制應用系統的核心。當所設的功能鍵按下時,本系統應完成該鍵所設的功能。本系統具體實現功能如下表5.1。按鍵閉合過程在相應的 I/O 端口形成一個負脈沖。閉合和釋放過程都要經過一定的過程才能達到穩定,這一過程是處于高、低電平之間的一種不穩定狀態,稱為抖動。為了保證

44、 CPU 對鍵一次閉合,僅作一次鍵輸入處理,必須去抖動影響。本設計采用軟件去抖的辦法是在檢測到有按鍵按下時,執行一個510ms(延時子程序未在流程圖中畫出) 。表 5.1 按鍵功能表按鍵實現功能開機SW5 按下一次進入時間秒設置模式SW5 按下二次進入時間分設置模式SW5 按下三次進入時間時設置模式SW5 按下四次進入溫度上限設置模式SW5 按第五次進入溫度下限設置模式SW5 按下第六次退出設置模式SW6 按下一次在設置模式下對應數值加一SW7 按下一次在設置模式下對應數值減一SW8 按下一次播報當時溫度值鍵盤開始掃描ct=0;P1=ct; SW5 按下SW6 按下SW7 按下SW8 按下ct

45、+;if(ct5)ct=0;if(ct=4|ct=5)顯示溫度上下限子程序;else 顯示時間子程序If(ct=0)無效;If(ct=1)秒加 1;If(ct=2)分加 1;If(ct=3) 時加 1If(ct=4)上限加 1If(ct=5)下限加 1語音播報子程序If(ct=0)無效;If(ct=1)秒減 1;If(ct=2)分減 1;If(ct=3) 時減 1If(ct=4)上限加減If(ct=5)下限減 1圖 5.2 鍵盤子程序流程圖5.測量溫度子程序設計由在整個語音溫度計的設計中是以正確采集溫度為前提的,因為如果溫度采集就不正確,那么即使后續電路如顯示和報溫電路均正確,最后的結果仍然不

46、能達到我們所要的目標,也就是不能正確的對環境溫度進行顯示和報溫,所以關于 DS18B20 的溫度采集是非常重要的。DS18B20 單線通信功能是分時完成的,它有嚴格的時隙概念,因此讀寫時序很重要。操作協議為:初始化DS18B20(發復位脈沖)發 ROM 功能命令發存儲器操作命令。部分控制DS18B20 指令功能如表 5.2 所示:初始化寫跳過 ROM 指令寫啟動溫度轉換指令延時初始化寫跳過 ROM 指令寫讀溫度轉換指令讀取溫度圖 5.3 測溫度子程序流程圖表 5.2 控制 DS18B20 指令表指 令 指令代碼 操 作 說 明 跳過 ROMCCH忽略 64 位 ROM 編碼溫度轉換 44H啟動

47、 DS18B20 進行溫度轉換 讀暫存器 BEH讀暫存器 9 個字節內容 寫暫存器 4EH將數據寫入暫存器的 TH、TL 字節 復制暫存器 48H把暫存器的 TH、TL 字節寫到 E2RAM 中 重新調 E2RAMB8H把 E2RAM 中的 TH、TL 字節寫到暫存器TH、TL 中 讀電源供電方式 B4H啟動 DS18B20 發送電源供電方式的信號給主 CPU報警子程序圖 5.4 報警子程序流程圖實現時鐘功能的程序設計本系統的時鐘直接用單片機的定時器編程以實現時鐘,節省硬件。TMOD=0 x01 定時器 T0 初始化方式 1。定時時間=(65536-T0 初值)*時鐘周期*12。本設計中定時時

48、間 50ms,時鐘周期為 12M,顧 TH0=0 x3c;TL0=0 xb0 時鐘實現流程圖如圖 15.5 所示: 不報警小于 0小于0大于 0小于 0大于 0大于0讀取溫度值溫度值減上限值溫度值減下限值報警定時器 T0 初始化(方式 1)判斷 mstcnt=20 判斷 Seconde=60Seconde +Mstcnt+Hour+判斷 Hour =24Hour=0 時鐘功能實現流程圖顯示程序設計本設計使用的 LCD1602 基本操作時序如下表 4.2。清楚基本操作時序就可以完成寫指令和寫數據到 LCD 中的子函數設計。在子函數中為了使液晶顯示更加穩定,可以最簡短的延時。顯示模式包括當前溫度顯

49、示,時間顯示模式,溫度上下限,他們實現都是先初始化調用顯示字符串子程序后再調用顯示指定位置字符子程序,具體看顯示當前溫度子程序流程圖如圖 5.6 所示:當前檢測溫度數據移入顯示寄存器LCD 初始化顯示字符temp: . oC-顯示當前溫度圖 5.6 顯示當前溫度子程序流程圖 語音播放子程序單片機語根據語音信息與分段地址的對照表和當前溫度組合出播報當前的溫度語音數據地址,再通過控制語音芯片放音,把處理的數據地址通過 P1 端口寫給語音芯片,程序流程如圖 5.7 所示:播報“現在溫度是”,播報溫度值的個位溫度值10播報“度”個位為零播報溫度值的十位播報“十”播報溫度值個位播報“度”個位不為零播報溫

50、度值的十位播報“十”播報“度”圖 5.7 語音播放子程序6 仿真結果數據分析各項功能仿真方法及仿真結果如下表 6.1 各項功能仿真方法及結果類別仿真項目仿真方法仿真結果(1)正常開機有嘟聲開機實現 仿真實現(2)測量范圍開機顯示,調整 DS18B20的溫度是否都可以顯示仿真實現(3)顯示時間和溫度開機顯示仿真實現(4)調整時間、日期,設定最低、最高溫度按 SW5 進入時間、最低、最高溫度調整功能,SW6加 1,SW7 減 1,最后按SW5 確認溫度設定結束 仿真實現(5)報警功能調整 DS18B20 溫度分別超過上限與下限,啟動蜂鳴器與指示燈仿真實現基本部分(6)語音播放功能觀察連接語音芯片

51、P1 和高低電平的變化仿真實現7 結束語本文設計的語音溫度計,即可用于人民生活中的日常用品,還可以單獨作為系統為了保證某特定環境溫度維持在設定的范圍內,以保證工作系統在穩定的狀態下工作。本文設計的語音溫度計成本很低,如果采用大批量生產的話,生產成本會更低,可以帶來一定的經濟效益。經過這段時間的方案論證、系統的硬件和軟件的設計、系統的仿真和調試。查閱了大量的關于傳感器、單片機及其接口電路、以及控制方面的理論。經過了一番特殊的體驗后,靠用所學的專業知識來解決問題。檢查了自己的知識水平,使我對自己有一個全新的認識。通過這次畢業設計,不僅鍛煉自己分析問題、處理問題的能力,還提高了自己的動手能力。這些培

52、養和鍛煉對于我們這些即將走向工作崗位的大學生來說,是很重要的。這次畢業設計基本的完成了任務書的要求,實現了溫度的控制和語音播報。通過仿真表明系統的設計是正確的,可行的。但是由于設計者的設計經驗和知識水平有限,本文設計的語音溫度計還存在許多不足和缺陷。參考文獻1 余小平等.電子系統設計M .北京航空航天大學出版社.2007 133-1352 何立民等.單片機中級教程原理與應用M.北京航空航天大學出版 社.1999 345678 Dallas 公司. DS18B20 Resolution One Wire Digital Thermometer. G.20009 ISD 公司Datebook of

53、 Voice Recoding&Playback Ics G200011DALLAS. High Precision l-wire Digital ThermometerEB/OL. : / dalsemi .10DALLAS. Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButtonTM ProductsEB/OL. :/ dalsemi .附錄一:電路圖附錄二:源程序/*語音溫度計*/*以下源代碼是主程序部分 main.c*/#include #include LCD1602

54、.h#include clock.h#include key.h#include DS18B20.h#include temp.h#include BEEP.h#include ISD1420.h#include speakTEMP.hvoid delayMs(unsigned int ms) /延時 unsigned char j;while(ms-)for(j=0; j top_temp | temp (char)bottom_temp) beep();displayTemp(); /顯示溫度子函數if(DisplayTimeFlag) /判斷顯示模式displayClock(); /顯示

55、時間子函數elsedisplayTempLim(); /顯示溫度上下限子函數delayMs(10);/*以下源代碼是顯示子程序 部分*/#ifndef_LCD1602_H_#define _LCD1602_H_#include #include #define BUSY 0 x80 /lcd 忙檢測標志#define DATAPORT P0sbit LCM_RS=P37;/數據/命令端sbit LCM_RW=P36;/讀/寫選擇端sbit LCM_EN=P27; /LCD 使能信號void delay_LCM(unsigned int); /LCD 延時子程序延時 msvoid initLCM

56、(void); /LCD 初始化子程序void lcd_wait(void); /LCD 檢測忙子程序void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC); /寫指令到 ICM 子函數void WriteDataLCM(unsigned char WDLCM); /寫數據到 LCM 子函數void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData); /顯示指定坐標的一個字符子函數void DisplayListChar(unsigned c

57、har X,unsigned char Y,unsigned char code *DData); /顯示指定坐標的一串字符子函數 unsigned int i,j; for(i=0;ik;i+) for(j=0;j60;j+) ; void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)/寫指令到 LCM 子函數 if(BusyC)lcd_wait();DATAPORT=WCLCM; LCM_RS=0; / 選中指令寄存器 LCM_RW=0; / 寫模式 LCM_EN=1; _nop_(); _nop_(); _nop_();

58、 LCM_EN=0; void WriteDataLCM(unsigned char WDLCM) / 寫數據到 LCM 子函數 lcd_wait( ); /檢測忙信號 DATAPORT=WDLCM; LCM_RS=1; / 選中數據寄存器 LCM_RW=0; / 寫模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0;void lcd_wait(void) / lcm 內部等待函數 DATAPORT=0 xff; LCM_EN=1;LCM_RS=0; LCM_RW=1; _nop_(); _nop_(); _nop_(); while(DATAPO

59、RT&BUSY) LCM_EN=0;_nop_(); _nop_(); LCM_EN=1; _nop_(); _nop_(); LCM_EN=0;void initLCM( ) / LCM 初始化子函數 DATAPORT=0;delay_LCM(15);WriteCommandLCM(0 x38,0); /三次顯示模式設置,不檢測忙信號 delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); WriteCommandLCM(0 x38,1); /8bit

60、數據傳送,2 行顯示,5*7 字型,檢測忙信號 WriteCommandLCM(0 x08,1); /關閉顯示,檢測忙信號 WriteCommandLCM(0 x01,1); /清屏,檢測忙信號 WriteCommandLCM(0 x06,1); /顯示光標右移設置,檢測忙信號 WriteCommandLCM(0 x0c,1); /顯示屏打開,光標不顯示,不閃爍,檢測忙信號void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData)/ 顯示指定坐標的一個字符子函數 Y&=1; X&=15; if(Y)X|=0 x40; /若 y 為 1(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論