2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩77頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  本科畢業(yè)設(shè)計(jì)(論文)</p><p>  題目: 智能溫度檢測(cè)與顯示系統(tǒng)的設(shè)計(jì) </p><p>  專(zhuān) 業(yè): 自動(dòng)化 </p><p>  班 級(jí): 自動(dòng)化051 學(xué) 號(hào): </p><p>  學(xué)生姓名:

2、 </p><p>  指導(dǎo)教師: 副教授 </p><p>  起訖日期: 2009.3~2009.6 </p><p>  設(shè)計(jì)地點(diǎn): </p><p>  Graduation Desig

3、n (Thesis)</p><p>  Design of Intelligent temperature examination and display system</p><p><b>  摘 要</b></p><p>  近年來(lái),形形色色家電器已經(jīng)在人們的日常生活中扮演著十分重要的角色。隨著科學(xué)技術(shù)的不斷創(chuàng)新,各種智能家電也

4、漸漸的走進(jìn)了人們的日常生活,其中溫度控制方面在智能家電領(lǐng)域的應(yīng)用將十分廣泛。</p><p>  本課題所研究的智能溫度檢測(cè),采用目前市場(chǎng)普遍應(yīng)用的數(shù)字溫度傳感器實(shí)現(xiàn),加之其人性化的液晶顯示功能,今后在家用電器領(lǐng)域具有廣闊的應(yīng)用前景。系統(tǒng)主要的組成模塊如下:鍵盤(pán)掃描模塊(4個(gè)獨(dú)立按鍵);檢測(cè)信息提示模塊(發(fā)光二極管);日期顯示模塊(通過(guò)DS1302時(shí)鐘芯片實(shí)現(xiàn));液晶顯示模塊(采用12864液晶顯示芯片);溫度控

5、制模塊(使用DS18B20溫度傳感器設(shè)計(jì));其實(shí)現(xiàn)的主要功能為:(1)日期顯示,用于實(shí)現(xiàn)實(shí)時(shí)的時(shí)間信息顯示(2)加熱模式,主要應(yīng)用在智能熱水器方面,用于控制水溫。(3)制冷模式,主要應(yīng)用在智能冰箱方面,用于控制冷藏食物的溫度。(4)恒溫模式,主要應(yīng)用在空調(diào)方面,用于控制室內(nèi)的溫度,保持恒溫。(5)附加功能:體溫檢測(cè)模式。由于目前世界各國(guó)人們正在遭受甲型H1N1流感的威脅,本設(shè)計(jì)所帶的附加功能,主要完成初步檢測(cè)的任務(wù)。</p>

6、<p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī);溫度控制;智能家電</p><p><b>  ABSTRACT</b></p><p>  The electrical appliances of all forms already were playing in recent years the very important role in people's d

7、aily life. Along with science's and technology's unceasing innovation, each kind of intelligent electrical appliances also gradually entered people's daily life, the temperature control aspect will be very wi

8、despread in the intelligent electrical appliances domain's application.</p><p>  This topic studies the intelligence temperature detector, uses the present market universal application the digit temperat

9、ure sensor to realize, in addition its user-friendly liquid crystal display function, from now on will have the broad application prospect in the domestic electric appliances domain. The system main composi</p>&l

10、t;p>  tion module is as follows: Keyboard scanning module (4 independent pressed keys); Simulation heating module (light emitter diode); The date display module (realizes through DS1302 clock chip); The liquid crystal

11、 display module (uses 12864 liquid crystal display chip); The temperature control module (uses DS18B20 temperature sensor design); It realizes the major function is: (1) the date demonstrated that uses in realizing the r

12、eal-time time information to demonstrate (2) heats up the pattern, th</p><p>  Keywords:Monolithic integrated circuit; Temperature control; Intelligent electrical appliances</p><p><b>  目錄

13、</b></p><p><b>  第一章 緒論3</b></p><p><b>  1.1 引言 3</b></p><p>  1.2選題的背景和意義3</p><p>  1.3本文的結(jié)構(gòu)4</p><p>  第二章 系統(tǒng)總體方案設(shè)計(jì)5&

14、lt;/p><p><b>  2.1方案選擇5</b></p><p>  2.2 總體方案設(shè)計(jì)5</p><p>  第三章 系統(tǒng)硬件設(shè)計(jì)7</p><p>  3.1 單片機(jī)控制模塊設(shè)計(jì)7</p><p>  3.1.1 概述7</p><p>  3.1

15、.2 功能特性8</p><p>  3.1.3 引腳描述8</p><p>  3.1.4 時(shí)鐘振蕩電路與復(fù)位電路10</p><p>  3.1.5 AT89C52硬件連接圖:11</p><p>  3.2 溫度控制模塊設(shè)計(jì)(DS18B20)12</p><p>  3.2.1 DS18B20產(chǎn)

16、品的特點(diǎn)12</p><p>  3.2.2 DS18B20的引腳介紹12</p><p>  3.2.3 DS18B20硬件連接13</p><p>  3.2.4 DS18B20的工作原理14</p><p>  3.3 時(shí)鐘模塊設(shè)計(jì)(DS1302)17</p><p>  3.3.1 概述

17、17</p><p>  3.3.2 DS1302 引腳描述及與單片機(jī)硬件連接18</p><p>  3.4 液晶顯示模塊設(shè)計(jì) (12864)19</p><p>  3.4.1 液晶顯示模塊概述19</p><p>  3.4.2 外形尺寸20</p><p>  3.4.3 模塊引腳說(shuō)明20&

18、lt;/p><p>  3.4.4 12864液晶與單片機(jī)的硬件連接圖21</p><p>  3.5 發(fā)光二極管與獨(dú)立鍵盤(pán)模塊設(shè)計(jì)22</p><p>  3.5.1 發(fā)光二極管22</p><p>  3.5.2 獨(dú)立鍵盤(pán)22</p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)24</p><

19、;p>  4.1溫度控制模塊程序設(shè)計(jì)24</p><p>  4.2 日期模塊程序設(shè)計(jì)27</p><p>  4.2.1 DS1302內(nèi)部寄存器27</p><p>  4.2.2 DS1302的工作時(shí)序圖30</p><p>  4.3 液晶顯示模塊程序設(shè)計(jì)33</p><p>  4.3.1

20、 用戶(hù)指令集33</p><p>  4.3.2 顯示坐標(biāo)關(guān)系37</p><p>  4.3.3 顯示RAM38</p><p>  4.3.4 12864工作時(shí)序圖39</p><p>  4.4 發(fā)光二級(jí)管與鍵盤(pán)程序設(shè)計(jì)42</p><p>  4.5 系統(tǒng)程序流程圖44</p>

21、;<p>  第五章 附加功能介紹45</p><p>  5.1 硬件連接圖45</p><p>  5.2 功能介紹45</p><p>  第六章 結(jié)論46</p><p>  6.1 論文總結(jié)46</p><p>  6.2 感想 46</p><p>&l

22、t;b>  致 謝47</b></p><p>  參 考 文 獻(xiàn)48</p><p>  附錄A: 英文資料49</p><p>  附錄B: 英文資料翻譯53</p><p>  附錄C PROTUES仿真硬件設(shè)計(jì)圖56</p><p>  附錄D 程序清單57&l

23、t;/p><p>  附件: 畢業(yè)論文光盤(pán)資料</p><p><b>  第一章 緒論</b></p><p><b>  1.1 引言</b></p><p>  隨著科學(xué)技術(shù)的飛速發(fā)展,各種高技術(shù)不斷涌入我們的生活、工作,也改變著我們的認(rèn)識(shí)。融入一定智慧的各類(lèi)智能技術(shù),正在悄悄走近我們,并

24、將會(huì)成為下一個(gè)世紀(jì)技術(shù)的焦點(diǎn)。家用電器的功能控制大致經(jīng)歷了普通控制型、電子控制型、微電腦控制型、智能模糊控制型的發(fā)展歷程,其使用操作也是由簡(jiǎn)單到復(fù)雜、再到簡(jiǎn)單的過(guò)程,并且家用電器的功能越來(lái)越完善?,F(xiàn)代家用電器已經(jīng)進(jìn)入了微電腦(單片機(jī))、傳感器智能模糊控制的新時(shí)代。隨著單片微型計(jì)算機(jī)不斷發(fā)展,由于它具有體積小、功能強(qiáng)、性?xún)r(jià)比高等特點(diǎn),因此其在溫度控制領(lǐng)域方面的應(yīng)用已經(jīng)逐步占據(jù)主導(dǎo)地位。由其構(gòu)成的溫度控制器的已廣泛應(yīng)用于家用電器、節(jié)能裝置等

25、諸多領(lǐng)域,使產(chǎn)品小型化、智能化,既提高了產(chǎn)品的功能和質(zhì)量,又降低了成本,簡(jiǎn)化了設(shè)計(jì)。其實(shí)對(duì)人類(lèi)來(lái)說(shuō),先進(jìn)和智能的家用電器的發(fā)明和使用是巨大的貢獻(xiàn),我們應(yīng)該從積極的和長(zhǎng)遠(yuǎn)的意義去看待這些發(fā)明。多虧了這些先進(jìn)和智能的家用電器減輕了家務(wù)的繁雜和冗長(zhǎng),家庭主婦們可以節(jié)約大量的時(shí)間來(lái)陪伴家人、孩子,所以在現(xiàn)代,全職的家庭主婦就很少了,既能外出工作,又能回家做家務(wù),里外都不耽誤。</p><p>  1.2選題的背景和意義&

26、lt;/p><p>  在人類(lèi)的生活環(huán)境中,溫度扮演著極其重要的角色。無(wú)論你生活在哪兒,從事哪些工作,無(wú)時(shí)無(wú)刻不在與溫度打著交道。在溫度控制領(lǐng)域溫度傳感元件幾乎是無(wú)處不在。從空調(diào)系統(tǒng)、冰箱、電飯煲、電風(fēng)扇等家電產(chǎn)品直至PC機(jī)、服務(wù)器、計(jì)算機(jī)外設(shè)、移動(dòng)電話手機(jī)等,都需要具有溫度傳感功能的器件。雖然長(zhǎng)期以來(lái)熱敏電阻器是最常用的元件,目前在一些工業(yè)應(yīng)用領(lǐng)域仍然起重要的作用;但是,集成電路溫度傳感器比起熱敏電阻器有著明顯的優(yōu)

27、點(diǎn),包括準(zhǔn)確度更高,體積更小,功耗更低,更加適合在集成電路系統(tǒng)中應(yīng)用。溫度傳感器集成電路的電壓輸出與溫度成正比,在相當(dāng)寬的溫度范圍內(nèi),都具有很高的準(zhǔn)確度。反之,熱敏電阻器的電壓輸出與溫度不具有線性關(guān)系,需通過(guò)查表或外加線性化電路,才能得到準(zhǔn)確的溫度。而且,熱敏電阻器在高溫區(qū)段電壓變化率較小,不易分辨,造成溫度測(cè)量的誤差較大。這是熱敏電阻器的最大缺點(diǎn)。相比之下,集成電路溫度傳感器因其電壓輸出與溫度成線性關(guān)系,無(wú)論在高溫或低溫范圍內(nèi),準(zhǔn)確度

28、都是一樣的。其次,熱敏電阻器產(chǎn)品在不同的批次間存在差異,電子響應(yīng)性能不一致。因而,使用前都需要進(jìn)行調(diào)校,在大量生產(chǎn)時(shí)增加成本和時(shí)間。集成電路溫度傳感器的輸出阻抗較低</p><p>  隨著科學(xué)技術(shù)的不斷創(chuàng)新,數(shù)字溫度傳感器已經(jīng)廣泛應(yīng)用在家用電器、工業(yè)控制以及人們的日常生活等許多領(lǐng)域。特別是在家用電器領(lǐng)域應(yīng)用的最為廣泛,例如智能熱水器、空調(diào)器恒溫裝置、電冰箱制冷系統(tǒng)等均可采用數(shù)字溫度傳感器來(lái)實(shí)現(xiàn)。隨著人們生活水平

29、的不斷提高,各種智能家電會(huì)成為家電行業(yè)的主要發(fā)展方向。屆時(shí),數(shù)字溫度傳感器以及液晶顯示模塊將會(huì)進(jìn)一步走進(jìn)更加廣泛的家用電器領(lǐng)域。為人們的生活服務(wù)。</p><p><b>  1.3本文的結(jié)構(gòu)</b></p><p>  本文以基于單片機(jī)的智能溫度檢測(cè)器的設(shè)計(jì)。對(duì)單片機(jī)應(yīng)用與數(shù)字溫度傳感器、液晶顯示、時(shí)鐘芯片等的應(yīng)用技術(shù)進(jìn)行了研究。全文共分為六章,各章的主要內(nèi)容如下:

30、</p><p>  第一章簡(jiǎn)要地介紹智能家電的發(fā)展以及溫度控制技術(shù)在家電領(lǐng)域中的應(yīng)用;</p><p>  第二章規(guī)劃并給出系統(tǒng)的總體設(shè)計(jì)方案;</p><p>  第三章介紹了系統(tǒng)各模塊的介紹,及其在PROTUES中的硬件仿真設(shè)計(jì);</p><p>  第四章對(duì)系統(tǒng)的各模塊進(jìn)行軟件設(shè)計(jì),給出了程序的流程圖;</p><

31、p>  第五章對(duì)對(duì)于系統(tǒng)的附加功能(體溫檢測(cè))進(jìn)行了介紹;</p><p>  第六章總結(jié)了整個(gè)課題研究工作,總結(jié)了設(shè)計(jì)的成果和感想。</p><p>  第二章 系統(tǒng)總體方案設(shè)計(jì)</p><p><b>  2.1方案選擇</b></p><p>  由于數(shù)字溫度傳感器的各方面的優(yōu)點(diǎn)。在本設(shè)計(jì)中采用了目前市場(chǎng)上

32、廣泛應(yīng)用的一款數(shù)字溫度傳感器——DS18B20。它是由美國(guó)DALLAS公司生產(chǎn)單總線器件,具有線路簡(jiǎn)單,體積小的特點(diǎn)。以AT89C52為核心的單片機(jī)控制系統(tǒng),采用12864液晶來(lái)實(shí)現(xiàn)相應(yīng)信息的顯示,用DS1302時(shí)鐘芯片來(lái)實(shí)現(xiàn)實(shí)時(shí)時(shí)間提示功能。</p><p>  2.2 總體方案設(shè)計(jì)</p><p>  系統(tǒng)主要的組成模塊如下:鍵盤(pán)掃描模塊(4個(gè)獨(dú)立按鍵);檢測(cè)信息提示模塊(發(fā)光二極管)

33、;日期顯示模塊(通過(guò)DS1302時(shí)鐘芯片實(shí)現(xiàn));液晶顯示模(采用12864液晶顯示芯片);溫度控制模塊(使用DS18B20溫度傳感器設(shè)計(jì));附加功能模塊(體溫檢測(cè))。系統(tǒng)總體方案設(shè)計(jì)框圖如圖2.1所示</p><p>  圖2.1 系統(tǒng)總體方案設(shè)計(jì)框圖</p><p>  其實(shí)現(xiàn)的以下的功能:</p><p> ?。?)日期顯示模塊:編程通過(guò)AT89C52控制DS

34、1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘功能(包括:年、月、日、星期、時(shí)、分、秒)。相應(yīng)的時(shí)期信息發(fā)送到12864液晶上顯示。</p><p> ?。?)當(dāng)S1鍵時(shí):進(jìn)入制冷模式,溫度控制模塊DS18B20采集當(dāng)前溫度信息與制冷的設(shè)定值比較。并將相應(yīng)的信息發(fā)送到12864液晶上顯示。</p><p> ?。?)當(dāng)S2鍵時(shí):進(jìn)入加熱模式,溫度控制模塊DS18B20采集當(dāng)前溫度信息與加熱的設(shè)定值比較。并將相應(yīng)

35、的信息發(fā)送到12864液晶上顯示</p><p> ?。?)當(dāng)S3鍵時(shí):進(jìn)入恒溫模式,溫度控制模塊DS18B20采集當(dāng)前溫度信息與恒溫設(shè)定值比較。并將相應(yīng)的信息發(fā)送到12864液晶上顯示</p><p>  (5):當(dāng)S4鍵時(shí):進(jìn)入附加功能模塊,溫度控制模塊DS18B20采集當(dāng)前體溫?cái)?shù)值并與設(shè)定值比較。并將相應(yīng)的信息發(fā)送到12864液晶上以及發(fā)光二極管上顯示</p><

36、p>  第三章 系統(tǒng)硬件設(shè)計(jì)</p><p>  3.1 單片機(jī)主控制模塊設(shè)計(jì)</p><p><b>  3.1.1 概述</b></p><p>  AT89C52是美國(guó)ATMEL公司生產(chǎn)的低電壓,高性能CMOS電路8位單片機(jī),片內(nèi)含有8K bytes的可反復(fù)擦寫(xiě)的FLASH只讀程序存儲(chǔ)器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器

37、(RAM)。芯片采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)。內(nèi)置通用8位中央處理器(CPU)和Flash存儲(chǔ)單元,由于功能強(qiáng)大,可應(yīng)用于多種高性?xún)r(jià)比場(chǎng)合。</p><p>  AT89C52的引腳如圖3.1所示。主要性能參數(shù)如下:</p><p>  與MCS-51產(chǎn)品指令系統(tǒng)完全兼容</p><p>  8K字節(jié)可重擦寫(xiě)Flas

38、h閃速存儲(chǔ)器</p><p><b>  1000次擦寫(xiě)周期</b></p><p>  全靜態(tài)操作:0Hz~24MHz</p><p><b>  三級(jí)加密程序存儲(chǔ)器</b></p><p>  256×8字節(jié)內(nèi)部RAM</p><p>  32個(gè)可編程I/O口線

39、</p><p>  3個(gè)16位定時(shí)/計(jì)數(shù)器</p><p><b>  8個(gè)中斷源</b></p><p>  可編程串行UART通道</p><p>  低功耗空閑和掉電模式</p><p>  圖3.1 AT89C52芯片引腳圖</p><p>  3.1.2 功能特

40、性</p><p>  AT89C52提供以下的功能標(biāo)準(zhǔn):8K字節(jié)閃爍存儲(chǔ)器,256字節(jié)隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,32個(gè)I/O口,3個(gè)16位定時(shí)/計(jì)數(shù)器,1個(gè)6向量?jī)杉?jí)中斷結(jié)構(gòu),1個(gè)全雙工串行通信口,片內(nèi)振蕩器和時(shí)鐘電路。另外,AT89C52還可以進(jìn)行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。空閑方式停止中央處理器的工作,能夠允許RAM、定時(shí)/計(jì)數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但振

41、蕩器停止工作并禁止其它所有部件的工作直到下一個(gè)硬件復(fù)位。</p><p>  3.1.3 引腳描述</p><p>  VCC:電源電壓 </p><p><b>  GND:地</b></p><p><b>  P0口:</b></p><p>  P0口是一組8位

42、漏極開(kāi)路雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時(shí),每一個(gè)管腳都能夠驅(qū)動(dòng)8個(gè)TTL電路。當(dāng)“1”被寫(xiě)入P0口時(shí),每個(gè)管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時(shí)激活內(nèi)部的上拉電阻。P0口在FLASH編程時(shí),P0口接收指令,在程序校驗(yàn)時(shí),輸出指令,需要外接上拉電阻。</p><p><b>  P1口:</b></p

43、><p>  P1口一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí)可作為輸入口。因?yàn)閮?nèi)部有上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)輸出一個(gè)電流。與AT89C51不同之處是,P1.0和P1.1還可分別作為定時(shí)/計(jì)數(shù)器2的外部計(jì)數(shù)輸入和輸出。FLASH編程和程序校驗(yàn)期間,P1接受低8位地址。</p><p><b&g

44、t;  P2口:</b></p><p>  P2口是一個(gè)內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級(jí)可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的電阻把端口拉到高電平,此時(shí),可作為輸入口。因?yàn)閮?nèi)部有上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流。在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問(wèn)8位地址的外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口線上的內(nèi)容在整個(gè)運(yùn)行期間不

45、變。FLASH編程或校驗(yàn)時(shí),P2口接收高位地址和其它控制信號(hào)。</p><p><b>  P3口:</b></p><p>  P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動(dòng)4個(gè)TTL電路。對(duì)P3口寫(xiě)如“1”時(shí),它們被內(nèi)部電阻拉到高電平并可作為輸入端時(shí),被外部拉低的P3口將用電阻輸出電流。</p><p>  P3口除了作

46、為一般的I/O口外,更重要的用途是它的第二功能,如下表3.2所示:</p><p>  表3.2 P3口第二功能表</p><p>  P3口還接收一些用于FLASH存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。</p><p><b>  RST:</b></p><p>  復(fù)位輸入。當(dāng)振蕩器工作時(shí),RET引腳出現(xiàn)兩個(gè)機(jī)器周期

47、以上的高電平將使單片機(jī)復(fù)位。</p><p><b> ?。?lt;/b></p><p>  當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE以時(shí)鐘震蕩頻率的1/16輸出固定的正脈沖信號(hào),因此它可對(duì)輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖時(shí),F(xiàn)LASH存儲(chǔ)器編程時(shí),這個(gè)引腳還用

48、于輸入編程脈沖。如果必要,可對(duì)特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個(gè)位置后只有一條MOVX和MOVC指令A(yù)LE才會(huì)被應(yīng)用。此外,這個(gè)引腳會(huì)微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無(wú)效。</p><p><b>  PSEN:</b></p><p>  程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89C52由外部程序存儲(chǔ)器讀取指令時(shí),每個(gè)

49、機(jī)器周期兩次PSEN 有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN 信號(hào)不出現(xiàn)。</p><p><b> ?。?lt;/b></p><p>  外部訪問(wèn)允許。欲使中央處理器僅訪問(wèn)外部程序存儲(chǔ)器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。閃爍

50、存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電壓VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。</p><p>  XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。</p><p>  XTAL2:振蕩器反相放大器的輸出端。</p><p>  3.1.4 時(shí)鐘振蕩電路與復(fù)位電路</p><p>  AT89C52中有一個(gè)用于構(gòu)

51、成內(nèi)部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個(gè)放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自激震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。對(duì)外接電容C1,C2雖然沒(méi)有十分嚴(yán)格的要求,但電容容量的大小會(huì)輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF±10PF,而如果使用陶

52、瓷振蕩器建議選擇40PF±10PF。用戶(hù)也可以采用外部時(shí)鐘。采用外部時(shí)鐘的電路如圖3.3示。這種情況下,外部時(shí)鐘脈沖接到XTAL1端,即內(nèi)部時(shí)鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求</p><p>  圖3.3 時(shí)鐘振蕩電路</p&

53、gt;<p>  本設(shè)計(jì)中采用如圖3.4所示的振蕩電路:</p><p>  圖3.4 振蕩電路</p><p>  本設(shè)計(jì)中采用如圖3.5所示的復(fù)位電路:</p><p>  圖3.5 復(fù)位電路</p><p>  3.1.5 AT89C52硬件連接圖:</p><p>  本設(shè)計(jì)中采用AT89C

54、52硬件連接圖如圖3.6所示</p><p>  圖3.6 AT89C52硬件連接圖</p><p>  3.2 溫度控制模塊設(shè)計(jì)(DS18B20)</p><p>  DS18B20數(shù)字溫度計(jì)是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有</p><p>  線路簡(jiǎn)單,體積小的特點(diǎn)。因此用它來(lái)組成一個(gè)測(cè)溫系統(tǒng),具有線路簡(jiǎn)單,

55、在一</p><p>  根通信線,可以掛很多這樣的數(shù)字溫度計(jì),十分方便。</p><p>  3.2.1 DS18B20產(chǎn)品的特點(diǎn)</p><p> ?。?)、只要求一個(gè)端口即可實(shí)現(xiàn)通信。</p><p>  (2)、在DS18B20中的每個(gè)器件上都有獨(dú)一無(wú)二的序列號(hào)。</p><p>  (3)、實(shí)際應(yīng)用中不需

56、要外部任何元器件即可實(shí)現(xiàn)測(cè)溫。</p><p>  (4)、測(cè)量溫度范圍在-55。C到+125。C之間。</p><p> ?。?)、數(shù)字溫度計(jì)的分辨率用戶(hù)可以從9位到12位選擇。</p><p> ?。?)、內(nèi)部有溫度上、下限告警設(shè)置。</p><p>  3.2.2 DS18B20的引腳介紹</p><p>  

57、TO-92封裝的DS18B20的引腳排列及其引腳功能描述見(jiàn)圖3.7所示:</p><p>  圖3.7 DS18B20的引腳說(shuō)明</p><p>  3.2.3 DS18B20硬件連接</p><p>  首先介紹一下“單總線”的概念。主機(jī)可以是微控制器,從機(jī)是單總線器件,它們之間的數(shù)據(jù)交換只通過(guò)一條數(shù)據(jù)線。設(shè)備通過(guò)一個(gè)漏極開(kāi)路或三態(tài)端口連至該數(shù)據(jù)線,以允許設(shè)

58、備在不發(fā)送數(shù)據(jù)時(shí)釋放總線,讓其他設(shè)備使用總線。單總線通常要求外接一個(gè)約5K的上拉電阻。</p><p>  Ds18b20芯片手冊(cè)上的典型連接如下圖3.8所示 .從圖中可以看出,DS18B20與單片機(jī)的連接非常簡(jiǎn)單,單片機(jī)只需要一個(gè)I/O口就可以控制DS18B20。</p><p>  圖3.8 Ds18b20的典型硬件連接圖</p><p>  在本設(shè)計(jì)中,DS1

59、8B20與AT89C52硬件連接如圖3.9所示:</p><p>  圖3.9 Ds18b20硬件連接圖</p><p>  3.2.4 DS18B20的工作原理</p><p><b>  存儲(chǔ)器</b></p><p>  存儲(chǔ)器有一個(gè)暫存SRAM和一個(gè)存儲(chǔ)高低報(bào)警觸發(fā)值TH和TL的非易失性電可擦除EEPROM組

60、成。注意當(dāng)報(bào)警功能不使用時(shí),TH和TL寄存器可以被當(dāng)作普通寄存器使用。</p><p>  位0和位1為測(cè)得溫度信息的LSB和MSB。這兩個(gè)字節(jié)是只讀的。</p><p>  第2和第3字節(jié)是TH和TL的拷貝。</p><p>  位4包含配置寄存器數(shù)據(jù)。</p><p>  位5,6和7被器件保留,禁止寫(xiě)入。</p><

61、p>  高速暫存器的位8是只讀的,包含以上八個(gè)字節(jié)的CRC碼。</p><p>  DS18B20的存儲(chǔ)器結(jié)構(gòu)示于圖3.10:</p><p>  圖3.10 DS18B20的存儲(chǔ)器結(jié)構(gòu)圖</p><p><b>  測(cè)溫操作</b></p><p>  DS18B20的核心功能是它的直接讀數(shù)字的溫度傳感器。溫度傳

62、感器的精度為用戶(hù)</p><p>  可編程的9,10,11或12位,分別以0.5℃,0.25℃,0.125℃和0.0625℃增量</p><p>  遞增。在上電狀態(tài)下默認(rèn)的精度為12位。DS18B20啟動(dòng)后保持低功耗等待狀態(tài);</p><p>  當(dāng)需要執(zhí)行溫度測(cè)量和AD轉(zhuǎn)換時(shí),總線控制器必須發(fā)出[44h]命令。在那之后,</p><p>

63、;  產(chǎn)生的溫度數(shù)據(jù)以?xún)蓚€(gè)字節(jié)的形式被存儲(chǔ)到高速暫存器的溫度寄存器中,</p><p>  溫度寄存器格式圖3.11。</p><p>  圖3.11 DS18B20溫度寄存器格式圖</p><p>  由于DS18B20在上電狀態(tài)下默認(rèn)的精度為12位,最高位是符號(hào)位,即溫度值是11位,存儲(chǔ)在高速暫存器的溫度寄存器中0—1字節(jié)。單片機(jī)在讀取數(shù)據(jù)時(shí),一次讀兩個(gè)字節(jié)共

64、16位數(shù)據(jù),其中高5位為符號(hào)位,低11位為溫度數(shù)據(jù)位。</p><p>  (1) 當(dāng)前5位為0時(shí),讀取的溫度為正值,將讀到的11位二進(jìn)制溫度值乘以0.0625,可以得到實(shí)際溫度值。</p><p> ?。?) 當(dāng)前5位為1時(shí),讀取的溫度為負(fù)值,需要將讀到的11位二進(jìn)制溫度值按位取反并加1,再乘以0.0625,才可以得到實(shí)際溫度值。</p><p>  本設(shè)計(jì)中,對(duì)

65、于讀取的溫度數(shù)值的處理過(guò)程現(xiàn)分析如下:</p><p>  首先從DS18B20中讀出轉(zhuǎn)換完成的當(dāng)前溫度值</p><p>  a=ReadOneChar();//溫度值低位</p><p>  b=ReadOneChar();//溫度值高位</p><p><b>  t=b;</b></p><p

66、><b>  t<<=8;</b></p><p><b>  t=t|a;</b></p><p>  t=t*0.0625; //轉(zhuǎn)換為實(shí)際的十進(jìn)制溫度</p><p><b> ?。?lt;/b></p><p>  DS18B20的指令</p&g

67、t;<p><b>  1、ROM指令</b></p><p>  一旦總線控制器探測(cè)到一個(gè)存在脈沖,它就發(fā)出一條ROM指令。如果總線上掛有</p><p>  多只DS18B20,這些指令將基于器件獨(dú)有的64位ROM片序列碼使得總線控制器</p><p>  選出特定要進(jìn)行操作的器件。這些指令同樣也可以使總線控制器識(shí)別有多少只,

68、</p><p>  什么型號(hào)的器件掛在總線上,同樣,它們也可以識(shí)別哪些器件已經(jīng)符合報(bào)警條件。</p><p>  ROM指令有5條,都是8位長(zhǎng)度??偩€控制器在發(fā)起一條DS18B20功能指令之前</p><p>  必須先發(fā)出一條ROM指令。</p><p>  64位(激)光刻只讀存儲(chǔ)器介紹:</p><p>  每

69、只DS18B20都有一個(gè)唯一存儲(chǔ)在ROM中的64位編碼。最前面8位是單線系列</p><p>  編碼:28h。接著的48位是一個(gè)唯一的序列號(hào)。最后8位是以上56位的CRC編</p><p><b>  碼。</b></p><p>  圖3.12 64位(激)光刻只讀存儲(chǔ)器</p><p>  F0h—(搜索ROM指

70、令)</p><p>  當(dāng)系統(tǒng)上電初始化的時(shí)候,總線控制器必須通過(guò)識(shí)別總線上所有ROM片序列碼去</p><p>  得到從機(jī)的數(shù)目和型號(hào)。總線控制器通過(guò)搜索ROM指令多次循環(huán)搜索ROM編碼,</p><p>  以確認(rèn)所有從機(jī)器件。</p><p>  33h—(讀取ROM指令)</p><p>  只有在總線上存

71、在單只DS18B20的時(shí)候才能使用這條命令。該命令允許總線控制</p><p>  器在不使用搜索ROM指令的情況下讀取從機(jī)的64位片序列碼。如果總線上有不</p><p>  止一只從機(jī),當(dāng)所有從機(jī)試圖同時(shí)傳送信號(hào)時(shí)就會(huì)發(fā)生數(shù)據(jù)沖突。</p><p>  55h—(匹配ROM指令)</p><p>  匹配ROM指令,后跟64位ROM編碼序

72、列,讓總線控制器在多點(diǎn)總線上定位一只</p><p>  特定的DS18B20。只有和64位ROM片序列碼完全匹配的DS18B20才能響應(yīng)隨后</p><p>  的存儲(chǔ)器操作指令;所有和64位ROM片序列碼不匹配的從機(jī)都將等待復(fù)位脈沖。</p><p>  CCh—(忽略ROM指令)</p><p>  這條指令允許總線控制器不用提供64位

73、ROM編碼就使用功能指令。例如,總線</p><p>  控制器可以先發(fā)出一條忽略ROM指令,然后發(fā)出溫度轉(zhuǎn)換指令[44h],從而完成</p><p>  溫度轉(zhuǎn)換操作。注意:當(dāng)只有一只從機(jī)在總線上時(shí),無(wú)論如何,忽略ROM指令之</p><p>  后只能跟著發(fā)出一條讀取暫存器指令[BEh]。在單點(diǎn)總線情況下使用該命令,器</p><p> 

74、 件無(wú)需發(fā)回64位ROM編碼,從而節(jié)省了時(shí)間。如果總線上有不止一只從機(jī),若</p><p>  發(fā)出忽略ROM指令,由于多只從機(jī)同時(shí)傳送信號(hào),總線上就會(huì)發(fā)生數(shù)據(jù)沖突。</p><p>  ECH—(報(bào)警搜索指令)</p><p>  這條命令的流程和搜索ROM指令相同,然而,只有滿(mǎn)足報(bào)警條件的從機(jī)才對(duì)該命</p><p>  令作出響應(yīng)。只有

75、在最近一次測(cè)溫后遇到符合報(bào)警條件的情況,DS18B20才會(huì)響</p><p><b>  應(yīng)這條命令。</b></p><p>  2、DS18B20功能指令</p><p>  在總線控制器發(fā)給欲連接的DS18B20一條ROM命令后,跟著可以發(fā)送一條DS18B20功能指令。這些命令允許總線控制器讀寫(xiě)DS18B20的暫存器,發(fā)起溫度轉(zhuǎn)換和識(shí)別電

76、源模式。DS18B20的功能指令詳見(jiàn)下文。</p><p>  44h—(溫度轉(zhuǎn)換指令)</p><p>  這條命令用以啟動(dòng)一次溫度轉(zhuǎn)換。溫度轉(zhuǎn)換指令被執(zhí)行,產(chǎn)生的溫度轉(zhuǎn)換結(jié)果數(shù)</p><p>  據(jù)以2個(gè)字節(jié)的形式被存儲(chǔ)在高速暫存器中,而后DS18B20保持等待狀態(tài)。</p><p>  4Eh—(寫(xiě)暫存器指令)</p>

77、<p>  這條命令向DS18B20的暫存器寫(xiě)入數(shù)據(jù),開(kāi)始位置在TH寄存器(暫存器的第2</p><p>  個(gè)字節(jié)),接下來(lái)寫(xiě)入TL寄存器(暫存器的第3個(gè)字節(jié)),最后寫(xiě)入配置寄存器</p><p> ?。〞捍嫫鞯牡?個(gè)字節(jié))。數(shù)據(jù)以最低有效位開(kāi)始傳送。上述三個(gè)字節(jié)的寫(xiě)入必</p><p>  須發(fā)生在總線控制器發(fā)出復(fù)位命令前,否則會(huì)中止寫(xiě)入。</p

78、><p>  BEh—(讀暫存器指令)</p><p>  這條命令讀取暫存器的內(nèi)容。讀取將從字節(jié)0開(kāi)始,一只進(jìn)行下去,直到第9字節(jié)(字節(jié)8,CRC)讀完,如果不想讀完所有字節(jié),控制器可以在任何時(shí)間發(fā)出復(fù)位命令來(lái)中止讀取。</p><p>  48h—(拷貝暫存器指令)</p><p>  這條命令把TH,TL和配置寄存器(第2、3、4字節(jié))的內(nèi)

79、容拷貝到EEPROM中。</p><p>  B8H—(召回EEPROM指令)</p><p>  這條命令把報(bào)警觸發(fā)器的值(TH和TL)以及配置數(shù)據(jù)從EEPROM拷回暫存器???lt;/p><p>  線控制器在發(fā)出該命令后讀時(shí)序,DS18B20會(huì)輸出拷回標(biāo)識(shí):0標(biāo)識(shí)正在拷回,1</p><p>  標(biāo)識(shí)拷回結(jié)束。這種拷回操作在DS18B20上

80、電時(shí)自動(dòng)執(zhí)行,這樣器件一上電暫存</p><p>  器里馬上就存在有效的數(shù)據(jù)了。</p><p>  B4h—(讀電源模式指令)</p><p>  總線控制器在這條命令發(fā)給DS18B20后發(fā)出讀時(shí)序,若是寄生電源模式,DS18B20</p><p>  將拉低總線,若是外部電源模式,DS18B20將會(huì)把總線拉高。</p>&

81、lt;p>  本設(shè)計(jì)中,由于只采用了一個(gè)DS18B20溫度傳感器,則在具體程序設(shè)計(jì)中采用了以下指令。分析如下:</p><p>  WriteOneChar(0xCC); // 跳過(guò)讀序列號(hào)的操作,由于只有一個(gè)DS18B20</p><p>  WriteOneChar(0x44); // 啟動(dòng)溫度轉(zhuǎn)換</p><p>  WriteOneChar(0xBE)

82、; //讀取溫度寄存器等(共可讀9個(gè)寄存器) 前兩個(gè)就是溫度值</p><p>  3.3 時(shí)鐘模塊設(shè)計(jì)(DS1302)</p><p><b>  3.3.1 概述</b></p><p>  DS1302是DALLAS公司推出的涓流充電時(shí)鐘芯片內(nèi)含,有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31字節(jié)靜態(tài)RAM,通過(guò)簡(jiǎn)單的串行接口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日

83、歷電路提供秒、分、時(shí)、日、日期、月、年的信息,每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過(guò)AM/PM指示決定采用24或12小時(shí)格式。DS1302與單片機(jī)之間能簡(jiǎn)單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線: RES(復(fù)位)、I/O(數(shù)據(jù)線) 、SCLK(串行時(shí)鐘)。串行時(shí)鐘時(shí)鐘/RAM的讀/寫(xiě)數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31個(gè)字節(jié)的字符組方式通信。DS1302工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。</p>&

84、lt;p>  DS1302是由DS1202改進(jìn)而來(lái),增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1為可編程涓流充電,電源附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。下面將主要的性能指標(biāo)作一綜合:</p><p> ?。?)實(shí)時(shí)時(shí)鐘具有能計(jì)算2100年之前的秒、分、時(shí)、日、日期、星期、月、年的能力,還有閏年調(diào)整的能力。</p><

85、p>  (2)31 8位暫存數(shù)據(jù)存儲(chǔ)RAM</p><p> ?。?)串行I/O口方式使得管腳數(shù)量最少</p><p> ?。?)寬范圍工作電壓:2.0 —5.5V</p><p> ?。?)工作電流:2.0V時(shí),小于300nA</p><p> ?。?)讀/寫(xiě)時(shí)鐘或RAM數(shù)據(jù)時(shí),有兩種傳送方式:?jiǎn)巫止?jié)傳送和多字節(jié)傳送(字符組方式)&l

86、t;/p><p> ?。?)腳DIP封裝或可選的8腳SOIC封裝(根據(jù)表面裝配)</p><p><b> ?。?)簡(jiǎn)單3線接口</b></p><p> ?。?0)與TTL兼容(Vcc=5V)</p><p>  (11)可選工業(yè)級(jí)溫度范圍-40—85攝氏度</p><p> ?。?2)與DS120

87、2兼容</p><p> ?。?3)在DS1202基礎(chǔ)上增加的特性</p><p>  -對(duì)Vcc1有可選的涓流充電能力</p><p>  -雙電源管用于主電源和備份電源供應(yīng)</p><p>  -備份電源管腳可由電池或大容量電容輸入</p><p>  -附加的7字節(jié)暫存存儲(chǔ)器</p><p&g

88、t;  3.3.2 DS1302 引腳描述及與單片機(jī)典型接口</p><p>  DS1302的管腳排列及描述如圖3.13所示</p><p><b>  管腳描述:</b></p><p>  X1,X2 ——32.768KHz晶振管腳</p><p><b>  GND ——地</b>&

89、lt;/p><p>  RST ——復(fù)位腳</p><p>  I/O ——數(shù)據(jù)輸入/輸出引腳</p><p>  SCLK ——串行時(shí)鐘</p><p>  Vcc1,Vcc2 ——電源供電管腳</p><p>  圖3.13 DS1302 引腳分布</p><p>  DS1302與

90、單片機(jī)典型接口由下圖表示</p><p>  圖3.14 DS1302與單片機(jī)典型連接</p><p>  在本設(shè)計(jì)中,DS1302與AT89C52硬件連接如圖3.15所示:</p><p>  圖3.15 DS1302的硬件連接</p><p>  3.4 液晶顯示模塊設(shè)計(jì) (12864)</p><p>  

91、3.4.1 液晶顯示模塊概述</p><p>  AT12864漢字圖形點(diǎn)陣液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個(gè)中文漢字(16X16點(diǎn)陣)、128個(gè)字符(8X16點(diǎn)陣)及64X256點(diǎn)陣顯示RAM(GDRAM)。</p><p>  主要技術(shù)參數(shù)和顯示特性:</p><p>  電源:VDD 3.3V~+5V(內(nèi)置升壓電路,無(wú)需負(fù)壓);</p>

92、;<p>  顯示內(nèi)容:128列×64行</p><p><b>  顯示顏色:黃綠</b></p><p>  顯示角度:6:00鐘直視</p><p><b>  LCD類(lèi)型:STN</b></p><p>  與MCU接口:8位或4位并行/3位串行</p>

93、<p><b>  配置LED背光</b></p><p>  多種軟件功能:光標(biāo)顯示、畫(huà)面移位、自定義字符、睡眠模式等</p><p>  3.4.2 外形尺寸</p><p>  外觀尺寸:93×70×12.5mm視域尺寸:73×39mm</p><p>  外形尺寸如圖3

94、.16所示:</p><p>  圖3.16 12864外形尺寸圖</p><p>  3.4.3 模塊引腳說(shuō)明</p><p>  128X64HZ引腳說(shuō)明</p><p>  圖3.17 128X64HZ引腳說(shuō)明</p><p>  邏輯工作電壓(VDD):4.5~5.5V</p><p>

95、;  電源地(GND):0V</p><p>  工作溫度(Ta):0~60℃(常溫)/-20~75℃(寬溫)</p><p>  3.4.4 12864液晶與單片機(jī)的硬件連接圖</p><p>  圖3.18 12864液晶與單片機(jī)的硬件連接圖</p><p>  3.5 發(fā)光二極管與獨(dú)立鍵盤(pán)模塊設(shè)計(jì)</p><p&g

96、t;  3.5.1 發(fā)光二極管</p><p>  本次設(shè)計(jì)中采用了兩只發(fā)光二極管:紅色和綠色。</p><p>  其與AT89C52的硬件連接方式如下:</p><p>  圖3.19 發(fā)光二極管硬件連接圖</p><p>  由于二極管的單向?qū)щ娦钥芍宏?yáng)極連接VCC,陰極通過(guò)100歐姆(起限流的作用)的電阻連接到單片機(jī)的P1.5與

97、P1.6口。當(dāng)P1.5與P1.6口為低電平時(shí),則發(fā)光二極管亮起。</p><p>  3.5.2 獨(dú)立鍵盤(pán)</p><p>  鍵盤(pán)是微型計(jì)算機(jī)最常用的輸入設(shè)備,用戶(hù)可以通過(guò)鍵盤(pán)向計(jì)算機(jī)輸入指令、地址和數(shù)據(jù)。鍵盤(pán)分為:編碼鍵盤(pán)和非編碼鍵盤(pán)。一般單片機(jī)系統(tǒng)中采用非編碼鍵盤(pán),非編碼鍵盤(pán)是由軟件來(lái)識(shí)別鍵盤(pán)上的閉合鍵,它具有結(jié)構(gòu)簡(jiǎn)單,使用靈活等特點(diǎn),因此被廣泛應(yīng)用于單片機(jī)系統(tǒng)。</p>

98、;<p>  獨(dú)立鍵盤(pán)與AT89C51的硬件連接如下圖所示:</p><p>  圖3.20 獨(dú)立鍵盤(pán)硬件連接圖</p><p>  按鍵開(kāi)關(guān)的抖動(dòng)問(wèn)題 </p><p>  組成鍵盤(pán)的按鍵有觸點(diǎn)式和非觸點(diǎn)式兩種,單片機(jī)中應(yīng)用的一般是由機(jī)械觸點(diǎn)構(gòu)成的。在下圖中,當(dāng)開(kāi)關(guān)S未被按下時(shí),P1。0輸入為高電平,S閉合后,P1。0輸入為低電平。由于按鍵是機(jī)械觸

99、點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開(kāi)、閉合時(shí),會(huì)有抖動(dòng),P1。0輸入端的波形如圖2所示。這種抖動(dòng)對(duì)于人來(lái)說(shuō)是感覺(jué)不到的,但對(duì)計(jì)算機(jī)來(lái)說(shuō),則是完全可以感應(yīng)到的,因?yàn)橛?jì)算機(jī)處理的速度是在微秒級(jí),而機(jī)械抖動(dòng)的時(shí)間至少是毫秒級(jí),對(duì)計(jì)算機(jī)而言,這已是一個(gè)“漫長(zhǎng)”的時(shí)間了。</p><p>  為使CPU能正確地讀出P1口的狀態(tài),對(duì)每一次按鍵只作一次響應(yīng),就必須考慮如何去除抖動(dòng),常用的去抖動(dòng)的方法有兩種:硬件方法和軟件方法。單片機(jī)中常用軟件法

100、,因此,對(duì)于硬件方法我們不介紹。軟件法其實(shí)很簡(jiǎn)單,就是在單片機(jī)獲得P1。0口為低的信息后,不是立即認(rèn)定S1已被按下,而是延時(shí)10毫秒或更長(zhǎng)一些時(shí)間后再次檢測(cè)P1。0口,如果仍為低,說(shuō)明S1的確按下了,這實(shí)際上是避開(kāi)了按鍵按下時(shí)的抖動(dòng)時(shí)間。而在檢測(cè)到按鍵釋放后(P1。0為高)再延時(shí)5-10個(gè)毫秒,消除后沿的抖動(dòng),然后再對(duì)鍵值處理。不過(guò)一般情況下,我們通常不對(duì)按鍵釋放的后沿進(jìn)行處理,實(shí)踐證明,也能滿(mǎn)足一定的要求。當(dāng)然,實(shí)際應(yīng)用中,對(duì)按鍵的要

101、求也是千差萬(wàn)別,要根據(jù)不同的需要來(lái)編制處理程序,但以上是消除鍵抖動(dòng)的原則。</p><p>  本次設(shè)計(jì)中采用以下的延時(shí)子函數(shù)來(lái)完成毫秒級(jí)的延時(shí)</p><p>  void delay1(unsigned int z)</p><p><b>  {</b></p><p>  unsigned int x,y;<

102、;/p><p>  for(x=z;x>0;x--)</p><p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  第四章 系統(tǒng)軟件設(shè)計(jì)</p><p>  4.1溫度控制模塊程序設(shè)計(jì)</p><p>  

103、DS18B20的工作時(shí)序圖 </p><p>  由于DS18B20采用的是1-Wire總線協(xié)議方式,即在一根數(shù)據(jù)線實(shí)現(xiàn)數(shù)據(jù)的</p><p>  雙向傳輸,而對(duì)AT89S51單片機(jī)來(lái)說(shuō),硬件上并不支持單總線協(xié)議,因此,我們</p><p>  必須采用軟件的方法來(lái)模擬單總線的協(xié)議時(shí)序來(lái)完成對(duì)DS18B20芯片的訪問(wèn)。由于DS18B20是在一根I/O線上讀寫(xiě)數(shù)據(jù),因

104、此,對(duì)讀寫(xiě)的數(shù)據(jù)位有著嚴(yán)格的時(shí)序要求。DS18B20有嚴(yán)格的通信協(xié)議來(lái)保證各位數(shù)據(jù)傳輸?shù)恼_性和完整性。該協(xié)議定義了幾種信號(hào)的時(shí)序:初始化時(shí)序、讀時(shí)序、寫(xiě)時(shí)序。所有時(shí)序都是將主機(jī)作為主設(shè)備,單總線器件作為從設(shè)備。而每一次命令和數(shù)據(jù)的傳輸都是從主機(jī)主動(dòng)啟動(dòng)寫(xiě)時(shí)序開(kāi)始,如果要求單總線器件回送數(shù)據(jù),在進(jìn)行寫(xiě)命令后,主機(jī)需啟動(dòng)讀時(shí)序完成數(shù)據(jù)接收。數(shù)據(jù)和命令的傳輸都是低位在先。</p><p><b>  復(fù)位時(shí)

105、序</b></p><p>  圖4.1 復(fù)位時(shí)序圖</p><p><b>  由時(shí)序圖圖可知:</b></p><p>  1 現(xiàn)將數(shù)據(jù)線置為高電平。</p><p>  2 延時(shí)(時(shí)間盡可能短一點(diǎn))</p><p>  3 數(shù)據(jù)線拉到低電平0</p><p&

106、gt;  4 延時(shí)750us(該時(shí)間范圍可以在480—960us)</p><p>  5 數(shù)據(jù)線拉到高電平1</p><p>  6 延時(shí)等待。如果初始化成功在15—60us產(chǎn)生一個(gè)有DS18B20返回的低電平0,根據(jù)該狀態(tài)可以確定它的存在。</p><p>  7 若CPU讀到數(shù)據(jù)線上的低電平0后,還要進(jìn)行延時(shí)480us。將數(shù)據(jù)線再次拉到高電平1后結(jié)束。<

107、/p><p>  由以上的分析可以寫(xiě)出DS18B20的初始化子函數(shù)如下:</p><p>  Init_DS18B20(void) //傳感器初始化</p><p><b>  {</b></p><p>  unsigned char x=0;</p><p>  DQ = 1; //

108、DQ復(fù)位</p><p>  delay(10); //稍做延時(shí)</p><p>  DQ = 0; //單片機(jī)將DQ拉低</p><p>  delay(80); //精確延時(shí) 大于 480us //450</p><p>  DQ = 1; //拉高總線</p><p>  delay(20);

109、</p><p>  x=DQ; //稍做延時(shí)后 如果x=0則初始化成功 x=1則初始化失敗</p><p>  delay(30);</p><p><b>  }</b></p><p><b>  讀時(shí)序</b></p><p>  對(duì)于DS18B20的讀時(shí)序

110、分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。DS18B20的讀時(shí)隙是從主機(jī)把單總線拉低之后,在15秒之內(nèi)就得釋放單總線,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成。</p><p>  圖4.2 讀時(shí)序時(shí)序圖</p><p><b>  由時(shí)序圖圖可知:</b></p><p>  1 將數(shù)據(jù)線拉

111、到低電平0,延時(shí)6us。</p><p>  3將數(shù)據(jù)線拉到高電平1,延時(shí)4us。</p><p>  4 讀數(shù)據(jù)線的狀態(tài)得到一位狀態(tài)位,并進(jìn)行數(shù)據(jù)處理,延時(shí)。</p><p>  5 重復(fù)上面的步驟,讀完一個(gè)字節(jié)的數(shù)據(jù)。</p><p>  由以上的分析可以寫(xiě)出DS18B20的讀數(shù)據(jù)子函數(shù)如下:</p><p>  

112、ReadOneChar(void)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  unsigned char dat = 0;</p><p>  for (i=8;i>0;i--)</p><p><b> 

113、 {</b></p><p>  DQ = 0; // 給脈沖信號(hào)</p><p><b>  dat>>=1;</b></p><p>  DQ = 1; // 給脈沖信號(hào)</p><p><b>  if(DQ)</b></p><p>  dat

114、|=0x80;</p><p><b>  delay(8);</b></p><p><b>  }</b></p><p>  return(dat);</p><p><b>  } </b></p><p><b>  寫(xiě)時(shí)序<

115、/b></p><p>  對(duì)于DS18B20的寫(xiě)時(shí)序仍然分為寫(xiě)0時(shí)序和寫(xiě)1時(shí)序兩個(gè)過(guò)程。</p><p>  DS18B20寫(xiě)0時(shí)序和寫(xiě)1時(shí)序的要求不同,當(dāng)要寫(xiě)0時(shí)序時(shí),單總線要被拉低至少60us,保證DS18B20能夠在15us到45us之間能夠正確地采樣IO總線上的“0”電平,當(dāng)要寫(xiě)1時(shí)序時(shí),單總線被拉低之后,在15us之內(nèi)就得釋放單總線。</p><p&g

116、t;  圖4.3 寫(xiě)時(shí)序時(shí)序圖</p><p>  1 數(shù)據(jù)線拉到低電平0。</p><p>  2 按從低到高位順序發(fā)送數(shù)據(jù),一次發(fā)送一位,延時(shí)50us</p><p>  3 將數(shù)據(jù)線拉到高電平1.</p><p>  4 重復(fù)上面的步驟,直到發(fā)送完一個(gè)字節(jié)。</p><p>  由以上的分析可以寫(xiě)出DS18B2

117、0的寫(xiě)字節(jié)子函數(shù)如下:</p><p>  WriteOneChar(unsigned char dat)</p><p><b>  {</b></p><p>  unsigned char i=0;</p><p>  for (i=8; i>0; i--)</p><p><b

118、>  {</b></p><p><b>  DQ = 0;</b></p><p>  DQ = dat&0x01;</p><p>  delay(10);</p><p><b>  DQ = 1;</b></p><p><b> 

119、 dat>>=1;</b></p><p><b>  }</b></p><p><b>  delay(8);</b></p><p><b>  }</b></p><p>  4.2 日期模塊程序設(shè)計(jì)</p><p> 

120、 4.2.1 DS1302內(nèi)部寄存器</p><p>  CH:時(shí)鐘停止位 寄存器2的第7位:12/24小時(shí)標(biāo)志</p><p>  CH=0 振蕩器工作允許 bit7=1 12小時(shí)模式</p><p>  CH=1 振蕩器停止 b

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論