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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  畢業(yè)設(shè)計(jì)(論文)說(shuō)明書(shū)</p><p>  課題名稱:基于單片機(jī)的電子萬(wàn)年歷設(shè)計(jì)</p><p>  院 (系):     </p><p>  專 業(yè): </p><p>  班  級(jí):        </p><p>  學(xué)生姓名:

2、 </p><p>  學(xué) 號(hào):   </p><p>  指導(dǎo)教師:  </p><p><b>  摘 要</b></p><p>  電子萬(wàn)年歷是一種應(yīng)用非常廣泛日常計(jì)時(shí)工具,對(duì)現(xiàn)代社會(huì)越來(lái)越重要。此電子萬(wàn)年歷在硬件方面主要采用STC89C52單

3、片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘、1602LCD液晶顯示屏顯示。STC89C52單片機(jī)是由宏晶公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時(shí)鐘芯片是美國(guó)DALLAS公司推出的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長(zhǎng),誤差?。粚?duì)于數(shù)字電子萬(wàn)年歷采用直觀的數(shù)字顯示,數(shù)字顯示是采用的1602LED液晶顯示屏來(lái)顯示,可以同時(shí)顯示年、月

4、、日、星期、時(shí)、分、秒等信息。此外,該電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)等功能。在軟件方面,主要包括日歷程序、時(shí)間調(diào)整程序,顯示程序等。所有程序編寫(xiě)完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,燒寫(xiě)到單片機(jī)上進(jìn)行測(cè)試。 </p><p>  此設(shè)計(jì)主要由時(shí)鐘芯片DS1302和溫度傳感器DS18B20采集數(shù)據(jù)到單片機(jī)進(jìn)行處理再通過(guò)LCD1602顯示出來(lái),本論文主要研究了液晶顯示器LCD及時(shí)鐘芯片DS1302,溫度傳感器D

5、S18B20與單片機(jī)之間的硬件互聯(lián)及通信,對(duì)數(shù)種硬件連接方案進(jìn)行了詳盡的比較,在軟件方面對(duì)日歷算法也進(jìn)行了論述。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī);DS1302;DS18B20;LCD1602</p><p><b>  Abstract</b></p><p>  Electronic calendar is a widely used t

6、ool for the daily time, more and more important in modern society. The electronic calendar in terms of hardware as the main control mainly STC89C52 microcontroller core, provided by the DS1302 clock chip clock, 1602LCD L

7、CD display. STC89C52 microcontroller by Hongjing introduced, the power consumption, voltage can be selected 4 ~ 6V voltage power supply; DS1302 clock chip introduced in the United States DALLAS low-power real time clock

8、chip, which can be yea</p><p>  Key words: SCM; DS1302; DS18B20; LCD1602 </p><p><b>  目 錄</b></p><p><b>  摘 要I</b></p><p>  AbstractII</p&

9、gt;<p>  第 1 章 緒 論1</p><p><b>  1.1課題背景1</b></p><p>  1.2 課題意義1</p><p>  1.3國(guó)內(nèi)外現(xiàn)狀及水平1</p><p>  第2章基于單片機(jī)萬(wàn)年歷的方案研究2</p><p>  2.1 系統(tǒng)基本

10、方案選擇和論證2</p><p>  2.1.1 單片機(jī)芯片的選擇2</p><p>  2.1.2 顯示模塊選擇方案和論證3</p><p>  2.1.3 時(shí)鐘芯片的選擇方案和論證3</p><p>  2.1.4 溫度傳感器的選擇方案與論證3</p><p>  2.2 電路設(shè)計(jì)最終方案決定4<

11、/p><p>  2.3 DS1302,DS18B20和LCD1602的原理及說(shuō)明4</p><p>  2.3.1 LCD1602工作原理及說(shuō)明4</p><p>  2.3.2 DS1302原理及說(shuō)明5</p><p>  2.3.3 DS18B20工作原理及說(shuō)明6</p><p>  第3章 系統(tǒng)的硬件設(shè)計(jì)與

12、實(shí)現(xiàn)7</p><p>  3.1電路設(shè)計(jì)框圖7</p><p>  3.2系統(tǒng)硬件概述8</p><p>  3.3 主要模塊電路的設(shè)計(jì)8</p><p>  3.3.1 STC89C52單片機(jī)主控制模塊的設(shè)計(jì)8</p><p>  3.3.2時(shí)鐘電路模塊的設(shè)計(jì)10</p><p>

13、;  3.3.3溫度采集模塊設(shè)計(jì)11</p><p>  3.3.4 顯示模塊的設(shè)計(jì)12</p><p>  3.4各模塊電路原理圖12</p><p>  3.4.1電源電路12</p><p>  3.4.2復(fù)位電路12</p><p>  3.4.3振蕩電路13</p><p>

14、;  3.4.4溫度采集電路13</p><p>  3.4.5蜂鳴器電路14</p><p>  3.4.6顯示電路15</p><p>  3.4.7鍵盤(pán)電路15</p><p>  第4章 系統(tǒng)的軟件設(shè)計(jì)16</p><p>  4.1 程序流程框圖:16</p><p>  

15、第5章 系統(tǒng)測(cè)試18</p><p>  5.1 硬件測(cè)試18</p><p>  5.2 軟件測(cè)試18</p><p><b>  結(jié)束語(yǔ)19</b></p><p><b>  致謝19</b></p><p><b>  參考文獻(xiàn)20</b&

16、gt;</p><p><b>  附錄1:程序22</b></p><p>  第 1 章 緒 論</p><p><b>  1.1課題背景 </b></p><p>  在當(dāng)代繁忙的工作與生活中,時(shí)間與我們每一個(gè)人都有非常密切的關(guān)系,每個(gè)人都受到時(shí)間的影響,隨著社會(huì)、科技的發(fā)展,人類得知

17、時(shí)間,從觀太陽(yáng)、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測(cè)時(shí)間的同時(shí),能夠了解其它與人類密切相關(guān)的信息,比如溫度、星期、日期等,電子萬(wàn)年歷誕生了,它集時(shí)間、日期、星期和溫度功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì)。伴隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來(lái)了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬(wàn)戶。電子萬(wàn)年歷的出現(xiàn)給人們的生活帶來(lái)的諸多方便

18、,作為一種附加功能,現(xiàn)在越來(lái)越廣泛的被應(yīng)用于各種電子產(chǎn)品中,具有廣闊的市場(chǎng)前景。</p><p><b>  1.2 課題意義</b></p><p>  電子萬(wàn)年歷作為電子類小產(chǎn)品不僅是市場(chǎng)上的寵兒,也是是單片機(jī)設(shè)計(jì)培訓(xùn)中一個(gè)很實(shí)用的題目。因?yàn)檫@個(gè)課題有很好的開(kāi)放性和可發(fā)揮性,對(duì)制作者的要求比較高,不僅考察了對(duì)單片機(jī)的掌握能力更加強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的應(yīng)用。而且要求設(shè)

19、計(jì)的電子萬(wàn)年歷在操作上力求簡(jiǎn)潔,功能上盡量齊全,顯示界面也要出色。所以,電子萬(wàn)年歷制作無(wú)論從實(shí)用目的,還是從培養(yǎng)能力的角度來(lái)看都是很有價(jià)值的畢業(yè)設(shè)計(jì)課題。本電子萬(wàn)年歷的設(shè)計(jì)在硬件方面主要采用STC89C52單片機(jī)作為主控核心,由DS1302時(shí)鐘芯片提供時(shí)鐘、1602LCD液晶顯示屏顯示。STC89C52單片機(jī)是由宏晶公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時(shí)鐘芯片是美國(guó)DALLAS公司推出的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以

20、對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí),而且DS1302的使用壽命長(zhǎng),誤差?。粩?shù)字顯示是采用的LED液晶顯示屏來(lái)顯示,可以同時(shí)顯示年、月、日、星期、時(shí)、分、秒等信息。此外,該電子萬(wàn)年歷還具有時(shí)間校準(zhǔn)等功能。在軟件方面,主要包括日歷程序、時(shí)間調(diào)整程序,顯示程序等。所有程序編寫(xiě)完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒(méi)有問(wèn)題后,燒寫(xiě)到單片機(jī)上進(jìn)行測(cè)試</p><p>  1.3國(guó)內(nèi)外現(xiàn)狀及水平</p>&

21、lt;p>  諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開(kāi)關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬(wàn)年歷及擴(kuò)大其應(yīng)用,有著非常現(xiàn)實(shí)的意義。它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),對(duì)于數(shù)字電子萬(wàn)年歷采用直觀的數(shù)字顯示,可以同時(shí)顯示年、月、日、周日、時(shí)、分、秒等信息,還具有時(shí)間校準(zhǔn)等功能。</p><p> 

22、 綜上所述此萬(wàn)年歷具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合電子儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。近些年我國(guó)也開(kāi)始重視對(duì)電子萬(wàn)年歷的開(kāi)發(fā)與設(shè)計(jì),讓更多的電子時(shí)鐘能夠走進(jìn)人民生活,跟多人能夠應(yīng)用到功能強(qiáng)大,精度高的電子時(shí)鐘。但是仍然存在很多問(wèn)題。</p><p>  中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展出現(xiàn)的問(wèn)題中,許多情況不容樂(lè)觀,如產(chǎn)業(yè)結(jié)構(gòu)不合理、產(chǎn)業(yè)集中于勞動(dòng)力密集型產(chǎn)品;技術(shù)密集型產(chǎn)品明顯

23、落后于發(fā)達(dá)工業(yè)國(guó)家;生產(chǎn)要素決定性作用正在削弱;產(chǎn)業(yè)能源消耗大、產(chǎn)出率低、環(huán)境污染嚴(yán)重、對(duì)自然資源破壞力大;企業(yè)總體規(guī)模偏小、技術(shù)創(chuàng)新能力薄弱、管理水平落后等?! 氖裁唇嵌确治鲋袊?guó)電子萬(wàn)年歷產(chǎn)業(yè)的發(fā)展?fàn)顩r?以什么方式評(píng)價(jià)中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)的發(fā)展程度?中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)的發(fā)展定位和前景是什么?中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展與當(dāng)前經(jīng)濟(jì)熱點(diǎn)問(wèn)題關(guān)聯(lián)度如何……諸如此類,都是電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展必須面對(duì)和解決的問(wèn)題——中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展已到了岔口;

24、中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)生產(chǎn)企業(yè)急需選擇發(fā)展方向。  中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展研究報(bào)告闡述了世界電子萬(wàn)年歷產(chǎn)業(yè)的發(fā)展歷程,分析了中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)展現(xiàn)狀與差距,開(kāi)創(chuàng)性地提出了“新型電子萬(wàn)年歷產(chǎn)業(yè)” 及替代品產(chǎn)業(yè)概念,在此基礎(chǔ)上,從四個(gè)維度即“以人為本”、“科技創(chuàng)新”、“環(huán)境友好”和“面向未來(lái)”準(zhǔn)確地界定了“新型電子萬(wàn)年歷產(chǎn)業(yè)” 及替代產(chǎn)品的內(nèi)涵。根據(jù)“新型電子萬(wàn)年歷產(chǎn)業(yè)” 及替代品的評(píng)價(jià)體系和量化指標(biāo)體系,從全新的角度對(duì)中國(guó)電子萬(wàn)年歷產(chǎn)業(yè)發(fā)

25、展</p><p>  第2章基于單片機(jī)萬(wàn)年歷的方案研究</p><p>  2.1 系統(tǒng)基本方案選擇和論證</p><p>  2.1.1 單片機(jī)芯片的選擇</p><p>  本設(shè)計(jì)采用STC89C52芯片作為硬件核心,該芯片采用Flash ROM,內(nèi)部具有8KB ROM存儲(chǔ)空間,相對(duì)于本設(shè)計(jì)而言程序空間完全夠用。能于5V電壓工作,而且與

26、MCS-51系列單片機(jī)完全兼容,而且運(yùn)用于電路設(shè)計(jì)中時(shí)具備ISP在線編程技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),避免芯片的多次拔插對(duì)芯片造成的損壞。</p><p>  2.1.2 顯示模塊選擇方案和論證</p><p><b>  方案一:</b></p><p>  采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管

27、是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費(fèi),且價(jià)格也相對(duì)較高,所以也不用此種作為顯示。</p><p><b>  方案二:</b></p><p>  采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格雖適中,對(duì)于顯示數(shù)字也最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。但是由于數(shù)碼管動(dòng)態(tài)掃描需要借助74LS164移位寄存器

28、進(jìn)行移位,該芯片在電路調(diào)試時(shí)往往會(huì)有很多障礙,所以不采用LED數(shù)碼管作為顯示。</p><p><b>  方案三:</b></p><p>  采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn),對(duì)于電子萬(wàn)年歷而言,一個(gè)1602的液晶屏即可,價(jià)格也還能接受,需要的接口線較多,但會(huì)給調(diào)試帶來(lái)諸多方便,所以此設(shè)計(jì)中采用LCD1602

29、液晶顯示屏作為顯示模塊。</p><p>  2.1.3 時(shí)鐘芯片的選擇方案和論證</p><p><b>  方案一:</b></p><p>  直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然可以減少時(shí)鐘芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。</p>

30、<p><b>  方案二:</b></p><p>  采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×

31、8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。因此,本設(shè)計(jì)中采用DS1302提供時(shí)鐘。</p><p>  2.1.4 溫度傳感器的選擇方案與論證</p>

32、<p><b>  方案一:</b></p><p>  使用熱敏電阻作為傳感器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換。此設(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大的測(cè)量誤差。</p><p><b>  

33、方案二:</b></p><p>  采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以避免A/D模數(shù)轉(zhuǎn)換模塊,降低硬件成本,簡(jiǎn)化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測(cè)量精度高、測(cè)量范圍廣等優(yōu)點(diǎn)。因此,本設(shè)計(jì)DS18B20溫度傳感器作為溫度采集模塊。</p><p>  2.2 電路設(shè)計(jì)最終方案決定</p

34、><p>  綜上各模塊的選擇方案與論證,確定最后的主要硬件資源如下:采用STC89C52作為主控制系統(tǒng);DS1302提供時(shí)鐘;DS18B20作為數(shù)字式溫度傳感器;LCD1602液晶屏作為顯示。</p><p>  2.3 DS1302,DS18B20和LCD1602的原理及說(shuō)明 </p><p>  2.3.1 LCD1602工作原理及說(shuō)明</p>&l

35、t;p>  (1)寄存器選擇控制</p><p>  1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符,圖形寄存器選擇控制表如表2.1所示:</p><p>  表2.1 LCD1602寄存器選擇控制表 </p><p><b>

36、;  (2)指令集</b></p><p>  1602通過(guò)D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置(初始化)00111000[0x38]設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口;顯示開(kāi)關(guān)及光標(biāo)設(shè)置:(初始化) 00001DCBD顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)。000001NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加1并且光標(biāo)加1),N=0(讀或

37、寫(xiě)一個(gè)字符后地址指針減1并且光標(biāo)減1),S=1且N=1(當(dāng)寫(xiě)一個(gè)字符后,整屏顯示左移),S=0當(dāng)寫(xiě)一個(gè)字符后,整屏顯示不移動(dòng)。數(shù)據(jù)指針設(shè)置:數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H)。其他設(shè)置:01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);02H(顯示回車,數(shù)據(jù)指針=0)。</p><p>  2.3.2 DS1302原理及說(shuō)明</p><p>  (1

38、) 時(shí)鐘芯片DS1302的工作原理</p><p>  DS1302在每次進(jìn)行讀、寫(xiě)程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫(xiě)時(shí)序如下圖2.2所示。圖2.1為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對(duì)DS1302進(jìn)行讀寫(xiě)數(shù)據(jù)。對(duì)于位6,若對(duì)程序進(jìn)行讀/寫(xiě)時(shí)RAM=1,對(duì)時(shí)間進(jìn)行讀/寫(xiě)時(shí),CK=0。位1至位5指操作單元的地址。位0是讀/寫(xiě)

39、操作位,進(jìn)行讀操作時(shí),該位為1;該位為0則表示進(jìn)行的是寫(xiě)操作??刂谱止?jié)總是從最低位開(kāi)始輸入/輸出的。表2.2為DS1302的日歷、時(shí)間寄存器內(nèi)容:“CH”是時(shí)鐘暫停標(biāo)志位,當(dāng)該位為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時(shí),時(shí)鐘開(kāi)始運(yùn)行?!癢P”是寫(xiě)保護(hù)位,在任何的對(duì)時(shí)鐘和RAM的寫(xiě)操作之前,WP必須為0。當(dāng)“WP”為1時(shí),寫(xiě)保護(hù)位防止對(duì)任一寄存器的寫(xiě)操作。</p><p>  (2) DS1

40、302的控制字</p><p>  DS1302的控制字如圖2.1所示。控制字節(jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫(xiě)入DS1302中,位6如果0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫(xiě)操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開(kāi)始輸出。</p><p>  圖2.1 DS1302的控制字

41、 </p><p>  (3) 數(shù)據(jù)輸入輸出</p><p>  在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)

42、時(shí)從低位0位到高位7。如下圖2.2所示:</p><p>  圖2.2 DS1302讀與寫(xiě)的時(shí)序圖</p><p>  DS1302的寄存器</p><p>  DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表2.2。</p><p>  表2.2 DS1302的日歷、

43、時(shí)間寄存器</p><p>  此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)

44、所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。 </p><p>  2.3.3 DS18B20工作原理及說(shuō)明</p><p>  DS18B20的讀寫(xiě)時(shí)序和測(cè)溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時(shí)的延時(shí)時(shí)間由2s減為750ms。 DS18B20測(cè)溫原理如圖2.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率

45、的脈沖信號(hào)送給計(jì)數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號(hào)作為計(jì)數(shù)器2的脈沖輸入。計(jì)數(shù)器1和溫度寄存器被預(yù)置在-55℃所對(duì)應(yīng)的一個(gè)基數(shù)值。計(jì)數(shù)器1對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行減法計(jì)數(shù),當(dāng)計(jì)數(shù)器1的預(yù)置值減到0時(shí),溫度寄存器的值將加1,計(jì)數(shù)器1的預(yù)置將重新被裝入,計(jì)數(shù)器1重新開(kāi)始對(duì)低溫度系數(shù)晶振產(chǎn)生的脈沖信號(hào)進(jìn)行計(jì)數(shù),如此循環(huán)直到計(jì)數(shù)器2計(jì)數(shù)到0時(shí),停止溫度寄存器值的累加,此時(shí)溫度寄存器中的數(shù)值即為所測(cè)溫度。圖2

46、.3中的斜率累加器用于補(bǔ)償和修正測(cè)溫過(guò)程中的非線性,其輸出用于修正計(jì)數(shù)器1的預(yù)置值。</p><p>  第3章 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)</p><p><b>  3.1電路設(shè)計(jì)框圖</b></p><p>  本系統(tǒng)的電路系統(tǒng)框圖如圖3.1所示。STC89C52單片機(jī)對(duì)DS1302和DS18B20寫(xiě)入控制字并讀取相應(yīng)的數(shù)據(jù),繼而控制LCD16

47、02作出對(duì)應(yīng)的顯示。</p><p>  圖3.1 系統(tǒng)硬件框圖</p><p><b>  3.2系統(tǒng)硬件概述</b></p><p>  本電路是由STC89C52單片機(jī)作為控制核心,能在5V電壓工作,STC89C52是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8kBytes ISP(In-system programmable)的可反

48、復(fù)擦寫(xiě)1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C52引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的STC89C52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案;時(shí)鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電

49、壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31*8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周、時(shí)、分、秒,具有使用壽命長(zhǎng),精度高和低功耗等特點(diǎn),同時(shí)具有掉電自動(dòng)保存功能;溫度的采集由DS18B20完成,它具有獨(dú)特的單線接口方式,DS18B20在與微</p><p>  3.3 主要模塊電路的設(shè)計(jì)</p

50、><p>  3.3.1 STC89C52單片機(jī)主控制模塊的設(shè)計(jì)</p><p>  STC系列單片機(jī)是由STMicroelectronics 公司生產(chǎn),并有宏晶公司做大陸代理的。本設(shè)計(jì)使用STC89C52作為控制核心,其管腳兼容其他51系列的單片機(jī),以下對(duì)STC89C52進(jìn)行簡(jiǎn)單講解。   STC89C52單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器

51、(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。采用40Pin封裝的雙列直接DIP結(jié)構(gòu),圖3.2是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在對(duì)各引腳功能說(shuō)明如下(圖3.2):</p><p><b>  (1)主電源引腳</b></p>

52、<p>  Vcc :接+5V電源正端。</p><p>  Vss :接+5V電源地端。</p><p>  (2)輸入/輸出引腳</p><p>  P.0~P0.7:P0口的8個(gè)引腳。在不接片外存儲(chǔ)器與不擴(kuò)展I/O接口時(shí),可作為準(zhǔn)雙向輸入/輸出接口。在接有片外存儲(chǔ)器或擴(kuò)展I/O接口時(shí),P0口分時(shí)復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。</p&g

53、t;<p>  P1.0~P1.7:P1口的8個(gè)引腳??勺鳛闇?zhǔn)雙向I/O接口使用。對(duì)于52子系列,P1.0 與 P1.1還有第二種功能:P1.0 可用作定時(shí)器/計(jì)數(shù)器2的計(jì)數(shù)脈沖輸入端T2。P1.1可用作定時(shí)器/計(jì)數(shù)器2的外部控制端T2EX。</p><p>  P2.0~P2.7:P2口的8個(gè)引腳??勺鳛闇?zhǔn)雙向I/O接口;有接有片外存儲(chǔ)器或擴(kuò)展I/O接口且尋址范圍超過(guò)256個(gè)字節(jié)時(shí),P2口用作高8

54、位地址總線。</p><p>  P3.0~P3.7:P3口的8個(gè)引腳。除作為準(zhǔn)雙向I/O接口使用外,還具有第二種功能 ,詳見(jiàn)表3.1。</p><p>  表3.1 P3口第二功能表 </p><p><b> ?。?)控制總線</b></p><p>  ALE/PROG:地址鎖存有效信號(hào)輸出端。在訪問(wèn)片外程序存儲(chǔ)

55、器期間,每機(jī)器周期該信號(hào)出現(xiàn)兩次,其下降沿用于控制鎖存P0口輸出的低8位地址。對(duì)于片內(nèi)含EPROM的機(jī)型,在編程期間,此引腳用作編程脈沖PROG的輸入端。</p><p>  PSEN:片外程序存儲(chǔ)器讀選通信號(hào)輸出端,或稱片外取指信號(hào)輸出端。在向片外程序存儲(chǔ)器讀取指令或常數(shù)期間,每個(gè)機(jī)器周期該信號(hào)兩次有效(低電平),以通過(guò)數(shù)據(jù)總線P0口讀回指令或常數(shù)。在訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器期間,PSEN信號(hào)將不出現(xiàn)。</p&

56、gt;<p>  RST/V:(RST 是 RETET 簡(jiǎn)略寫(xiě)法。)是復(fù)位端。單片機(jī)的振蕩器工作時(shí),該引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平就可實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,該引腳上高電平必須持續(xù)10ms以上才能保證有效復(fù)位。</p><p>  Vcc掉電期間,該引腳如接備用電源VPD(電壓范圍+4.5V至+5.5V),可用于保存片內(nèi)RAM中的數(shù)據(jù)。當(dāng)Vc

57、c下降到某規(guī)定值以下VPD,便向片內(nèi)RAM供電。</p><p>  EA/VDD:片外程序存儲(chǔ)器選用端。該引腳有效(低電平)時(shí)只選用片外程序存儲(chǔ)器,否則計(jì)算機(jī)上電或6復(fù)位后先選用片內(nèi)程序存儲(chǔ)器。</p><p><b> ?。?)外接晶振引腳</b></p><p>  XTAL1:片內(nèi)反相放大器輸入端。</p><p&g

58、t;  XTAL2:片內(nèi)反相放大器輸出端。外接晶體時(shí),XTAL1和 XTAL2各接晶體的一端,借外接晶體與片內(nèi)反相放大器構(gòu)成振蕩器。</p><p>  圖3.3單片機(jī)最小系統(tǒng)</p><p>  3.3.2時(shí)鐘電路模塊的設(shè)計(jì)</p><p>  DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、周、時(shí)、分、秒

59、進(jìn)行計(jì)時(shí),工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p>  DS1302的引腳排列,其中Vcc1為后備電源,V

60、cc2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,

61、RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK為時(shí)鐘輸入端。DS1302的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能

62、把數(shù)據(jù)寫(xiě)入DS1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取</p><p>  3.3.3溫度采集模塊設(shè)計(jì)</p><p>  采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測(cè)量精度高,電路連接簡(jiǎn)單特點(diǎn),此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用P3.5與DS18B20的I/O口連接加一個(gè)上拉電阻,Vcc接電源,Vss接地。獨(dú)特的一線接口,只需要一條口線

63、通信多點(diǎn)能力,簡(jiǎn)化了分布式溫度傳感應(yīng)用無(wú)需外部元件可用數(shù)據(jù)總線供電,電壓范圍為3.0V至5.5V無(wú)需備用電源 測(cè)量溫度范圍為-55度至+125度。-10度至+85度范圍內(nèi)精度為±0.5度溫度傳感器可編程的分辨率為9~12位。</p><p>  3.3.4 顯示模塊的設(shè)計(jì)</p><p>  采用LCD1602液晶顯示器,單片機(jī)P0口作為數(shù)據(jù)輸出口,通過(guò)10R的上拉電阻連接到VC

64、C,VCC接5V電源,GND接地。GND為液晶顯示器對(duì)比度調(diào)整端,可以通過(guò)滑動(dòng)變阻器RH1調(diào)顯示器的對(duì)比度(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。R/W為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。E(或EN)端為使能(enable)端,下降沿使能。DB0-DB7為雙向數(shù)據(jù)總線,同時(shí)最高位DB7也是忙信號(hào)檢測(cè)位。

65、BLA、BLK分別為顯示器背光燈的正、負(fù)極。</p><p>  3.4各模塊電路原理圖</p><p><b>  3.4.1電源電路</b></p><p>  由電池盒接口供5V電壓,此電源電路能夠給單片機(jī)提供穩(wěn)定的電壓,使系統(tǒng)能夠穩(wěn)定工作如圖3.7所示</p><p><b>  圖3.7電源電路<

66、;/b></p><p><b>  3.4.2復(fù)位電路</b></p><p>  無(wú)論用戶使用哪種類型的單片機(jī) ,總要涉及到單片機(jī)復(fù)位電路的設(shè)計(jì)。而單片機(jī)復(fù)位電路設(shè)計(jì)的好壞,直接影響到整個(gè)系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng),并在實(shí)驗(yàn)室調(diào)試成功后,在現(xiàn)場(chǎng)卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計(jì)不可靠引起的,本電路設(shè)計(jì)采用可靠

67、的手動(dòng)復(fù)位方式,單片機(jī)復(fù)位電路如圖3.8所示</p><p><b>  圖3.8復(fù)位電路</b></p><p><b>  3.4.3振蕩電路</b></p><p>  對(duì)于一個(gè)高可靠性的系統(tǒng)設(shè)計(jì),晶體的選擇非常重要。在振蕩回路中,晶體既不能過(guò)激勵(lì)(容易產(chǎn)生高次諧波)也不能欠激勵(lì)(不容易起振)。晶體的選擇至少必須考慮

68、:諧振頻點(diǎn),負(fù)載電容,激勵(lì)功率,溫度特性,長(zhǎng)期穩(wěn)定性。</p><p>  在本設(shè)計(jì)中采用了12MHZ的晶振。單片機(jī)振蕩電路如圖圖3.9所示。</p><p><b>  圖3.9震蕩電路</b></p><p>  3.4.4溫度采集電路</p><p>  單片機(jī)使用VCC與上拉電阻相連,再與DS18B20的2號(hào)引腳

69、相接,上拉電阻取值10K。溫度傳感器采用外部供電方案,由1、3引腳提供電源。電路圖如下圖3.10:</p><p>  圖3.10溫度采集電路</p><p>  3.4.5蜂鳴器鬧鈴電路</p><p>  采用三極管驅(qū)動(dòng)蜂鳴器的方式</p><p>  圖3.11串口通信電路</p><p><b>  

70、3.4.6顯示電路</b></p><p>  顯示電路由1602液晶接口插槽組成,如下圖3.12所示。液晶顯示器R/W端接P0.1。使能端E由單片機(jī)P0.2引腳控制,數(shù)據(jù)/命令選擇端由單片機(jī)的P0.0引腳控制。由于P0口是開(kāi)漏,所以控制端分別接上拉電阻。偏壓信號(hào)VL端與滑動(dòng)變阻器相連,通過(guò)滑動(dòng)變阻器可以調(diào)節(jié)顯示器的顯示對(duì)比度。顯示器數(shù)據(jù)端口與單片機(jī)的P2對(duì)應(yīng)相連,單片機(jī)通過(guò)P2口可以向顯示器中輸入控

71、制命令或要顯示的字符。</p><p><b>  圖3.12顯示電路</b></p><p><b>  3.4.7鍵盤(pán)電路</b></p><p>  按鍵電路采用獨(dú)立按鍵方式,用來(lái)設(shè)置鬧鈴,調(diào)整時(shí)間等。</p><p><b>  圖3.13按鍵電路</b></p&

72、gt;<p>  第4章 系統(tǒng)的軟件設(shè)計(jì)</p><p>  4.1 程序流程框圖:</p><p><b>  N</b></p><p><b>  Y</b></p><p><b>  YN</b></p><p><b

73、>  N </b></p><p><b>  Y</b></p><p><b>  Y</b></p><p>  圖4.1主程序流程圖</p><p>  主程序流程圖如上圖4.1所示。由于LCD1602,DS18B20,DS1302的數(shù)據(jù)讀取及指令寫(xiě)入函數(shù)均已在各自的頭文

74、件中完成,在主程序中只須引用即可。</p><p><b>  第5章 系統(tǒng)測(cè)試</b></p><p><b>  5.1 硬件測(cè)試</b></p><p>  在調(diào)試硬件時(shí)遇到過(guò)很多問(wèn)題,但只要細(xì)心、認(rèn)真檢查這些問(wèn)題都是可以避免的,主要問(wèn)題及解決辦法現(xiàn)列如下:</p><p>  認(rèn)真檢查電路是

75、否有短路的地方,線與線之間,管腳刺破鄰近的漆包線之間是否連接在一起,有的話要用刀劃開(kāi),或者重新焊接。</p><p>  檢查完畢后接通電源后LCD1602沒(méi)有正確的顯示。在不通電狀態(tài)下用萬(wàn)用表檢測(cè)電路是否正常連接,在檢查回路時(shí)發(fā)現(xiàn)有的點(diǎn)之間看似連接,但由于虛焊導(dǎo)致其并無(wú)電氣連接,只能對(duì)焊腳進(jìn)行在加工直到解決問(wèn)題。</p><p><b>  5.2 軟件測(cè)試 </b>

76、;</p><p>  由于本系統(tǒng)涉及到多個(gè)子程序,多個(gè)芯片的編程。首先必須對(duì)可編程芯片的控制字即其控制指令要熟記于心。其次,芯片很多都有時(shí)鐘輸入端,需要晶振支持。對(duì)芯片的讀寫(xiě)都需要在相應(yīng)的觸發(fā)沿到來(lái)時(shí)才能進(jìn)行。由于DS18B20是串行通信數(shù)據(jù),只用一個(gè)口線傳輸,在處理采集的模擬信號(hào)時(shí)需要一定的時(shí)間,會(huì)對(duì)延時(shí)有較高要求。</p><p><b>  結(jié)束語(yǔ)</b>&l

77、t;/p><p>  以上所述即是基于單片機(jī)電子萬(wàn)年歷的設(shè)計(jì)全過(guò)程,經(jīng)過(guò)多次的反復(fù)測(cè)試與分析,對(duì)電路的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能力與及對(duì)電路的分析能力.經(jīng)過(guò)此設(shè)計(jì),基本完成了設(shè)計(jì)任務(wù)的要求。硬件層面而言操作相對(duì)簡(jiǎn)單,界面比較友好。</p><p>  在硬件電路方面,詳盡解析了各個(gè)獨(dú)立元件的選擇依據(jù),對(duì)數(shù)種方案進(jìn)行了全面的比較。在時(shí)鐘芯片的選擇上,若直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào)

78、,使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然可以減少時(shí)鐘芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。因此采用專業(yè)的時(shí)鐘芯片DS1302,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能;在顯示模塊的選擇上,若采用LED數(shù)碼管動(dòng)態(tài)掃描,LED數(shù)碼管價(jià)格雖適中,對(duì)于顯示數(shù)字也最合適,而且采用動(dòng)態(tài)掃描法與單片機(jī)連接時(shí),占用的單片機(jī)口線少。但是由于數(shù)碼管動(dòng)態(tài)掃

79、描需要借助74LS164移位寄存器進(jìn)行移位,該芯片在電路調(diào)試時(shí)往往會(huì)有很多障礙,因此本次設(shè)計(jì)選擇了LCD1602,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見(jiàn);在溫度采集模塊的選擇上,沒(méi)有采用熱敏電阻,因?yàn)樵O(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大的測(cè)量誤差。最后選擇了DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單</p&

80、gt;<p><b>  致謝</b></p><p><b>  自己寫(xiě)</b></p><p><b>  參考文獻(xiàn)</b></p><p>  [1]胡乾斌,李光斌,李玲,喻紅.單片微型計(jì)算機(jī)原理與應(yīng)用.華中科技大學(xué)出版社,1996.</p><p>  [

81、2]劉勇.?dāng)?shù)字電路.電子工業(yè)出版社,2004.</p><p>  [3]陳正振.電子電路設(shè)計(jì)與制作.廣西交通職業(yè)技術(shù)學(xué)院信息工程系,2007.</p><p>  [4]楊子文.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社,2006.</p><p>  [5]王萍.電子技術(shù)實(shí)驗(yàn)教程.機(jī)械工業(yè)出版社,2009.</p><p>  [6]沈紅衛(wèi)

82、.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)實(shí)例與分析,北京:北京航空航天大學(xué)出版社.2003</p><p>  [7]李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo),北京:北京航空航天大學(xué)出版社. 2004</p><p>  [8]王法能.單片機(jī)原理及應(yīng)用,科學(xué)出版社. 2004</p><p>  [9]樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例[M].北京航空航天大學(xué)出版社,2003.</p&

83、gt;<p>  [10]朱定華,戴汝平.單片微機(jī)原理與應(yīng)用[M].清華大學(xué)出版社,2003.</p><p>  [11]胡漢才.單片機(jī)原理與接口技術(shù)[M].清華大學(xué)出版社,2004.</p><p>  [12]余家春.Protel 99 SE電路設(shè)計(jì)實(shí)用教程[M].中國(guó)鐵道出版社,2004.</p><p>  [13]張培仁.基于匯編語(yǔ)言編程M

84、CS-51單片機(jī)原理與應(yīng)用.北京:清華大學(xué)出版社,2003.</p><p>  [14]T.Someya,J.Small,P.Kim,C.Nuckolls,J.T.Yardley.Alcohol vapor sensors</p><p>  based on single-walled carbon nanotube field effect transistors[M].Nano L

85、etters,2003.</p><p>  [15]M.Penza et al.Alcohol detection using carbon nanotubes acoustic and optical </p><p>  sensors[M].Applied Physics Letters,2004.</p><p>  [16]F.Rettig,R.Moos

86、.Direct thermoelectric gas sensors Design aspects and first gas </p><p>  sensors[M].Sens Actuators B,2007.</p><p><b>  附錄1:程序</b></p><p>  #include<reg52.h></p

87、><p>  #include"lcd1602.h"</p><p>  #include"ds1302.h"</p><p>  #include"ds18b20.h"</p><p>  sbit buzz=P3^7;</p><p>  sbit s1=P1

88、^0;</p><p>  sbit s2=P1^1;</p><p>  sbit s3=P1^2;</p><p>  sbit s4=P1^3; </p><p>  int miao=0,fen=0,shi=12,nian=12,yue=10,ri=8,xingqi=4,ashi,afen;</p><p>

89、  uchar s1num=0;//光標(biāo)位置標(biāo)志</p><p>  uchar s4num;</p><p>  uchar flag=1;</p><p>  uchar Read_flag=1;</p><p>  uchar flag1;//鬧鈴標(biāo)志位</p><p>  uchar code w1[]={0

90、x01,0x03,0x1D,0x11,0x1D,0x03,0x01,0x00}; //小喇叭圖像</p><p>  uchar code tab0[]=" 20 / / W ";</p><p>  uchar code tab1[]=" : : C";</p><p>  uchar cod

91、e tab2[]={'0','1','2','3','4','5','6','7','8','9'};</p><p>  uchar code tab5[]="OFF";</p><p>  uchar cod

92、e tab4[]="reset clock";</p><p>  void dis_laba();</p><p>  void keyscan();</p><p>  void buzzer();</p><p>  void naozhong();</p><p>  void main()

93、</p><p><b>  {</b></p><p>  init_lcd1602();</p><p>  lcd_bad_check() ;</p><p>  RESET_DS18B20();</p><p>  Reset_DS1302();</p><p> 

94、 delay(500);</p><p>  if((DS1302_Rdata(0x81)&0x80) != 0) </p><p><b>  {</b></p><p>  init_ds1302(nian,yue,ri,shi,fen,miao,xingqi);//*****初始化時(shí)間*****</p><p&

95、gt;<b>  }</b></p><p>  write_lcd1602(0x01,0);</p><p>  display_lcd1602_text(0,0,tab0);</p><p>  display_lcd1602_text(1,0,tab1);</p><p><b>  while(1)&l

96、t;/b></p><p><b>  {</b></p><p>  keyscan();</p><p><b>  if(flag)</b></p><p><b>  {</b></p><p>  naozhong();</p&g

97、t;<p>  delay(20); </p><p>  display_lcd1602_byte(0,3,tab2[DS1302_Rdata(0x8d)/16]); //*****讀取年*****</p><p>  display_lcd1602_byte(0,4,tab2[DS1302_Rdata(0x8d)%16]);</p><

98、;p>  display_lcd1602_byte(0,6,tab2[DS1302_Rdata(0x89)/0x10]); //*****讀取月*****</p><p>  display_lcd1602_byte(0,7,tab2[DS1302_Rdata(0x89)%0x10]);</p><p>  display_lcd1602_byte(0,9,tab2[DS1302_R

99、data(0x87)/0x10]); //*****讀取日*****</p><p>  display_lcd1602_byte(0,10,tab2[DS1302_Rdata(0x87)%0x10]);</p><p>  display_lcd1602_byte(0,15,tab2[DS1302_Rdata(0x8b)%0x10]);//*****讀取星期*****</p>

100、;<p>  display_lcd1602_byte(0,14,0x7e);//顯示 向右箭頭</p><p>  display_lcd1602_byte(1,12,tab2[Read_DS18B20_TEMP()/10]);//*****讀取溫度*****</p><p>  display_lcd1602_byte(1,13,tab2[Read_DS18B20

101、_TEMP()%10]);</p><p>  display_lcd1602_byte(1,14,0xdf);//顯示 。</p><p>  display_lcd1602_byte(1,2,tab2[DS1302_Rdata(0x85)/0x10]); //*****讀取時(shí)*****</p><p>  display_lcd1602_byte(1,3

102、,tab2[DS1302_Rdata(0x85)%0x10]);</p><p>  display_lcd1602_byte(1,5,tab2[DS1302_Rdata(0x83)/0x10]);//*****讀取分*****</p><p>  display_lcd1602_byte(1,6,tab2[DS1302_Rdata(0x83)%0x10]);</p>&l

103、t;p>  display_lcd1602_byte(1,8,tab2[DS1302_Rdata(0x81)/0x10]);//*****讀取秒*****</p><p>  display_lcd1602_byte(1,9,tab2[DS1302_Rdata(0x81)%0x10]);</p><p><b>  }</b></p><p

104、><b>  }</b></p><p><b>  }</b></p><p>  void keyscan()</p><p><b>  {</b></p><p>  if(Read_flag) //*****存儲(chǔ)標(biāo)志位*****</p><

105、;p><b>  {</b></p><p>  nian = DS1302_Rdata(0x8d)/16*10+DS1302_Rdata(0x8d)%16;</p><p>  yue = DS1302_Rdata(0x89)/16*10+DS1302_Rdata(0x89)%16;</p><p>  ri = DS1302_R

106、data(0x87)/16*10+DS1302_Rdata(0x87)%16;</p><p>  shi = DS1302_Rdata(0x85)/16*10+DS1302_Rdata(0x85)%16;</p><p>  fen = DS1302_Rdata(0x83)/16*10+DS1302_Rdata(0x83)%16;</p><p>  miao

107、 = DS1302_Rdata(0x81)/16*10+DS1302_Rdata(0x81)%16;</p><p>  xingqi = DS1302_Rdata(0x8b)/16*10+DS1302_Rdata(0x8b)%16;</p><p><b>  }</b></p><p>  if((s1==0)&&(s4n

108、um==0))</p><p><b>  {</b></p><p><b>  delay(5);</b></p><p><b>  if(s1==0)</b></p><p><b>  {</b></p><p>  wh

109、ile(!s1);//*****等待按鍵抬起*****</p><p><b>  buzzer();</b></p><p>  DS1302_Wdata(0x8e,0); //*****開(kāi)啟寫(xiě)寄存器*****</p><p>  DS1302_Wdata(0x80,80); //*****時(shí)鐘停止等待設(shè)置時(shí)間*****</p>

110、<p>  Read_flag = 0;</p><p><b>  flag=0;</b></p><p><b>  s1num++;</b></p><p>  switch(s1num)</p><p><b>  {</b></p>&l

111、t;p><b>  case 1:</b></p><p>  write_lcd1602(0x0f,0); //*****液晶開(kāi)啟光標(biāo)顯示*****</p><p>  write_lcd1602(0x80+4,0); //*****光標(biāo)顯示的位置*****</p><p><b>  break; </b>

112、</p><p><b>  case 2:</b></p><p>  yue = DS1302_Rdata(0x89)/16*10+DS1302_Rdata(0x89)%16;</p><p>  if((yue==4) || (yue==6) || (yue==9) || (yue==11))</p><p>&

113、lt;b>  {</b></p><p>  if(ri>30)ri=30;</p><p><b>  }</b></p><p>  else if(yue==2)</p><p><b>  {</b></p><p>  if(((nia

114、n)%4==0)) </p><p><b>  {</b></p><p>  if(ri>29)ri=29;//平年</p><p><b>  }</b></p><p><b>  else</b></p><p><b> 

115、 {</b></p><p>  if(ri>28)ri=28;</p><p><b>  }</b></p><p><b>  }</b></p><p>  display_lcd1602_byte(0,9,tab2[ri/10]);</p><p>

116、;  display_lcd1602_byte(0,10,tab2[ri%10]);</p><p>  write_lcd1602(0x80+7,0); //*****光標(biāo)顯示的位置*****</p><p><b>  break;</b></p><p><b>  case 3:</b></p>&

117、lt;p>  write_lcd1602(0x80+10,0); //*****光標(biāo)顯示的位置*****</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  write_lcd1602(0x80+15,0); //*****光標(biāo)顯示的位置*****

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論