版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 題目: 基于AT89S52智能語(yǔ)音溫度計(jì)的設(shè)計(jì)</p><p><b> 摘要</b></p><p> 以AT89S52為核心,選用DS18B20單總線數(shù)字溫度傳感器,RT1602液晶顯示器實(shí)現(xiàn),液晶顯示當(dāng)前日期、時(shí)間和溫度。當(dāng)測(cè)量溫度超過(guò)設(shè)定的溫度上下限時(shí),啟動(dòng)蜂鳴器和指示燈報(bào)警。溫度顯示穩(wěn)定,且溫度測(cè)量誤差≤±1℃,溫度值小數(shù)
2、部分保留兩位有效數(shù)字。增加了攝氏溫度與華氏溫度轉(zhuǎn)換對(duì)比顯示功能,設(shè)定了整點(diǎn)語(yǔ)音自動(dòng)播報(bào)時(shí)間溫度,手動(dòng)實(shí)時(shí)播報(bào)時(shí)間溫度功能。</p><p> 關(guān)鍵詞:DS18B20;液晶顯示;語(yǔ)音播報(bào);聲光報(bào)警</p><p><b> Abstract</b></p><p> AT89S52 as the core, choose to single
3、 bus digital 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 li
4、mit, start with light alarm buzzer. Temperature display stability, and temperature measurement error acuities 1℃, plus or minus temperature the decimal part retained two significant digits. Increased Celsius temperature
5、conversion contrast wit</p><p> Keyword:DS18B20;LCD;speech function;sounding and light alarm.</p><p><b> 目錄</b></p><p><b> 摘要i</b></p><p>
6、Abstracti</p><p><b> 1 引言1</b></p><p><b> 2 設(shè)計(jì)要求1</b></p><p><b> 3 方案論證1</b></p><p> 3.1 電源模塊2</p><p> 3.2 溫度
7、傳感器模塊2</p><p> 3.3 顯示模塊2</p><p> 3.4 鍵盤控制模塊3</p><p> 3.5 語(yǔ)音播報(bào)模塊3</p><p><b> 4 設(shè)計(jì)原理4</b></p><p> 4.1單片機(jī)模塊4</p><p> 4.1.
8、1單片機(jī)介紹4</p><p> 4.1.2 單片機(jī)外圍電路設(shè)計(jì)6</p><p> 4.1.3 AT89S52復(fù)位電路7</p><p> 4.1.4 AT89S52時(shí)鐘電路8</p><p> 4.2 電源模塊9</p><p> 4.3溫度傳感器模塊9</p><p&
9、gt; 4.3.1 DS18B20的測(cè)溫原理10</p><p> 4.3.2 DS18B20與AT89S52的接口電路設(shè)計(jì)11</p><p> 4.4鍵盤控制模塊11</p><p> 4.5報(bào)警模塊12</p><p> 4.6液晶顯示模塊13</p><p> 4.7語(yǔ)音播報(bào)模塊14&l
10、t;/p><p> 4.7.1 ISD1420語(yǔ)音芯片錄放音電路設(shè)計(jì)14</p><p> 4.7.2 ISD1420與AT89S52接口電路設(shè)計(jì)17</p><p><b> 5 軟件部分18</b></p><p> 5.1 開(kāi)發(fā)工具介紹18</p><p> 5.2系統(tǒng)的主程序
11、設(shè)計(jì)18</p><p> 5.2.1鍵盤掃描子程序19</p><p> 5.2.2測(cè)量溫度子程序設(shè)計(jì)20</p><p> 5.2.3報(bào)警子程序21</p><p> 5.2.4實(shí)現(xiàn)時(shí)鐘功能的程序設(shè)計(jì)22</p><p> 5.2.5顯示程序設(shè)計(jì)23</p><p>
12、 5.2.6語(yǔ)音播放子程序24</p><p> 6 仿真結(jié)果數(shù)據(jù)分析25</p><p> 6.1功能仿真和結(jié)果25</p><p><b> 7 結(jié)束語(yǔ)25</b></p><p><b> 參考文獻(xiàn)27</b></p><p> 附錄一:電路圖28
13、</p><p> 附錄二:源程序29</p><p><b> 1 引言</b></p><p> 21世紀(jì)是人類全面進(jìn)入信息電子化的時(shí)代,現(xiàn)代信息技術(shù)的三大基礎(chǔ)是信息采集(即傳感器技術(shù))、信息傳輸(通信技術(shù))和信息處理(計(jì)算機(jī)技術(shù))。隨著人類探知領(lǐng)域和空間的拓展,使得人們需要獲得的電子信息種類日益增加,需要信息傳遞的速度加快,信息處
14、理能力增強(qiáng),因此要求與此相對(duì)應(yīng)的信息采集技術(shù)――傳感技術(shù)必須跟上信息化發(fā)展的需要。傳感器技術(shù)是人類探知自然界信息的觸覺(jué),為人們認(rèn)識(shí)和控制相應(yīng)的對(duì)象提供條件和依據(jù)。它屬于信息技術(shù)的前沿尖端產(chǎn)品,尤其溫度傳感器被廣泛用于工農(nóng)業(yè)生產(chǎn)、科學(xué)研究和生活等領(lǐng)域,數(shù)量居各種傳感器之首。近百年來(lái),溫度傳感器的發(fā)展大致經(jīng)歷了以下三個(gè)階段:(1)傳統(tǒng)的分立式溫度傳感器 (含敏感元件);(2)模擬集成溫度傳感器/控制器;(3)智能溫度傳感器。目前,國(guó)際上新型
15、溫度傳感器正從模擬式向數(shù)字式、由集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。作為現(xiàn)代信息技術(shù)的三大核心技術(shù)之一的傳感技術(shù),將是二十一世紀(jì)世界各國(guó)在高新技術(shù)發(fā)展方面爭(zhēng)奪的一個(gè)重要領(lǐng)域。</p><p><b> 2 設(shè)計(jì)要求</b></p><p> 顯示當(dāng)前日期、時(shí)間、溫度。</p><p> 當(dāng)測(cè)量溫度超過(guò)設(shè)定溫度時(shí),啟動(dòng)報(bào)警模塊報(bào)警。</
16、p><p> 手動(dòng)實(shí)時(shí)播報(bào)溫度,時(shí)間。</p><p> 溫度顯示穩(wěn)定,誤差≤±1℃。</p><p><b> 3 方案論證</b></p><p> 分析本題,根據(jù)設(shè)計(jì)要求先確定了本系統(tǒng)的整體設(shè)計(jì)原理框圖如圖所示</p><p> 圖3.1 原理框圖 &l
17、t;/p><p><b> 3.1 電源模塊</b></p><p> 方案一:采用三只干電池作為電源。該方案的優(yōu)點(diǎn)是設(shè)計(jì)簡(jiǎn)明扼要,成本低;缺點(diǎn)是輸出功率不高,只能勉強(qiáng)驅(qū)動(dòng)單片機(jī),適合小電流負(fù)載。而且在整個(gè)系統(tǒng)工作中,電壓會(huì)隨著時(shí)間的推移不斷降低,進(jìn)而出現(xiàn)死機(jī)等情況。</p><p> 方案二:采用獨(dú)立的穩(wěn)壓電源。電源的穩(wěn)壓的特性較好,能夠保
18、證整個(gè)系統(tǒng)穩(wěn)定工作。</p><p> 綜上分析,為使系統(tǒng)調(diào)試方便,能夠穩(wěn)定工作,必須有可靠電源,所以決定選擇第二種方案。</p><p> 3.2 溫度傳感器模塊</p><p> 方案一:AD590是單片集成的敏感電流源,激勵(lì)電壓在+4V—+30V間選擇,其測(cè)量范圍為-55攝氏度-150攝氏度,所輸出的電流數(shù)值(微安數(shù))等于絕對(duì)溫度K的數(shù)值。AD590具有
19、標(biāo)準(zhǔn)化的輸出和固有的線性關(guān)系,分不同的測(cè)溫范圍和精度供設(shè)計(jì)者選用,通過(guò)微調(diào)電路對(duì)AD590的輸出進(jìn)行修正,可達(dá)到很高的測(cè)試精度。AD590不需要低電平測(cè)量設(shè)備和電橋,可以使用長(zhǎng)導(dǎo)線,而不會(huì)因?yàn)殡妷旱慕档秃透袘?yīng)的噪聲電壓而產(chǎn)生誤差;它又是一個(gè)高阻抗的電流源;對(duì)激勵(lì)的電壓變化不夠敏感。但是AD590需要把被測(cè)溫度轉(zhuǎn)化為電流再通過(guò)放大器和A/D轉(zhuǎn)換器才能輸出數(shù)字量送給單片機(jī)進(jìn)行溫度控制。</p><p> 方案二:D
20、S18B20是美國(guó)達(dá)拉斯半導(dǎo)體公司推出的第一片支持“一線總線”接口的溫度傳感器。它具有微型化、低功耗、高性能、抗干擾能力強(qiáng)、易配微處理器等優(yōu)點(diǎn),可以將溫度直接轉(zhuǎn)化成串行數(shù)字量供微處理器處理。因此,在溫度測(cè)量系統(tǒng)中,采用抗干擾能力強(qiáng)的新型數(shù)字溫度傳感器是解決這些問(wèn)題的有效方案,新型數(shù)字溫度傳感器DS18B20具有體積更小、精度更高、適用電壓更寬、采用一線總線、可組網(wǎng)優(yōu)點(diǎn),在實(shí)際測(cè)溫的過(guò)程中取得了良好的測(cè)量效果。其供電方式簡(jiǎn)單,可用數(shù)據(jù)線供
21、電,所需的外圍器件較少,甚至不需要外圍器件。</p><p> 通過(guò)比較,溫度傳感器DS18B20具有更高的性價(jià)比,DS18B20能夠構(gòu)建經(jīng)濟(jì)的測(cè)溫網(wǎng)絡(luò)。因而在本次設(shè)計(jì)中,選用的是數(shù)字溫度傳感器DS18B20,故采用的是方案二。</p><p><b> 3.3 顯示模塊</b></p><p> 方案一:采用八位數(shù)碼管,將單片機(jī)的數(shù)據(jù)通
22、過(guò)數(shù)碼管顯示出來(lái)。該方案簡(jiǎn)單易行,但所需的元器件較多,且不容易進(jìn)行操作,可讀性較差,一旦設(shè)定后,很難加入其它的功能,顯示格式受控制,且耗電量大。</p><p> 方案二:采用LCD顯示屏進(jìn)行顯示。LCD顯示屏是一種低壓、微功耗的顯示器件,只要2-3伏就可以工作了,工作電流僅為幾微安,是其它顯示器無(wú)法比擬的,同時(shí)可以顯示大量信息,除數(shù)字外,還可以顯示字母,曲線,比傳統(tǒng)的LED數(shù)碼顯示器的畫面有了質(zhì)的提高。雖然L
23、CD顯示器的價(jià)格比傳統(tǒng)的LED數(shù)碼管要貴些,但它的顯示效果更好,是當(dāng)今顯示器的主流,所以采用LCD作為顯示器。采用LCD,更容易實(shí)現(xiàn)題目的要求,對(duì)后續(xù)的功能兼容性高,只需將軟件修改即可,可操作性強(qiáng),易于度數(shù),采用RT1602兩行十六字符的顯示,能同時(shí)顯示時(shí)間,溫度。</p><p> 綜上分析,采用第二種方案。</p><p> 3.4 鍵盤控制模塊</p><p&
24、gt; 方案一:4×4矩陣式鍵盤。此方案對(duì)于本系統(tǒng)來(lái)說(shuō)無(wú)非是浪費(fèi)I/O占用MCU的資源,不利于系統(tǒng)的擴(kuò)展,這就使系統(tǒng)的實(shí)用性降低,況且本系統(tǒng)根本不需要16個(gè)按鍵。</p><p> 方案二:獨(dú)立式按鍵。對(duì)于獨(dú)立式按鍵來(lái)說(shuō),如果設(shè)置過(guò)多按鍵,雖然會(huì)占用較多I/O口,給布線帶來(lái)不便,此方案適用于按鍵較少的情況。</p><p> 在本設(shè)計(jì)中所需要的控制點(diǎn)數(shù)的較少,只需要幾個(gè)功能
25、鍵,簡(jiǎn)便、易操作、成本低就成了首要考慮的因素。所以此時(shí),可采用獨(dú)立式按鍵結(jié)構(gòu)。</p><p> 3.5 語(yǔ)音播報(bào)模塊</p><p> 方案一:通過(guò)A/D轉(zhuǎn)換器、單片機(jī),存儲(chǔ)器,D\A轉(zhuǎn)換器實(shí)現(xiàn)聲音信號(hào)的采樣、處理、存儲(chǔ)和實(shí)現(xiàn)。首先將聲音信號(hào)放大,通過(guò)AD轉(zhuǎn)換器采樣將語(yǔ)音模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),并由單片機(jī)和處理存放到存儲(chǔ)器中,實(shí)現(xiàn)錄音操作。在錄、放音過(guò)程中由單片機(jī)控制D/A轉(zhuǎn)換器,將
26、存儲(chǔ)器中的數(shù)據(jù)轉(zhuǎn)化成聲音信號(hào)。此方案安裝調(diào)試復(fù)雜,集成度低,成本也不低。</p><p> 方案二:采用ISD1420語(yǔ)音錄放。ISD1420是采用模擬存取技術(shù)集成的可反復(fù)錄放的20秒語(yǔ)音芯片,掉電語(yǔ)音不丟失,最大可分160段,最小每段語(yǔ)音長(zhǎng)度為125ms,每段語(yǔ)音都可由地址線控制輸出,每125ms為一個(gè)地址,由A0-A7八根地址線控制。該芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣值可直接存儲(chǔ)在片內(nèi)單個(gè)EE
27、PROM單元中,因此能夠非常真實(shí)、自然地再現(xiàn)語(yǔ)音、音樂(lè)、音調(diào)和效果聲。此外,ISD1420還省去了A/D和D/A轉(zhuǎn)換器,方便擴(kuò)展更多的功能。</p><p> 綜上所述,選擇方案二,即ISD1420。</p><p><b> 4 設(shè)計(jì)原理</b></p><p> 本系統(tǒng)選用的模塊包括:?jiǎn)纹瑱C(jī)系統(tǒng),電源模塊,LCD顯示模塊,語(yǔ)音播報(bào)模塊
28、,溫度傳感器模塊,鍵盤控制模塊,具體的電路圖參照附錄二。</p><p><b> 4.1單片機(jī)模塊</b></p><p> 此次的畢業(yè)設(shè)計(jì)的核心部分是單片機(jī)的控制,給以相關(guān)的命令,按照人們的意愿執(zhí)行相應(yīng)的操作,這次選用的是ATMEL公司生產(chǎn)的常用芯片AT89S52,主要是他的價(jià)格便宜,而且是我們通用性較強(qiáng),容易獲得。</p><p>
29、 4.1.1單片機(jī)介紹</p><p> CPU即中央處理器的簡(jiǎn)稱,是單片機(jī)的核心部件,它完成各種運(yùn)算和控制操作,CPU由運(yùn)算器和控制器兩部分電路組成。 </p><p> a. 運(yùn)算器電路 </p><p> 運(yùn)算器電路包括ALU(算術(shù)邏輯單元)、ACC(累加器)、B寄存器、狀態(tài)寄存器、暫存器1和暫存器2等部件,運(yùn)算器的功能是進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。
30、 </p><p><b> b. 控制器電路</b></p><p> 控制器電路包括程序計(jì)數(shù)器PC、PC加1寄存器、指令寄存器、指令譯碼器、數(shù)據(jù)指針DPTR、堆棧指針SP、緩沖器以及定時(shí)與控制電路等??刂齐娐吠瓿芍笓]控制工作,協(xié)調(diào)單片機(jī)各部分正常工作。 </p><p> c. 定時(shí)器/計(jì)數(shù)器 </p><p&g
31、t; MCS-52單片機(jī)片內(nèi)有兩個(gè)16位的定時(shí)/計(jì)數(shù)器,即定時(shí)器0和定時(shí)器1。它們可以用于定時(shí)控制、延時(shí)以及對(duì)外部事件的計(jì)數(shù)和檢測(cè)等。 </p><p><b> d. 存儲(chǔ)器 </b></p><p> MCS-52系列單片機(jī)的存儲(chǔ)器包括數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器,其主要特點(diǎn)是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的尋址空間是相互獨(dú)立的,物理結(jié)構(gòu)也不相同。 </p>
32、<p> e. 并行I/O口 </p><p> MCS-52單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2和P3),每一條I/O線都能獨(dú)立地用作輸入或輸出。P0口為三態(tài)雙向口,能帶8個(gè)TTL門電路,P1、P2和P3口為準(zhǔn)雙向口,負(fù)載能力為4個(gè)TTL門電路。 </p><p> f. 串行I/O口 </p><p> MCS-521單片機(jī)具有一個(gè)
33、采用通用異步工作方式的全雙工串行通信接口,可以同時(shí)發(fā)送和接收數(shù)據(jù)。 </p><p> g. 中斷控制系統(tǒng) </p><p> 8051共有5個(gè)中斷源,即外中斷2個(gè),定時(shí)/計(jì)數(shù)中斷2個(gè),串行中斷1個(gè)。 </p><p><b> h. 時(shí)鐘電路 </b></p><p> MCS-52芯片內(nèi)部有時(shí)鐘電路,但晶體振
34、蕩器和微調(diào)電容必須外接。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,振蕩器的頻率范圍為1.2MHz~12MHz,典型取值為6MHz。 </p><p><b> i.總線 </b></p><p> 以上所有組成部分都是通過(guò)總線連接起來(lái),從而構(gòu)成一個(gè)完整的單片機(jī)。系統(tǒng)的地址信號(hào)、數(shù)據(jù)信號(hào)和控制信號(hào)都是通過(guò)總線傳送的,總線結(jié)構(gòu)減少了單片機(jī)的連線和引腳,提高了集成度和可靠性。
35、 </p><p> 選用單片機(jī)的結(jié)構(gòu): </p><p> 1 一個(gè)8 位算術(shù)邏輯單元 </p><p> 2 32 個(gè)I/O 口4 組8 位端口可單獨(dú)尋址 </p><p> 3 兩個(gè)16 位定時(shí)計(jì)數(shù)器 </p><p> 4 全雙工串行通信 </p><p> 5 6 個(gè)中斷源
36、兩個(gè)中斷優(yōu)先級(jí) </p><p> 6 128 字節(jié)內(nèi)置RAM </p><p> 7 獨(dú)立的64K 字節(jié)可尋址數(shù)據(jù)和代碼區(qū) </p><p> 每個(gè)8051 處理周期包括12 個(gè)振蕩周期每12 個(gè)振蕩周期用來(lái)完成一項(xiàng)操作如取指令和計(jì)算指令執(zhí)行時(shí)間可把時(shí)鐘頻率除以12 取倒數(shù)然后指令執(zhí)行所須的周期數(shù)因此如果你的系統(tǒng)時(shí)鐘是11.059MHz 除以12 后就得到了
37、每秒執(zhí)行的指令個(gè)數(shù)為921583條指令取倒數(shù)將得到每條指令所須的時(shí)間1.085ms 。</p><p> AT89S52的管腳圖如圖4.1所示: </p><p> 圖4.1 AT89S52管腳圖</p><p> 4.1.2 單片機(jī)外圍電路設(shè)計(jì) </p><p> 本設(shè)計(jì)選用的AT89S52是一個(gè)低功耗,高性能CMOS 8
38、位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80S52引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。AT89S52具有如下特點(diǎn):40個(gè)引腳,4k Byt
39、es Flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。</p><p> 此外,AT89S52設(shè)計(jì)和配置了振蕩頻率,并可通過(guò)軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式
40、凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式。AT89S52單片機(jī)綜合了微型處理器的基本功能。</p><p> 當(dāng)AT89S52芯片接到來(lái)自溫度傳感器的信號(hào)時(shí),其內(nèi)部程序?qū)⒏鶕?jù)信號(hào)的類型進(jìn)行處理,并且將處理的結(jié)果送到顯示模塊、報(bào)警模塊、語(yǔ)音播報(bào)模塊,發(fā)送控制信號(hào)控制各模塊。該模塊在硬件設(shè)計(jì)方面,其外圍電路提供能使之工作的晶振
41、脈沖、復(fù)位按鍵,四個(gè)I/O口分別用于外圍設(shè)備連接。單片機(jī)AT89S52硬件連接圖如圖4.2所示,其中P0接口外接上拉電阻以保證高低電平的準(zhǔn)確性。單片機(jī)AT89S52的 I/O端口具體分配與下表4.1:</p><p> 圖4.2單片機(jī)與外圍設(shè)備硬件連接圖</p><p> 表4.1 AT89S52的 I/O端口具體分配</p><p> 4.1.3 AT89
42、S52復(fù)位電路</p><p> 系統(tǒng)復(fù)位是任何微機(jī)系統(tǒng)執(zhí)行的第一步,使整個(gè)控制芯片回到默認(rèn)的硬件狀態(tài)下即單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的初態(tài)開(kāi)始運(yùn)行。AT89S52的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。</p><p> 手動(dòng)復(fù)位:手動(dòng)復(fù)位需要人為在復(fù)位
43、輸入端加高電平讓系統(tǒng)復(fù)位。一般采用的方法是在RST端和正電源VCC之間接一個(gè)按鍵,當(dāng)按下按鍵后,VCC和RST端接通,RST引腳處有高電平,而且按鍵動(dòng)作一般是數(shù)十毫秒、大于兩個(gè)機(jī)器周期的時(shí)間,能夠安全的讓系統(tǒng)復(fù)位。</p><p> 上電復(fù)位:上電復(fù)位電路是—種簡(jiǎn)單的復(fù)位電路,只要在RST復(fù)位引腳接一個(gè)電容到VCC,接一個(gè)電阻到地就可以了。上電復(fù)位是指在給系統(tǒng)上電時(shí),復(fù)位電路通過(guò)電容加到RST復(fù)位引腳一個(gè)短暫的
44、高電平信號(hào),這個(gè)復(fù)位信號(hào)隨著VCC對(duì)電容的充電過(guò)程而回落,所以RST引腳復(fù)位的高電平維持時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)安全可靠的復(fù)位,RST引腳的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間。</p><p> 在本設(shè)計(jì)中復(fù)位電路的設(shè)計(jì)是采用簡(jiǎn)單,用得比較廣的復(fù)位電路接法,如圖4.3所示,它具有上電復(fù)位和按鍵復(fù)位的雙重復(fù)位功能。</p><p><b> 圖4.3 復(fù)位電路<
45、/b></p><p> 4.1.4 AT89S52時(shí)鐘電路</p><p> 時(shí)鐘是單片機(jī)的心臟,單片機(jī)各功能部件的運(yùn)行都是以時(shí)鐘頻率為基準(zhǔn),有條不紊的一拍一拍地工作。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常用的時(shí)鐘電路有兩種方式:一種是內(nèi)部時(shí)鐘方式,另一種為外部時(shí)鐘方式。本文用的是內(nèi)部時(shí)鐘方式。電路圖4.4所</p>
46、<p><b> 示:</b></p><p> 圖4.4 時(shí)鐘電路圖</p><p> AT89S52單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反向放大器的輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。</p><p><b>
47、 4.2 電源模塊</b></p><p> 鑒于系統(tǒng)使用的單片機(jī)AT89S52和各芯片工作電壓在5V左右。我們選擇了5V穩(wěn)壓電源給單片機(jī)和各芯片供電。電路由簡(jiǎn)單實(shí)用的三端穩(wěn)壓器構(gòu)成,輸入電壓5V,滿足大部分電路的要求,電源電路圖如下圖4.5所示,由于使用了全橋,電壓輸入既可以使用交流輸入,又可以使用正負(fù)直流輸入,能夠防止由于極性接反造成的事故。濾波電容使用電解電容與小電容并聯(lián)的方式,能夠有效消除
48、高頻自激現(xiàn)象。發(fā)光二極管接到電源與地之間,如果電源輸出不正常,發(fā)光二極管都會(huì)出現(xiàn)工作異常,提示電源部分故障。</p><p> 圖4.5 電源電路圖</p><p> 4.3溫度傳感器模塊</p><p> 本模塊主要作用是進(jìn)行溫度采集,然后經(jīng)采集的數(shù)據(jù)送入AT89S52里進(jìn)行分析處理。在本次設(shè)計(jì)中采用了DS18B20作為數(shù)據(jù)采集器,它的精度最少可以精確到0.
49、0625,完全可以用來(lái)進(jìn)行環(huán)境溫度的測(cè)量。DS18B20是美國(guó)DALLAS 公司生產(chǎn)的單總線數(shù)字溫度傳感器,可把溫度信號(hào)直接轉(zhuǎn)換成串行數(shù)字信號(hào)供微處理器處理,而且可以在一條總線上掛接任意多個(gè)DS18B20芯片,構(gòu)成多點(diǎn)溫度檢測(cè)系統(tǒng)無(wú)需任何外加硬件。DS18B20 數(shù)字溫度傳感器可提供9~12 位溫度讀數(shù),讀取或?qū)懭隓S18B20 的信息僅需一根總線,總線本身可以向所有掛接的DS18B20 芯片提供電源,而不需額外的電源。由DS18B20
50、 這一特點(diǎn),非常適合于多點(diǎn)溫度檢測(cè)系統(tǒng),硬件結(jié)構(gòu)簡(jiǎn)單,方便聯(lián)網(wǎng),在倉(cāng)儲(chǔ)管理、工農(nóng)業(yè)生產(chǎn)制造、氣象觀測(cè)、科學(xué)研究以及日常生活中被廣泛應(yīng)用。</p><p> 4.3.1 DS18B20的測(cè)溫原理</p><p> DS18B20 內(nèi)有一個(gè)能直接轉(zhuǎn)化為數(shù)字量的溫度傳感器,其分辨率9,10 ,11 ,12bit 并且可編程,通過(guò)設(shè)置內(nèi)部配置寄存器來(lái)選擇溫度的轉(zhuǎn)換精度,出廠時(shí)默認(rèn)設(shè)置12bit
51、。溫度的轉(zhuǎn)換精度有0.5℃、0.25℃、0.125℃、0.0625℃。溫度轉(zhuǎn)換后以16bit 格式存入便箋式RAM,可以用讀便箋式RAM命令(BEH) 通過(guò)1 - Wire 接口讀取溫度信息,數(shù)據(jù)傳輸時(shí)低位在前,高位在后。內(nèi)部溫度數(shù)據(jù)格式如圖4.6所示。溫度/數(shù)字對(duì)應(yīng)關(guān)系如表4.2所示(分辨率為12bit時(shí))。由于DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖
52、)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)。</p><p> 表4.2 溫度和數(shù)據(jù)對(duì)應(yīng)表</p><p> 圖4.6 DS1820B內(nèi)部溫度數(shù)據(jù)格式</p><p> 4.3.2 DS18B20與AT89S52的接口電路設(shè)計(jì)</p><p> DS18B20可以從單總線上得到能量并儲(chǔ)存在內(nèi)部電容中,該能量是當(dāng)信號(hào)線處于低電平期
53、間消耗,在信號(hào)線為高電平時(shí)能量得到補(bǔ)充,這種供電方式稱為</p><p> 寄生電源供電。DS18B20也可以由3~5.5V的外部電源供電。所以在硬件上,DS18B20與單片機(jī)的連接有兩種方法,一種是VCC接外部電源,GND接地,I/O與單片機(jī)的I/O線相連;另一種是用寄生電源供電,此時(shí)UDD、GND接地,I/O接單片機(jī)I/O。無(wú)論是內(nèi)部寄生電源還是外部供電,I/O口線要接5KΩ左右的上拉電阻.我們采用的是第一
54、種連接方法, 如圖4.7所示:把DS18B20數(shù)據(jù)線與AT89S52的P2.0,再加上上拉電阻。</p><p> 圖4.7 DS18B20與AT89S52的接口電路</p><p><b> 4.4鍵盤控制模塊</b></p><p> 按鍵的開(kāi)關(guān)狀態(tài)通過(guò)一定的電路轉(zhuǎn)換為高、低電平狀態(tài)。按鍵閉合過(guò)程在相應(yīng)的I/O端口形成一個(gè)負(fù)脈沖。閉合
55、和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定,這一過(guò)程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。</p><p> 本系統(tǒng)中用到四個(gè)功能控制按鍵,用P2的4個(gè)I/O口接4個(gè)獨(dú)立式按鍵即可滿足需要,軟件消除抖動(dòng),當(dāng)發(fā)現(xiàn)有鍵按下時(shí),延時(shí)10-20ms再查詢是否有鍵按下,若沒(méi)有鍵按下,說(shuō)明上次查詢結(jié)果為干擾或抖動(dòng);若沒(méi)有鍵按下,說(shuō)明上次查詢結(jié)果為干擾或抖動(dòng);若仍有鍵按下,則說(shuō)明閉合鍵已穩(wěn)定。準(zhǔn)確判斷去執(zhí)行相應(yīng)的程序
56、。電路圖如圖4.8所示。</p><p> 圖4.8 鍵盤控制電路</p><p><b> 4.5報(bào)警模塊</b></p><p> 報(bào)警模塊的工作原理是當(dāng)溫度傳感器檢測(cè)到的溫度高于溫度的上限或低于溫度的下限設(shè)定值時(shí)單片機(jī)的P2.6發(fā)出高電平信號(hào)促使PNP三極管導(dǎo)通點(diǎn)亮發(fā)光二極管,蜂鳴器也發(fā)出響聲,產(chǎn)生聲光報(bào)警。電路圖如圖4.9所示。&
57、lt;/p><p><b> 圖4.9 報(bào)警電路</b></p><p><b> 4.6液晶顯示模塊</b></p><p> 該模塊是由RT1602液晶顯示器件組成, 第3腳: VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)
58、比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。由上可知1602基本操作時(shí)序如表4。其第15~
59、16腳:背光電源腳。RT1602與單片機(jī)的應(yīng)用連接電路圖如圖4.10所示。</p><p> 表4.3 LCD1602基本操作時(shí)序</p><p> 圖4.10 液晶顯示模塊接口電路</p><p><b> 4.7語(yǔ)音播報(bào)模塊</b></p><p> 本模塊采用的核心語(yǔ)音芯片ISD1402語(yǔ)音芯片是美國(guó)ISD
60、(Information Storage Device)公司的產(chǎn)品。它包括時(shí)鐘振蕩器、128K可編程電擦除只讀存儲(chǔ)器(EEPROM)、低噪前置放大器、自動(dòng)增益控制電路、抗干擾濾波器、差分功率放大器等電路。ISD1400系列語(yǔ)音芯片采用直接存儲(chǔ)模擬信號(hào),自動(dòng)待機(jī)省電,可編程電擦除只讀存儲(chǔ)和總線技術(shù)。ISD1400是一種具有高保真、錄音數(shù)據(jù)永久保存、省電、適用于同單片機(jī)接口特點(diǎn)的新一代語(yǔ)音芯片。ISD1420是ISD1400系列中錄音時(shí)長(zhǎng)為
61、20s語(yǔ)音芯片。ISD1420是采用模擬存取技術(shù)集成的可反復(fù)錄放的20秒語(yǔ)音芯片,掉電語(yǔ)音不丟失,最大可分160段,最小每段語(yǔ)音長(zhǎng)度為125ms,每段語(yǔ)音都可由地址線控制輸出,每125ms為一個(gè)地址,由A0-A7八根地址線控制。</p><p> 4.7.1 ISD1420語(yǔ)音芯片錄放音電路設(shè)計(jì)</p><p> 分段錄音時(shí),ISD1420的A0-A7用作地址輸入線,A6、A7不可同時(shí)
62、為高電平,所以地址范圍為00H-9FH,即為十進(jìn)制碼0-159 共160個(gè)數(shù)值。這表明ISD1420的EEPROM模擬存儲(chǔ)器最多可被劃分為160個(gè)存儲(chǔ)單元,也就是說(shuō)ISD1420最多可存儲(chǔ)160個(gè)語(yǔ)音段,語(yǔ)音段的最小時(shí)間長(zhǎng)度為0.125S。不同分段的選擇是通過(guò)對(duì)A0-A7端接不同的高低電平來(lái)實(shí)現(xiàn)。</p><p> ISD1420分段錄音可以通過(guò)硬件(開(kāi)關(guān))來(lái)實(shí)現(xiàn)也可以通過(guò)軟件編程來(lái)實(shí)現(xiàn)。圖4.11為硬件實(shí)現(xiàn)錄
63、音和放音的電路圖。</p><p> 圖4.11 語(yǔ)音芯片錄音和放音電路</p><p> 其中ISD1420各引腳說(shuō)明如下:</p><p> A0-A7—地址輸入端,當(dāng)A6和A7不全為高電平時(shí),A0-A7為分段錄音信息地址線,不同的地址對(duì)應(yīng)不同的錄音片斷。</p><p> MIC—話筒輸入端,話筒輸入信號(hào)通過(guò)電容交流耦合至此引腳
64、并傳給片上預(yù)放大器,耦合電容C7的值和該端內(nèi)阻R7(10K)決定語(yǔ)音信號(hào)通頻帶下限頻率。</p><p> MICREF—話筒參考輸人端,MICREF是預(yù)放大器的反相輸入端,配合外電路可使片上預(yù)放大器具有較高的噪聲抑制比和共模抑制比。</p><p> ANA IN—模擬信號(hào)輸人端,對(duì)于話筒輸入,ANA IN 引腳應(yīng)通過(guò)外部電容C4與ANA OUT引腳連接,耦合電容C4決定片上控制預(yù)放
65、大器通頻帶的下限頻率。</p><p> ANA OUT—預(yù)放大器的輸出端,預(yù)放大器的電壓增益取決于AGC電平,對(duì)于小信號(hào)輸入電平,其增益最大為24dB,對(duì)于強(qiáng)信號(hào),增益較低。</p><p> AGC—自動(dòng)增益控制端,AGC 動(dòng)態(tài)地調(diào)整預(yù)放大器增益,使加至MIC輸入端的非失真信號(hào)的范圍擴(kuò)展。內(nèi)阻抗(5歐)和外部電容決定AGC的響應(yīng)時(shí)間,外部電容和外部電阻的RC時(shí)間常數(shù)決定AGC的釋放
66、時(shí)間。</p><p> SP+、SP- —喇叭輸出端,該端可直接驅(qū)動(dòng)16歐的喇叭。</p><p> XCLK—外接時(shí)鐘輸入端,ISD1420具有內(nèi)部時(shí)鐘,一旦接人外部時(shí)鐘,內(nèi)部時(shí)鐘會(huì)自動(dòng)失去作用。改電路不用外部時(shí)鐘該引腳接地,一般不推薦使用外部時(shí)鐘,除非要求時(shí)鐘信號(hào)特別精確。</p><p> RECLED—工作狀態(tài)指示端,在錄音或放音時(shí)該端輸出低電平,可
67、驅(qū)動(dòng)一個(gè)LED來(lái)指示狀態(tài)。在錄音過(guò)程中指示燈一直亮著,在放音結(jié)束時(shí),指示燈閃爍一下。</p><p> PLAYE—邊沿觸發(fā)放音控制端,該端輸人一低脈沖,芯片即進(jìn)入放音狀態(tài),直至遇到信息結(jié)束標(biāo)記(EOM)或到存儲(chǔ)空間的末尾時(shí)回放過(guò)程結(jié)束,電路自動(dòng)進(jìn)入準(zhǔn)備狀態(tài)。回放過(guò)程中PLAYE變化不會(huì)影響回放過(guò)程。</p><p> PLAYL—電平觸發(fā)放音控制端,該端電平變?yōu)榈碗娖讲⒈3?,芯片進(jìn)入
68、放音狀態(tài),放音過(guò)程持續(xù)到該端電平由低變高或遇到信息結(jié)束標(biāo)記(EOM),結(jié)束后電路進(jìn)入準(zhǔn)備狀態(tài)。</p><p> REC—錄音觸發(fā)端,REC 一旦變?yōu)榈碗娖剑酒瓦M(jìn)入錄音狀態(tài),REC的權(quán)限優(yōu)先于PLAYE和PLAYL,在放音期間若遇REC 接低電平時(shí),放音就會(huì)立即停止并轉(zhuǎn)入錄音狀態(tài)開(kāi)始錄音。錄音期間REC 應(yīng)始終保持低電平,REC變高或存儲(chǔ)空間變滿時(shí)錄音過(guò)程結(jié)束,這時(shí)在錄音截止的地方會(huì)記錄一個(gè)信息結(jié)束標(biāo)記(E
69、OM)。</p><p> VCCD、VCCA—數(shù)字電源正端和模擬電源正端。</p><p> VSSD、VSSA—數(shù)字地和模擬地。</p><p> 電路實(shí)現(xiàn)錄音功能說(shuō)明如下,S1、S2、S3分別是控制錄音和放音按鍵,當(dāng)按下S1時(shí)開(kāi)始錄音,S2、S3為兩種方式的放音按鍵,當(dāng)按一下S2時(shí)開(kāi)始放音,是下降沿觸發(fā)的,而S3為電平控制的,必須一直按著此鍵直至放音結(jié)束
70、。LED和限流電阻組成錄放音指示電路,當(dāng)錄音結(jié)束、錄音超出時(shí)限(存儲(chǔ)器溢出)或放音結(jié)束時(shí),ISD1420的25腳呈高電平,LED熄滅。對(duì)ISD1420進(jìn)行分段錄音之前要先列出語(yǔ)音信息與分段地址的對(duì)照表,如表4.4所示。然后檢查電路連接、接線和電源情況。并通過(guò)對(duì)照表來(lái)設(shè)置8個(gè)開(kāi)關(guān)選擇要錄音的地址,最后按下錄音鍵直至錄音結(jié)束,松開(kāi)錄音鍵,重復(fù)此操作就可以將自己需要錄入的內(nèi)容全部錄入到芯片中。另外,A0和A1都需要接地,因?yàn)槲覀円_保分段間隔
71、不小于0.5S,所以至少要四段,否則錄音的信息可能會(huì)重疊,導(dǎo)致放音時(shí)達(dá)不到自己的要求。用戶錄制的語(yǔ)音每一段結(jié)束后芯片自動(dòng)設(shè)有段結(jié)束標(biāo)志(EOM),芯片錄滿后設(shè)有溢出標(biāo)志(OVF)。</p><p> 表4.4 分段語(yǔ)音信息與地址對(duì)照表</p><p> 4.7.2 ISD1420與AT89S52接口電路設(shè)計(jì)</p><p> ISD1420錄音和放音電路可以通
72、過(guò)硬件開(kāi)關(guān)控制。本設(shè)計(jì)錄音是用硬件控制,但是播報(bào)溫度放音是通過(guò)AT89S52來(lái)控制的。單片機(jī)某一段的起始地址進(jìn)行放音操作,遇到段結(jié)束標(biāo)志(EOM)即自動(dòng)停止放音,單片機(jī)收到段結(jié)束標(biāo)志(EOM)就開(kāi)始觸發(fā)下一段語(yǔ)音的起始地址,如此控制,即可以將很多、不同段的語(yǔ)音組合在一起成一句話放音出來(lái),實(shí)現(xiàn)語(yǔ)音的自動(dòng)組合。ISD1420與AT89S52的接口連接入下:AT89S52的P1端口連接地址線ISD1420的A0-A7,ISD1420放音電路通
73、過(guò)AT89S52的P3.3口控制PLAYER放音。具體連接圖見(jiàn)圖4.11。</p><p><b> 5 軟件部分</b></p><p> 5.1 開(kāi)發(fā)工具介紹 </p><p> 單片的使用除了硬件,同樣也要軟件的使用,我們寫匯編程序編程CPU可執(zhí)行的機(jī)器碼有兩種方法,一種是手工匯編,一種是機(jī)器匯編。機(jī)器匯編通過(guò)匯編軟件變?yōu)闄C(jī)器碼,
74、用于MSC-51單片機(jī)的匯編軟件有早期的A51,隨著單片機(jī)開(kāi)發(fā)技術(shù)的不斷發(fā)展,從使用普通匯編語(yǔ)言到高級(jí)語(yǔ)言的不斷發(fā)展,Keil是目前最流行開(kāi)發(fā)MCS-51系列單片機(jī)的軟件。Keil c51匯編,PLM語(yǔ)言和C語(yǔ)言的程序設(shè)計(jì),界面友好。Keil是美國(guó)keil software公司出品的52系列兼容單片機(jī)c語(yǔ)言開(kāi)發(fā)系統(tǒng)。用過(guò)匯編語(yǔ)言后再使用C語(yǔ)言來(lái)開(kāi)發(fā),體會(huì)更加深刻。 </p><p> Keil C51軟件提供豐
75、富的庫(kù),與匯編相比,C語(yǔ)言在功能上,結(jié)構(gòu)上,可讀性,可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用函數(shù)和功能強(qiáng)大的集成開(kāi)發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生產(chǎn)的匯編代碼,就能體會(huì)到KeilC51DE 生成的目標(biāo)代碼效率非常之高,多數(shù)語(yǔ)句生成的匯編代碼很緊湊,容易理解,在開(kāi)發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語(yǔ)言的優(yōu)勢(shì)。</p><p> 5.2系統(tǒng)的主程序設(shè)計(jì)</p><p>
76、 主程序是在程序運(yùn)行的過(guò)程中必須先經(jīng)過(guò)初始化,包括鍵盤程序,測(cè)量程序,以及各個(gè)控制端口的初始化工作。系統(tǒng)在初始化完成后就進(jìn)入讀取溫度測(cè)量程序,實(shí)時(shí)的測(cè)量當(dāng)前的溫度,得到溫度后判斷溫度是否超過(guò)溫度設(shè)置的上下限。超出(低于)溫度上下限,調(diào)用報(bào)警子程序。再顯示電路在LCD上顯示。系統(tǒng)軟件設(shè)計(jì)的總體流程圖5.1所示</p><p> 圖5.1 主程序流程圖</p><p> 5.2.1鍵盤掃
77、描子程序</p><p> 對(duì)于系統(tǒng)來(lái)說(shuō),鍵輸入程序是整個(gè)鍵盤控制應(yīng)用系統(tǒng)的核心。當(dāng)所設(shè)的功能鍵按下時(shí),本系統(tǒng)應(yīng)完成該鍵所設(shè)的功能。本系統(tǒng)具體實(shí)現(xiàn)功能如下表5.1。按鍵閉合過(guò)程在相應(yīng)的I/O端口形成一個(gè)負(fù)脈沖。閉合和釋放過(guò)程都要經(jīng)過(guò)一定的過(guò)程才能達(dá)到穩(wěn)定,這一過(guò)程是處于高、低電平之間的一種不穩(wěn)定狀態(tài),稱為抖動(dòng)。為了保證CPU對(duì)鍵一次閉合,僅作一次鍵輸入處理,必須去抖動(dòng)影響。本設(shè)計(jì)采用軟件去抖的辦法是在檢測(cè)到有按
78、鍵按下時(shí),執(zhí)行一個(gè)5-10ms的延遲程序后在確認(rèn)該鍵電平是否仍保持閉合狀態(tài)電平,如保持閉合狀態(tài)電平則確認(rèn)為真正鍵按下的狀態(tài),從而消除了抖動(dòng)影響。鍵盤子程序流程圖如下5.2所示(延時(shí)子程序未在流程圖中畫出)。</p><p> 表5.1 按鍵功能表</p><p> 圖5.2 鍵盤子程序流程圖</p><p> 5.2.2測(cè)量溫度子程序設(shè)計(jì)</p>
79、<p> 由在整個(gè)語(yǔ)音溫度計(jì)的設(shè)計(jì)中是以正確采集溫度為前提的,因?yàn)槿绻麥囟炔杉筒徽_,那么即使后續(xù)電路如顯示和報(bào)溫電路均正確,最后的結(jié)果仍然不能達(dá)到我們所要的目標(biāo),也就是不能正確的對(duì)環(huán)境溫度進(jìn)行顯示和報(bào)溫,所以關(guān)于DS18B20的溫度采集是非常重要的。DS18B20單線通信功能是分時(shí)完成的,它有嚴(yán)格的時(shí)隙概念,因此讀寫時(shí)序很重要。操作協(xié)議為:初始化DS18B20(發(fā)復(fù)位脈沖)→發(fā)ROM功能命令→發(fā)存儲(chǔ)器操作命令→處理數(shù)據(jù)
80、。其測(cè)溫子程序流程圖如5.3所示。部分控制DS18B20指令功能如表5.2所示:</p><p> 圖5.3 測(cè)溫度子程序流程圖</p><p> 表5.2 控制DS18B20指令表</p><p> 5.2.3報(bào)警子程序</p><p> 初始默認(rèn)上下限報(bào)警值,或鍵盤設(shè)定報(bào)警值,取量實(shí)時(shí)測(cè)溫度值與溫度上下限值比較,超過(guò)報(bào)警范圍,導(dǎo)通
81、三極管,觸發(fā)蜂鳴器與指示燈報(bào)警,當(dāng)實(shí)時(shí)溫度恢復(fù)到報(bào)警范圍內(nèi)溫度時(shí),自動(dòng)停止報(bào)警。流程圖如圖5.4所示</p><p> 圖5.4 報(bào)警子程序流程圖</p><p> 5.2.4實(shí)現(xiàn)時(shí)鐘功能的程序設(shè)計(jì)</p><p> 本系統(tǒng)的時(shí)鐘直接用單片機(jī)的定時(shí)器編程以實(shí)現(xiàn)時(shí)鐘,節(jié)省硬件。TMOD=0x01定時(shí)器T0初始化方式1。定時(shí)時(shí)間=(65536-T0初值)*時(shí)鐘周期
82、*12。本設(shè)計(jì)中定時(shí)時(shí)間50ms,時(shí)鐘周期為12M,顧TH0=0x3c;TL0=0xb0時(shí)鐘實(shí)現(xiàn)流程圖如圖15.5所示:</p><p> 圖5.5 時(shí)鐘功能實(shí)現(xiàn)流程圖</p><p> 5.2.5顯示程序設(shè)計(jì)</p><p> 本設(shè)計(jì)使用的LCD1602基本操作時(shí)序如下表4.2。清楚基本操作時(shí)序就可以完成寫指令和寫數(shù)據(jù)到LCD中的子函數(shù)設(shè)計(jì)。在子函數(shù)中為了使
83、液晶顯示更加穩(wěn)定,可以最簡(jiǎn)短的延時(shí)。</p><p> 顯示模式包括當(dāng)前溫度顯示,時(shí)間顯示模式,溫度上下限,他們實(shí)現(xiàn)都是先初始化調(diào)用顯示字符串子程序后再調(diào)用顯示指定位置字符子程序,具體看顯示當(dāng)前溫度子程序流程圖如圖5.6所示:</p><p> 圖5.6 顯示當(dāng)前溫度子程序流程圖 </p><p> 5.2.6語(yǔ)音播放子程序</p><p&
84、gt; 單片機(jī)語(yǔ)根據(jù)語(yǔ)音信息與分段地址的對(duì)照表和當(dāng)前溫度組合出播報(bào)當(dāng)前的溫度語(yǔ)音數(shù)據(jù)地址,再通過(guò)P3.3控制語(yǔ)音芯片放音,把處理的數(shù)據(jù)地址通過(guò)P1端口寫給語(yǔ)音芯片,程序流程如圖5.7所示:</p><p> 圖5.7 語(yǔ)音播放子程序</p><p> 6 仿真結(jié)果數(shù)據(jù)分析</p><p> 6.1功能仿真和結(jié)果</p><p> 各
85、項(xiàng)功能仿真方法及仿真結(jié)果如下表6.1</p><p> 表6.1 各項(xiàng)功能仿真方法及結(jié)果</p><p><b> 7 結(jié)束語(yǔ)</b></p><p> 本文設(shè)計(jì)的語(yǔ)音溫度計(jì),即可用于人民生活中的日常用品,還可以單獨(dú)作為系統(tǒng)為了保證某特定環(huán)境溫度維持在設(shè)定的范圍內(nèi),以保證工作系統(tǒng)在穩(wěn)定的狀態(tài)下工作。本文設(shè)計(jì)的語(yǔ)音溫度計(jì)成本很低,如果采用大
86、批量生產(chǎn)的話,生產(chǎn)成本會(huì)更低,可以帶來(lái)一定的經(jīng)濟(jì)效益。</p><p> 經(jīng)過(guò)這段時(shí)間的方案論證、系統(tǒng)的硬件和軟件的設(shè)計(jì)、系統(tǒng)的仿真和調(diào)試。查閱了大量的關(guān)于傳感器、單片機(jī)及其接口電路、以及控制方面的理論。經(jīng)過(guò)了一番特殊的體驗(yàn)后,靠用所學(xué)的專業(yè)知識(shí)來(lái)解決問(wèn)題。檢查了自己的知識(shí)水平,使我對(duì)自己有一個(gè)全新的認(rèn)識(shí)。通過(guò)這次畢業(yè)設(shè)計(jì),不僅鍛煉自己分析問(wèn)題、處理問(wèn)題的能力,還提高了自己的動(dòng)手能力。這些培養(yǎng)和鍛煉對(duì)于我們這些
87、即將走向工作崗位的大學(xué)生來(lái)說(shuō),是很重要的。</p><p> 這次畢業(yè)設(shè)計(jì)基本的完成了任務(wù)書的要求,實(shí)現(xiàn)了溫度的控制和語(yǔ)音播報(bào)。通過(guò)仿真表明系統(tǒng)的設(shè)計(jì)是正確的,可行的。但是由于設(shè)計(jì)者的設(shè)計(jì)經(jīng)驗(yàn)和知識(shí)水平有限,本文設(shè)計(jì)的語(yǔ)音溫度計(jì)還存在許多不足和缺陷。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 余小平等.電子系統(tǒng)
88、設(shè)計(jì)[M] .北京航空航天大學(xué)出版社.2007 133-135</p><p> [2] 何立民等.單片機(jī)中級(jí)教程原理與應(yīng)用[M].北京航空航天大學(xué)出版 社.1999 [3] 趙建領(lǐng).51系列單片機(jī)開(kāi)發(fā)寶典[M].電子工業(yè)出版社.2007</p><p> [4] 李東生等.Protel 99SE電路設(shè)計(jì)教程[M].電子工業(yè)出版社.2007</p><p&
89、gt; [5] 郭天祥.新概念51單片機(jī)C語(yǔ)音教程[M].電子工業(yè)出版社.2008</p><p> [6] 王細(xì)榮.文獻(xiàn)信息檢索與論文寫作[M].上海交通大學(xué)出版社.2009</p><p> [7] 馬令坤等.電子工藝實(shí)訓(xùn)教程[M].西安電子科技大學(xué)出版社.2005</p><p> [8] Dallas公司. DS18B20 Resolution On
90、e – Wire Digital Thermometer. [G].2000</p><p> [9] ISD公司.Datebook of Voice Recoding&Playback Ics [G].2000.[11]DALLAS. High Precision l-wire® Digital Thermometer[EB
91、/OL].http: //www.dalsemi.com.</p><p> [10]DALLAS. Understanding and Using Cyclic Redundancy Checks with Dallas Semiconductor iButtonTM Products[EB/OL].http://www.dalsemi.com.</p><p><b>
92、附錄一:電路圖</b></p><p><b> 附錄二:源程序</b></p><p> /***********************語(yǔ)音溫度計(jì)**************************</p><p> *****************************************************
93、*****/</p><p> /***********以下源代碼是主程序部分main.c**********/</p><p> #include <at89x51.h></p><p> #include "LCD1602.h"</p><p> #include "clock.h&quo
94、t;</p><p> #include "key.h"</p><p> #include "DS18B20.h"</p><p> #include "temp.h"</p><p> #include "BEEP.h"</p><
95、p> #include "ISD1420.h"</p><p> #include "speakTEMP.h"</p><p> void delayMs(unsigned int ms) //延時(shí)K*1ms,12.000mhz</p><p> { unsigned char j;</p>&
96、lt;p> while(ms--)</p><p> {for(j=0; j<=125; j++);}</p><p><b> }</b></p><p> void init() //主初始化</p><p> { P1=0xff;
97、 //初始化p1口,全設(shè)為1 </p><p><b> P3=0xff;</b></p><p> top_temp = 30;</p><p> bottom_temp = 1;</p><p> delayMs(500); </p><p&
98、gt; initLCM( ); </p><p> initClock();</p><p> initTemp();</p><p><b> BEEP = 1;</b></p><p><b> }</b></p><p> void main(void)&
99、lt;/p><p> { init( ); //初始化</p><p><b> while (1)</b></p><p> { scan_key(); //鍵盤掃描子函數(shù)</p><p> delayMs(10);</p>&l
100、t;p> ReadTemperature( ); // 讀取溫度子函數(shù)</p><p> if(temp > top_temp || temp < (char)bottom_temp) beep();</p><p> displayTemp(); //顯示溫度子函數(shù)</p><p> if(DisplayTimeFlag
101、) //判斷顯示模式</p><p> displayClock(); //顯示時(shí)間子函數(shù)</p><p><b> else</b></p><p> displayTempLim(); //顯示溫度上下限子函數(shù)</p><p> delayMs(10);</p><p>
102、;<b> }</b></p><p><b> }</b></p><p> /***********以下源代碼是顯示子程序 LCD1602.h 部分**********/</p><p> #ifndef__LCD1602_H__</p><p> #define __LCD1
103、602_H__</p><p> #include <at89x51.h></p><p> #include <intrins.h></p><p> #define BUSY 0x80 //lcd忙檢測(cè)標(biāo)志</p><p> #define DATAPORT P0</p&g
104、t;<p> sbit LCM_RS=P3^7;//數(shù)據(jù)/命令端</p><p> sbit LCM_RW=P3^6;//讀/寫選擇端</p><p> sbit LCM_EN=P2^7; //LCD使能信號(hào)</p><p> void delay_LCM(unsigned int); //LC
105、D延時(shí)子程序延時(shí)ms</p><p> void initLCM(void); //LCD初始化子程序</p><p> void lcd_wait(void); //LCD檢測(cè)忙子程序</p><p> void WriteCommandLCM(unsigned char WCLCM,unsigne
106、d char BusyC); //寫指令到ICM子函數(shù)</p><p> void WriteDataLCM(unsigned char WDLCM); //寫數(shù)據(jù)到LCM子函數(shù)</p><p> void DisplayOneChar(unsigned
107、 char X,unsigned char Y,unsigned char DData); //顯示指定坐標(biāo)的一個(gè)字符子函數(shù)</p><p> void DisplayListChar(unsigned char X,unsigned char Y,unsigned char code *DData); //顯示指定坐標(biāo)的一串字符子函
108、數(shù)</p><p> void delay_LCM(unsigned int k) //延時(shí)K*1ms,12.000mhz</p><p> { unsigned int i,j;</p><p> for(i=0;i<k;i++)</p><p> {for(j=0;j<60;j++)</p>
109、<p><b> {;}</b></p><p><b> }</b></p><p><b> } </b></p><p> void WriteCommandLCM(unsigned char WCLCM,unsigned char BusyC)</p>&l
110、t;p> //寫指令到LCM子函數(shù)</p><p> { if(BusyC)lcd_wait();</p><p> DATAPORT=WCLCM;</p><p> LCM_RS=0; // 選中指令寄存器</p><p> LCM_RW=0; // 寫模式
111、</p><p> LCM_EN=1; </p><p> _nop_(); _nop_(); _nop_(); </p><p> LCM_EN=0; </p><p><b> }</b></p><p> void WriteDataLCM(unsigned c
112、har WDLCM) // 寫數(shù)據(jù)到LCM子函數(shù)</p><p> { lcd_wait( ); //檢測(cè)忙信號(hào) </p><p> DATAPORT=WDLCM;</p><p> LCM_RS=1; // 選中數(shù)據(jù)寄存器</p><p> LCM_RW=0;
113、 // 寫模式</p><p><b> LCM_EN=1;</b></p><p> _nop_(); _nop_(); _nop_();</p><p> LCM_EN=0;}</p><p> void lcd_wait(void) // lcm內(nèi)部等待函數(shù)</p><p
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于at89s52并行口的數(shù)字溫度計(jì)設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)的數(shù)字溫度計(jì)設(shè)計(jì)畢業(yè)論文
- 基于at89s52并行口的數(shù)字溫度計(jì)的設(shè)計(jì)畢業(yè)論文
- 基于at89s52智能風(fēng)扇設(shè)計(jì)畢業(yè)論文
- 基于at89s52和ds18b20的數(shù)字溫度計(jì)設(shè)計(jì)畢業(yè)論文
- 基于at89s52的溫度測(cè)量系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于at89s52溫度控制器設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)溫度采集設(shè)計(jì)畢業(yè)論文
- 基于at89s52的無(wú)線溫度測(cè)量系統(tǒng)畢業(yè)論文
- 基于at89s52的汽車智能剎車系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于at89s52測(cè)溫系統(tǒng)畢業(yè)論文
- 基于at89s52單片機(jī)的頻率計(jì)設(shè)計(jì)畢業(yè)論文
- 基于at89s52數(shù)字鬧鐘設(shè)計(jì)研究畢業(yè)論文
- 基于at89s52的廣告燈設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)的頻率計(jì)設(shè)計(jì)報(bào)告畢業(yè)論文
- 基于at89s52的往返小車畢業(yè)論文
- 基于at89s52的智能電風(fēng)扇控制系統(tǒng)設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)溫度控制系統(tǒng)設(shè)計(jì)設(shè)計(jì)畢業(yè)論文
- 基于at89s52數(shù)字電子鐘設(shè)計(jì)畢業(yè)論文
- 基于at89s52單片機(jī)溫度測(cè)量的課程設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論