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

下載本文檔

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

文檔簡介

1、題目: 基于基于 AT89S52AT89S52 智能語音溫度計的設(shè)計智能語音溫度計的設(shè)計摘要以AT89S52為核心,選用DS18B20單總線數(shù)字溫度傳感器,RT1602液晶顯示器實(shí)現(xiàn),液晶顯示當(dāng)前日期、時間和溫度。當(dāng)測量溫度超過設(shè)定的溫度上下限時,啟動蜂鳴器和指示燈報警。溫度顯示穩(wěn)定,且溫度測量誤差1,溫度值小數(shù)部分保留兩位有效數(shù)字。增加了攝氏溫度與華氏溫度轉(zhuǎn)換對比顯示功能,設(shè)定了整點(diǎn)語音自動播報時間溫度,手動實(shí)時播報時間溫度功能。關(guān)鍵詞: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 設(shè)計要求.13 方案論證.13.1 電源模塊.23.2 溫度傳感器模塊.23.3 顯示模塊.23.4 鍵盤控制模塊.33.5 語音播報模塊.34 設(shè)計原理.4.4.44.1.2 單片機(jī)外圍電路設(shè)計.64.1.3 AT89S52 復(fù)位電路 .74.1.4 AT89S52 時鐘電路 .84.2 電源模塊.9.94.3.1 DS18B20 的測溫原理 .104.3.2 DS18B20 與 AT89S52 的接口電路設(shè)計 .1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

26、內(nèi)部溫度數(shù)據(jù)格式如圖 4.6 所示。溫度/數(shù)字對應(yīng)關(guān)系如表 4.2 所示(分辨率為12bit 時) 。由于 DS18B20 單線通信功能是分時完成的,它有嚴(yán)格的時隙概念,因此讀寫時序很重要。操作協(xié)議為:初始化 DS18B20(發(fā)復(fù)位脈沖)發(fā) ROM功能命令發(fā)存儲器操作命令處理數(shù)據(jù)。 表 溫度和數(shù)據(jù)對應(yīng)表溫度二進(jìn)制數(shù)據(jù)十六進(jìn)制數(shù)據(jù)+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 內(nèi)部溫度數(shù)據(jù)格式 DS18B20 與 AT89S52 的接口電路設(shè)計DS18B20 可以從單總線上得到能量并儲存在內(nèi)部電容中,該能量是當(dāng)信號線處于低電平期間消耗,在信號線為高電平時能量得到補(bǔ)充,這種供電方式稱為寄生電源供電。DS18B20 也可以由 3

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

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

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

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

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

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

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

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

36、時鐘,一旦接人外部時鐘,內(nèi)部時鐘會自動失去作用。改電路不用外部時鐘該引腳接地,一般不推薦使用外部時鐘,除非要求時鐘信號特別精確。RECLED工作狀態(tài)指示端,在錄音或放音時該端輸出低電平,可驅(qū)動一個LED 來指示狀態(tài)。在錄音過程中指示燈一直亮著,在放音結(jié)束時,指示燈閃爍一下。PLAYE邊沿觸發(fā)放音控制端,該端輸人一低脈沖,芯片即進(jìn)入放音狀態(tài),直至遇到信息結(jié)束標(biāo)記(EOM)或到存儲空間的末尾時回放過程結(jié)束,電路自動進(jìn)入準(zhǔn)備狀態(tài)。回放過程中 PLAYE 變化不會影響回放過程。PLAYL電平觸發(fā)放音控制端,該端電平變?yōu)榈碗娖讲⒈3郑酒M(jìn)入放音狀態(tài),放音過程持續(xù)到該端電平由低變高或遇到信息結(jié)束標(biāo)記(E

37、OM),結(jié)束后電路進(jìn)入準(zhǔn)備狀態(tài)。REC錄音觸發(fā)端,REC 一旦變?yōu)榈碗娖剑酒瓦M(jìn)入錄音狀態(tài),REC 的權(quán)限優(yōu)先于 PLAYE 和 PLAYL,在放音期間若遇 REC 接低電平時,放音就會立即停止并轉(zhuǎn)入錄音狀態(tài)開始錄音。錄音期間 REC 應(yīng)始終保持低電平,REC 變高或存儲空間變滿時錄音過程結(jié)束,這時在錄音截止的地方會記錄一個信息結(jié)束標(biāo)記(EOM)。VCCD、VCCA數(shù)字電源正端和模擬電源正端。VSSD、VSSA數(shù)字地和模擬地。電路實(shí)現(xiàn)錄音功能說明如下,S1、S2、S3 分別是控制錄音和放音按鍵,當(dāng)按下 S1 時開始錄音,S2、S3 為兩種方式的放音按鍵,當(dāng)按一下 S2 時開始放音,是下降沿觸

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

39、。用戶錄制的語音每一段結(jié)束后芯片自動設(shè)有段結(jié)束標(biāo)志(EOM) ,芯片錄滿后設(shè)有溢出標(biāo)志(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現(xiàn)在溫

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

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

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

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

44、 CPU 對鍵一次閉合,僅作一次鍵輸入處理,必須去抖動影響。本設(shè)計采用軟件去抖的辦法是在檢測到有按鍵按下時,執(zhí)行一個510ms(延時子程序未在流程圖中畫出) 。表 5.1 按鍵功能表按鍵實(shí)現(xiàn)功能開機(jī)SW5 按下一次進(jìn)入時間秒設(shè)置模式SW5 按下二次進(jìn)入時間分設(shè)置模式SW5 按下三次進(jìn)入時間時設(shè)置模式SW5 按下四次進(jìn)入溫度上限設(shè)置模式SW5 按第五次進(jìn)入溫度下限設(shè)置模式SW5 按下第六次退出設(shè)置模式SW6 按下一次在設(shè)置模式下對應(yīng)數(shù)值加一SW7 按下一次在設(shè)置模式下對應(yīng)數(shù)值減一SW8 按下一次播報當(dāng)時溫度值鍵盤開始掃描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.測量溫度子程序設(shè)計由在整個語音溫度計的設(shè)計中是以正確采集溫度為前提的,因?yàn)槿绻麥囟炔杉筒徽_,那么即使后續(xù)電路如顯示和報溫電路均正確,最后的結(jié)果仍然不

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

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

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

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

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

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

52、養(yǎng)和鍛煉對于我們這些即將走向工作崗位的大學(xué)生來說,是很重要的。這次畢業(yè)設(shè)計基本的完成了任務(wù)書的要求,實(shí)現(xiàn)了溫度的控制和語音播報。通過仿真表明系統(tǒng)的設(shè)計是正確的,可行的。但是由于設(shè)計者的設(shè)計經(jīng)驗(yàn)和知識水平有限,本文設(shè)計的語音溫度計還存在許多不足和缺陷。參考文獻(xiàn)1 余小平等.電子系統(tǒng)設(shè)計M .北京航空航天大學(xué)出版社.2007 133-1352 何立民等.單片機(jī)中級教程原理與應(yīng)用M.北京航空航天大學(xué)出版 社.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(); /顯示溫度子函數(shù)if(DisplayTimeFlag) /判斷顯示模式displayClock(); /顯示

55、時間子函數(shù)elsedisplayTempLim(); /顯示溫度上下限子函數(shù)delayMs(10);/*以下源代碼是顯示子程序 部分*/#ifndef_LCD1602_H_#define _LCD1602_H_#include #include #define BUSY 0 x80 /lcd 忙檢測標(biāo)志#define DATAPORT P0sbit LCM_RS=P37;/數(shù)據(jù)/命令端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 子函數(shù)void WriteDataLCM(unsigned char WDLCM); /寫數(shù)據(jù)到 LCM 子函數(shù)void DisplayOneChar(unsigned char X,unsigned char Y,unsigned char DData); /顯示指定坐標(biāo)的一個字符子函數(shù)void DisplayListChar(unsigned c

57、har X,unsigned char Y,unsigned char code *DData); /顯示指定坐標(biāo)的一串字符子函數(shù) unsigned int i,j; for(i=0;ik;i+) for(j=0;j60;j+) ; void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)/寫指令到 LCM 子函數(shù) 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) / 寫數(shù)據(jù)到 LCM 子函數(shù) lcd_wait( ); /檢測忙信號 DATAPORT=WDLCM; LCM_RS=1; / 選中數(shù)據(jù)寄存器 LCM_RW=0; / 寫模式 LCM_EN=1; _nop_(); _nop_(); _nop_(); LCM_EN=0;void lcd_wait(void) / lcm 內(nèi)部等待函數(shù) 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 初始化子函數(shù) DATAPORT=0;delay_LCM(15);WriteCommandLCM(0 x38,0); /三次顯示模式設(shè)置,不檢測忙信號 delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); WriteCommandLCM(0 x38,0); delay_LCM(5); WriteCommandLCM(0 x38,1); /8bit

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

溫馨提示

  • 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

提交評論