版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(論文)說明書</p><p> 課題名稱:基于單片機(jī)的電子萬年歷設(shè)計</p><p> 院 (系): </p><p> 專 業(yè): </p><p> 班 級: </p><p> 學(xué)生姓名:
2、 </p><p> 學(xué) 號: </p><p> 指導(dǎo)教師: </p><p><b> 摘 要</b></p><p> 電子萬年歷是一種應(yīng)用非常廣泛日常計時工具,對現(xiàn)代社會越來越重要。此電子萬年歷在硬件方面主要采用STC89C52單
3、片機(jī)作為主控核心,由DS1302時鐘芯片提供時鐘、1602LCD液晶顯示屏顯示。STC89C52單片機(jī)是由宏晶公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時鐘芯片是美國DALLAS公司推出的低功耗實時時鐘芯片,它可以對年、月、日、星期、時、分、秒進(jìn)行計時,還具有閏年補(bǔ)償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差??;對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,數(shù)字顯示是采用的1602LED液晶顯示屏來顯示,可以同時顯示年、月
4、、日、星期、時、分、秒等信息。此外,該電子萬年歷還具有時間校準(zhǔn)等功能。在軟件方面,主要包括日歷程序、時間調(diào)整程序,顯示程序等。所有程序編寫完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒有問題后,燒寫到單片機(jī)上進(jìn)行測試。 </p><p> 此設(shè)計主要由時鐘芯片DS1302和溫度傳感器DS18B20采集數(shù)據(jù)到單片機(jī)進(jìn)行處理再通過LCD1602顯示出來,本論文主要研究了液晶顯示器LCD及時鐘芯片DS1302,溫度傳感器D
5、S18B20與單片機(jī)之間的硬件互聯(lián)及通信,對數(shù)種硬件連接方案進(jìn)行了詳盡的比較,在軟件方面對日歷算法也進(jìn)行了論述。</p><p> 關(guān)鍵詞:單片機(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國內(nèi)外現(xiàn)狀及水平1</p><p> 第2章基于單片機(jī)萬年歷的方案研究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 時鐘芯片的選擇方案和論證3</p><p> 2.1.4 溫度傳感器的選擇方案與論證3</p><p> 2.2 電路設(shè)計最終方案決定4<
11、/p><p> 2.3 DS1302,DS18B20和LCD1602的原理及說明4</p><p> 2.3.1 LCD1602工作原理及說明4</p><p> 2.3.2 DS1302原理及說明5</p><p> 2.3.3 DS18B20工作原理及說明6</p><p> 第3章 系統(tǒng)的硬件設(shè)計與
12、實現(xiàn)7</p><p> 3.1電路設(shè)計框圖7</p><p> 3.2系統(tǒng)硬件概述8</p><p> 3.3 主要模塊電路的設(shè)計8</p><p> 3.3.1 STC89C52單片機(jī)主控制模塊的設(shè)計8</p><p> 3.3.2時鐘電路模塊的設(shè)計10</p><p>
13、; 3.3.3溫度采集模塊設(shè)計11</p><p> 3.3.4 顯示模塊的設(shè)計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鍵盤電路15</p><p> 第4章 系統(tǒng)的軟件設(shè)計16</p><p> 4.1 程序流程框圖:16</p><p>
15、第5章 系統(tǒng)測試18</p><p> 5.1 硬件測試18</p><p> 5.2 軟件測試18</p><p><b> 結(jié)束語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)代繁忙的工作與生活中,時間與我們每一個人都有非常密切的關(guān)系,每個人都受到時間的影響,隨著社會、科技的發(fā)展,人類得知
17、時間,從觀太陽、擺鐘到現(xiàn)在電子鐘,不斷研究、創(chuàng)新。為了在觀測時間的同時,能夠了解其它與人類密切相關(guān)的信息,比如溫度、星期、日期等,電子萬年歷誕生了,它集時間、日期、星期和溫度功能于一身,具有讀取方便、顯示直觀、功能多樣、電路簡潔等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢。伴隨著電子技術(shù)的迅速發(fā)展,特別是隨大規(guī)模集成電路出現(xiàn),給人類生活帶來了根本性的改變。由其是單片機(jī)技術(shù)的應(yīng)用產(chǎn)品已經(jīng)走進(jìn)了千家萬戶。電子萬年歷的出現(xiàn)給人們的生活帶來的諸多方便
18、,作為一種附加功能,現(xiàn)在越來越廣泛的被應(yīng)用于各種電子產(chǎn)品中,具有廣闊的市場前景。</p><p><b> 1.2 課題意義</b></p><p> 電子萬年歷作為電子類小產(chǎn)品不僅是市場上的寵兒,也是是單片機(jī)設(shè)計培訓(xùn)中一個很實用的題目。因為這個課題有很好的開放性和可發(fā)揮性,對制作者的要求比較高,不僅考察了對單片機(jī)的掌握能力更加強(qiáng)調(diào)了對單片機(jī)擴(kuò)展的應(yīng)用。而且要求設(shè)
19、計的電子萬年歷在操作上力求簡潔,功能上盡量齊全,顯示界面也要出色。所以,電子萬年歷制作無論從實用目的,還是從培養(yǎng)能力的角度來看都是很有價值的畢業(yè)設(shè)計課題。本電子萬年歷的設(shè)計在硬件方面主要采用STC89C52單片機(jī)作為主控核心,由DS1302時鐘芯片提供時鐘、1602LCD液晶顯示屏顯示。STC89C52單片機(jī)是由宏晶公司推出的,功耗小,電壓可選用4~6V電壓供電;DS1302時鐘芯片是美國DALLAS公司推出的低功耗實時時鐘芯片,它可以
20、對年、月、日、星期、時、分、秒進(jìn)行計時,而且DS1302的使用壽命長,誤差?。粩?shù)字顯示是采用的LED液晶顯示屏來顯示,可以同時顯示年、月、日、星期、時、分、秒等信息。此外,該電子萬年歷還具有時間校準(zhǔn)等功能。在軟件方面,主要包括日歷程序、時間調(diào)整程序,顯示程序等。所有程序編寫完成后,在Keil軟件中進(jìn)行調(diào)試,確定沒有問題后,燒寫到單片機(jī)上進(jìn)行測試</p><p> 1.3國內(nèi)外現(xiàn)狀及水平</p>&
21、lt;p> 諸如定時自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、定時開關(guān)烘箱、通斷動力設(shè)備、甚至各種定時電氣的自動啟用等,但是所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究萬年歷及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實的意義。它可以對年、月、日、周日、時、分、秒進(jìn)行計時,對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、周日、時、分、秒等信息,還具有時間校準(zhǔn)等功能。</p><p>
22、 綜上所述此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。近些年我國也開始重視對電子萬年歷的開發(fā)與設(shè)計,讓更多的電子時鐘能夠走進(jìn)人民生活,跟多人能夠應(yīng)用到功能強(qiáng)大,精度高的電子時鐘。但是仍然存在很多問題。</p><p> 中國電子萬年歷產(chǎn)業(yè)發(fā)展出現(xiàn)的問題中,許多情況不容樂觀,如產(chǎn)業(yè)結(jié)構(gòu)不合理、產(chǎn)業(yè)集中于勞動力密集型產(chǎn)品;技術(shù)密集型產(chǎn)品明顯
23、落后于發(fā)達(dá)工業(yè)國家;生產(chǎn)要素決定性作用正在削弱;產(chǎn)業(yè)能源消耗大、產(chǎn)出率低、環(huán)境污染嚴(yán)重、對自然資源破壞力大;企業(yè)總體規(guī)模偏小、技術(shù)創(chuàng)新能力薄弱、管理水平落后等?! 氖裁唇嵌确治鲋袊娮尤f年歷產(chǎn)業(yè)的發(fā)展?fàn)顩r?以什么方式評價中國電子萬年歷產(chǎn)業(yè)的發(fā)展程度?中國電子萬年歷產(chǎn)業(yè)的發(fā)展定位和前景是什么?中國電子萬年歷產(chǎn)業(yè)發(fā)展與當(dāng)前經(jīng)濟(jì)熱點問題關(guān)聯(lián)度如何……諸如此類,都是電子萬年歷產(chǎn)業(yè)發(fā)展必須面對和解決的問題——中國電子萬年歷產(chǎn)業(yè)發(fā)展已到了岔口;
24、中國電子萬年歷產(chǎn)業(yè)生產(chǎn)企業(yè)急需選擇發(fā)展方向?! ≈袊娮尤f年歷產(chǎn)業(yè)發(fā)展研究報告闡述了世界電子萬年歷產(chǎn)業(yè)的發(fā)展歷程,分析了中國電子萬年歷產(chǎn)業(yè)發(fā)展現(xiàn)狀與差距,開創(chuàng)性地提出了“新型電子萬年歷產(chǎn)業(yè)” 及替代品產(chǎn)業(yè)概念,在此基礎(chǔ)上,從四個維度即“以人為本”、“科技創(chuàng)新”、“環(huán)境友好”和“面向未來”準(zhǔn)確地界定了“新型電子萬年歷產(chǎn)業(yè)” 及替代產(chǎn)品的內(nèi)涵。根據(jù)“新型電子萬年歷產(chǎn)業(yè)” 及替代品的評價體系和量化指標(biāo)體系,從全新的角度對中國電子萬年歷產(chǎn)業(yè)發(fā)
25、展</p><p> 第2章基于單片機(jī)萬年歷的方案研究</p><p> 2.1 系統(tǒng)基本方案選擇和論證</p><p> 2.1.1 單片機(jī)芯片的選擇</p><p> 本設(shè)計采用STC89C52芯片作為硬件核心,該芯片采用Flash ROM,內(nèi)部具有8KB ROM存儲空間,相對于本設(shè)計而言程序空間完全夠用。能于5V電壓工作,而且與
26、MCS-51系列單片機(jī)完全兼容,而且運用于電路設(shè)計中時具備ISP在線編程技術(shù),當(dāng)在對電路進(jìn)行調(diào)試時,由于程序的錯誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r,避免芯片的多次拔插對芯片造成的損壞。</p><p> 2.1.2 顯示模塊選擇方案和論證</p><p><b> 方案一:</b></p><p> 采用點陣式數(shù)碼管顯示,點陣式數(shù)碼管
27、是由八行八列的發(fā)光二極管組成,對于顯示文字比較適合,如采用在顯示數(shù)字顯得太浪費,且價格也相對較高,所以也不用此種作為顯示。</p><p><b> 方案二:</b></p><p> 采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格雖適中,對于顯示數(shù)字也最合適,而且采用動態(tài)掃描法與單片機(jī)連接時,占用的單片機(jī)口線少。但是由于數(shù)碼管動態(tài)掃描需要借助74LS164移位寄存器
28、進(jìn)行移位,該芯片在電路調(diào)試時往往會有很多障礙,所以不采用LED數(shù)碼管作為顯示。</p><p><b> 方案三:</b></p><p> 采用LCD液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,對于電子萬年歷而言,一個1602的液晶屏即可,價格也還能接受,需要的接口線較多,但會給調(diào)試帶來諸多方便,所以此設(shè)計中采用LCD1602
29、液晶顯示屏作為顯示模塊。</p><p> 2.1.3 時鐘芯片的選擇方案和論證</p><p><b> 方案一:</b></p><p> 直接采用單片機(jī)定時計數(shù)器提供秒信號,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然可以減少時鐘芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。所以不采用此方案。</p>
30、<p><b> 方案二:</b></p><p> 采用DS1302時鐘芯片實現(xiàn)時鐘,DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×
31、8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。因此,本設(shè)計中采用DS1302提供時鐘。</p><p> 2.1.4 溫度傳感器的選擇方案與論證</p>
32、<p><b> 方案一:</b></p><p> 使用熱敏電阻作為傳感器,用熱敏電阻與一個相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換。此設(shè)計方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會產(chǎn)生較大的測量誤差。</p><p><b>
33、方案二:</b></p><p> 采用數(shù)字式溫度傳感器DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單片機(jī)連接,可以避免A/D模數(shù)轉(zhuǎn)換模塊,降低硬件成本,簡化系統(tǒng)電路。另外,數(shù)字式溫度傳感器還具有測量精度高、測量范圍廣等優(yōu)點。因此,本設(shè)計DS18B20溫度傳感器作為溫度采集模塊。</p><p> 2.2 電路設(shè)計最終方案決定</p
34、><p> 綜上各模塊的選擇方案與論證,確定最后的主要硬件資源如下:采用STC89C52作為主控制系統(tǒng);DS1302提供時鐘;DS18B20作為數(shù)字式溫度傳感器;LCD1602液晶屏作為顯示。</p><p> 2.3 DS1302,DS18B20和LCD1602的原理及說明 </p><p> 2.3.1 LCD1602工作原理及說明</p>&l
35、t;p> (1)寄存器選擇控制</p><p> 1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線。1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符,圖形寄存器選擇控制表如表2.1所示:</p><p> 表2.1 LCD1602寄存器選擇控制表 </p><p><b>
36、; (2)指令集</b></p><p> 1602通過D0~D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。顯示模式設(shè)置(初始化)00111000[0x38]設(shè)置16×2顯示,5×7點陣,8位數(shù)據(jù)接口;顯示開關(guān)及光標(biāo)設(shè)置:(初始化) 00001DCBD顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效)。000001NS N=1(讀或?qū)懸粋€字符后地址指針加1并且光標(biāo)加1),N=0(讀或
37、寫一個字符后地址指針減1并且光標(biāo)減1),S=1且N=1(當(dāng)寫一個字符后,整屏顯示左移),S=0當(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原理及說明</p><p> (1
38、) 時鐘芯片DS1302的工作原理</p><p> DS1302在每次進(jìn)行讀、寫程序前都必須初始化,先把SCLK端置 “0”,接著把RST端置“1”,最后才給予SCLK脈沖;讀/寫時序如下圖2.2所示。圖2.1為DS1302的控制字,此控制字的位7必須置1,若為0則不能把對DS1302進(jìn)行讀寫數(shù)據(jù)。對于位6,若對程序進(jìn)行讀/寫時RAM=1,對時間進(jìn)行讀/寫時,CK=0。位1至位5指操作單元的地址。位0是讀/寫
39、操作位,進(jìn)行讀操作時,該位為1;該位為0則表示進(jìn)行的是寫操作??刂谱止?jié)總是從最低位開始輸入/輸出的。表2.2為DS1302的日歷、時間寄存器內(nèi)容:“CH”是時鐘暫停標(biāo)志位,當(dāng)該位為1時,時鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位為0時,時鐘開始運行。“WP”是寫保護(hù)位,在任何的對時鐘和RAM的寫操作之前,WP必須為0。當(dāng)“WP”為1時,寫保護(hù)位防止對任一寄存器的寫操作。</p><p> (2) DS1
40、302的控制字</p><p> DS1302的控制字如圖2.1所示??刂谱止?jié)的高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出。</p><p> 圖2.1 DS1302的控制字
41、 </p><p> (3) 數(shù)據(jù)輸入輸出</p><p> 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)
42、時從低位0位到高位7。如下圖2.2所示:</p><p> 圖2.2 DS1302讀與寫的時序圖</p><p> DS1302的寄存器</p><p> DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表2.2。</p><p> 表2.2 DS1302的日歷、
43、時間寄存器</p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫
44、所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。 </p><p> 2.3.3 DS18B20工作原理及說明</p><p> DS18B20的讀寫時序和測溫原理與DS1820相同,只是得到的溫度值的位數(shù)因分辨率不同而不同,且溫度轉(zhuǎn)換時的延時時間由2s減為750ms。 DS18B20測溫原理如圖2.3所示。圖中低溫度系數(shù)晶振的振蕩頻率受溫度影響很小,用于產(chǎn)生固定頻率
45、的脈沖信號送給計數(shù)器1。高溫度系數(shù)晶振隨溫度變化其振蕩率明顯改變,所產(chǎn)生的信號作為計數(shù)器2的脈沖輸入。計數(shù)器1和溫度寄存器被預(yù)置在-55℃所對應(yīng)的一個基數(shù)值。計數(shù)器1對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行減法計數(shù),當(dāng)計數(shù)器1的預(yù)置值減到0時,溫度寄存器的值將加1,計數(shù)器1的預(yù)置將重新被裝入,計數(shù)器1重新開始對低溫度系數(shù)晶振產(chǎn)生的脈沖信號進(jìn)行計數(shù),如此循環(huán)直到計數(shù)器2計數(shù)到0時,停止溫度寄存器值的累加,此時溫度寄存器中的數(shù)值即為所測溫度。圖2
46、.3中的斜率累加器用于補(bǔ)償和修正測溫過程中的非線性,其輸出用于修正計數(shù)器1的預(yù)置值。</p><p> 第3章 系統(tǒng)的硬件設(shè)計與實現(xiàn)</p><p><b> 3.1電路設(shè)計框圖</b></p><p> 本系統(tǒng)的電路系統(tǒng)框圖如圖3.1所示。STC89C52單片機(jī)對DS1302和DS18B20寫入控制字并讀取相應(yīng)的數(shù)據(jù),繼而控制LCD16
47、02作出對應(yīng)的顯示。</p><p> 圖3.1 系統(tǒng)硬件框圖</p><p><b> 3.2系統(tǒng)硬件概述</b></p><p> 本電路是由STC89C52單片機(jī)作為控制核心,能在5V電壓工作,STC89C52是一個低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含8kBytes ISP(In-system programmable)的可反
48、復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C52引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強(qiáng)大的微型計算機(jī)的STC89C52可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案;時鐘電路由DS1302提供,它是一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周、時、分、秒進(jìn)行計時,具有閏年補(bǔ)償功能,工作電
49、壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31*8的用于臨時性存放數(shù)據(jù)的RAM寄存器??僧a(chǎn)生年、月、日、周、時、分、秒,具有使用壽命長,精度高和低功耗等特點,同時具有掉電自動保存功能;溫度的采集由DS18B20完成,它具有獨特的單線接口方式,DS18B20在與微</p><p> 3.3 主要模塊電路的設(shè)計</p
50、><p> 3.3.1 STC89C52單片機(jī)主控制模塊的設(shè)計</p><p> STC系列單片機(jī)是由STMicroelectronics 公司生產(chǎn),并有宏晶公司做大陸代理的。本設(shè)計使用STC89C52作為控制核心,其管腳兼容其他51系列的單片機(jī),以下對STC89C52進(jìn)行簡單講解。 STC89C52單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器
51、(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。采用40Pin封裝的雙列直接DIP結(jié)構(gòu),圖3.2是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在對各引腳功能說明如下(圖3.2):</p><p><b> ?。?)主電源引腳</b></p>
52、<p> Vcc :接+5V電源正端。</p><p> Vss :接+5V電源地端。</p><p> ?。?)輸入/輸出引腳</p><p> P.0~P0.7:P0口的8個引腳。在不接片外存儲器與不擴(kuò)展I/O接口時,可作為準(zhǔn)雙向輸入/輸出接口。在接有片外存儲器或擴(kuò)展I/O接口時,P0口分時復(fù)用為低8位地址總線和雙向數(shù)據(jù)總線。</p&g
53、t;<p> P1.0~P1.7:P1口的8個引腳??勺鳛闇?zhǔn)雙向I/O接口使用。對于52子系列,P1.0 與 P1.1還有第二種功能:P1.0 可用作定時器/計數(shù)器2的計數(shù)脈沖輸入端T2。P1.1可用作定時器/計數(shù)器2的外部控制端T2EX。</p><p> P2.0~P2.7:P2口的8個引腳??勺鳛闇?zhǔn)雙向I/O接口;有接有片外存儲器或擴(kuò)展I/O接口且尋址范圍超過256個字節(jié)時,P2口用作高8
54、位地址總線。</p><p> P3.0~P3.7:P3口的8個引腳。除作為準(zhǔn)雙向I/O接口使用外,還具有第二種功能 ,詳見表3.1。</p><p> 表3.1 P3口第二功能表 </p><p><b> ?。?)控制總線</b></p><p> ALE/PROG:地址鎖存有效信號輸出端。在訪問片外程序存儲
55、器期間,每機(jī)器周期該信號出現(xiàn)兩次,其下降沿用于控制鎖存P0口輸出的低8位地址。對于片內(nèi)含EPROM的機(jī)型,在編程期間,此引腳用作編程脈沖PROG的輸入端。</p><p> PSEN:片外程序存儲器讀選通信號輸出端,或稱片外取指信號輸出端。在向片外程序存儲器讀取指令或常數(shù)期間,每個機(jī)器周期該信號兩次有效(低電平),以通過數(shù)據(jù)總線P0口讀回指令或常數(shù)。在訪問片外數(shù)據(jù)存儲器期間,PSEN信號將不出現(xiàn)。</p&
56、gt;<p> RST/V:(RST 是 RETET 簡略寫法。)是復(fù)位端。單片機(jī)的振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機(jī)器周期的高電平就可實現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時,考慮到振蕩器有一定的起振時間,該引腳上高電平必須持續(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:片外程序存儲器選用端。該引腳有效(低電平)時只選用片外程序存儲器,否則計算機(jī)上電或6復(fù)位后先選用片內(nèi)程序存儲器。</p><p><b> (4)外接晶振引腳</b></p><p> XTAL1:片內(nèi)反相放大器輸入端。</p><p&g
58、t; XTAL2:片內(nèi)反相放大器輸出端。外接晶體時,XTAL1和 XTAL2各接晶體的一端,借外接晶體與片內(nèi)反相放大器構(gòu)成振蕩器。</p><p> 圖3.3單片機(jī)最小系統(tǒng)</p><p> 3.3.2時鐘電路模塊的設(shè)計</p><p> DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘芯片,它可以對年、月、日、周、時、分、秒
59、進(jìn)行計時,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進(jìn)行涓細(xì)電流充電的能力。</p><p> DS1302的引腳排列,其中Vcc1為后備電源,V
60、cc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,
61、RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),SCLK為時鐘輸入端。DS1302的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能
62、把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取</p><p> 3.3.3溫度采集模塊設(shè)計</p><p> 采用數(shù)字式溫度傳感器DS18B20,它是數(shù)字式溫度傳感器,具有測量精度高,電路連接簡單特點,此類傳感器僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,使用P3.5與DS18B20的I/O口連接加一個上拉電阻,Vcc接電源,Vss接地。獨特的一線接口,只需要一條口線
63、通信多點能力,簡化了分布式溫度傳感應(yīng)用無需外部元件可用數(shù)據(jù)總線供電,電壓范圍為3.0V至5.5V無需備用電源 測量溫度范圍為-55度至+125度。-10度至+85度范圍內(nèi)精度為±0.5度溫度傳感器可編程的分辨率為9~12位。</p><p> 3.3.4 顯示模塊的設(shè)計</p><p> 采用LCD1602液晶顯示器,單片機(jī)P0口作為數(shù)據(jù)輸出口,通過10R的上拉電阻連接到VC
64、C,VCC接5V電源,GND接地。GND為液晶顯示器對比度調(diào)整端,可以通過滑動變阻器RH1調(diào)顯示器的對比度(對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度)。RS為寄存器選擇,高電平1時選擇數(shù)據(jù)寄存器、低電平0時選擇指令寄存器。R/W為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。E(或EN)端為使能(enable)端,下降沿使能。DB0-DB7為雙向數(shù)據(jù)總線,同時最高位DB7也是忙信號檢測位。
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> 無論用戶使用哪種類型的單片機(jī) ,總要涉及到單片機(jī)復(fù)位電路的設(shè)計。而單片機(jī)復(fù)位電路設(shè)計的好壞,直接影響到整個系統(tǒng)工作的可靠性。許多用戶在設(shè)計完單片機(jī)系統(tǒng),并在實驗室調(diào)試成功后,在現(xiàn)場卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象,這主要是單片機(jī)的復(fù)位電路設(shè)計不可靠引起的,本電路設(shè)計采用可靠
67、的手動復(fù)位方式,單片機(jī)復(fù)位電路如圖3.8所示</p><p><b> 圖3.8復(fù)位電路</b></p><p><b> 3.4.3振蕩電路</b></p><p> 對于一個高可靠性的系統(tǒng)設(shè)計,晶體的選擇非常重要。在振蕩回路中,晶體既不能過激勵(容易產(chǎn)生高次諧波)也不能欠激勵(不容易起振)。晶體的選擇至少必須考慮
68、:諧振頻點,負(fù)載電容,激勵功率,溫度特性,長期穩(wěn)定性。</p><p> 在本設(shè)計中采用了12MHZ的晶振。單片機(jī)振蕩電路如圖圖3.9所示。</p><p><b> 圖3.9震蕩電路</b></p><p> 3.4.4溫度采集電路</p><p> 單片機(jī)使用VCC與上拉電阻相連,再與DS18B20的2號引腳
69、相接,上拉電阻取值10K。溫度傳感器采用外部供電方案,由1、3引腳提供電源。電路圖如下圖3.10:</p><p> 圖3.10溫度采集電路</p><p> 3.4.5蜂鳴器鬧鈴電路</p><p> 采用三極管驅(qū)動蜂鳴器的方式</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口是開漏,所以控制端分別接上拉電阻。偏壓信號VL端與滑動變阻器相連,通過滑動變阻器可以調(diào)節(jié)顯示器的顯示對比度。顯示器數(shù)據(jù)端口與單片機(jī)的P2對應(yīng)相連,單片機(jī)通過P2口可以向顯示器中輸入控
71、制命令或要顯示的字符。</p><p><b> 圖3.12顯示電路</b></p><p><b> 3.4.7鍵盤電路</b></p><p> 按鍵電路采用獨立按鍵方式,用來設(shè)置鬧鈴,調(diào)整時間等。</p><p><b> 圖3.13按鍵電路</b></p&
72、gt;<p> 第4章 系統(tǒng)的軟件設(shè)計</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ù)讀取及指令寫入函數(shù)均已在各自的頭文
74、件中完成,在主程序中只須引用即可。</p><p><b> 第5章 系統(tǒng)測試</b></p><p><b> 5.1 硬件測試</b></p><p> 在調(diào)試硬件時遇到過很多問題,但只要細(xì)心、認(rèn)真檢查這些問題都是可以避免的,主要問題及解決辦法現(xiàn)列如下:</p><p> 認(rèn)真檢查電路是
75、否有短路的地方,線與線之間,管腳刺破鄰近的漆包線之間是否連接在一起,有的話要用刀劃開,或者重新焊接。</p><p> 檢查完畢后接通電源后LCD1602沒有正確的顯示。在不通電狀態(tài)下用萬用表檢測電路是否正常連接,在檢查回路時發(fā)現(xiàn)有的點之間看似連接,但由于虛焊導(dǎo)致其并無電氣連接,只能對焊腳進(jìn)行在加工直到解決問題。</p><p><b> 5.2 軟件測試 </b>
76、;</p><p> 由于本系統(tǒng)涉及到多個子程序,多個芯片的編程。首先必須對可編程芯片的控制字即其控制指令要熟記于心。其次,芯片很多都有時鐘輸入端,需要晶振支持。對芯片的讀寫都需要在相應(yīng)的觸發(fā)沿到來時才能進(jìn)行。由于DS18B20是串行通信數(shù)據(jù),只用一個口線傳輸,在處理采集的模擬信號時需要一定的時間,會對延時有較高要求。</p><p><b> 結(jié)束語</b>&l
77、t;/p><p> 以上所述即是基于單片機(jī)電子萬年歷的設(shè)計全過程,經(jīng)過多次的反復(fù)測試與分析,對電路的原理及功能更加熟悉,同時提高了設(shè)計能力與及對電路的分析能力.經(jīng)過此設(shè)計,基本完成了設(shè)計任務(wù)的要求。硬件層面而言操作相對簡單,界面比較友好。</p><p> 在硬件電路方面,詳盡解析了各個獨立元件的選擇依據(jù),對數(shù)種方案進(jìn)行了全面的比較。在時鐘芯片的選擇上,若直接采用單片機(jī)定時計數(shù)器提供秒信號
78、,使用程序?qū)崿F(xiàn)年、月、日、星期、時、分、秒計數(shù)。采用此種方案雖然可以減少時鐘芯片的使用,節(jié)約成本,但是,實現(xiàn)的時間誤差較大。因此采用專業(yè)的時鐘芯片DS1302,它可以對年、月、日、周日、時、分、秒進(jìn)行計時,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能;在顯示模塊的選擇上,若采用LED數(shù)碼管動態(tài)掃描,LED數(shù)碼管價格雖適中,對于顯示數(shù)字也最合適,而且采用動態(tài)掃描法與單片機(jī)連接時,占用的單片機(jī)口線少。但是由于數(shù)碼管動態(tài)掃
79、描需要借助74LS164移位寄存器進(jìn)行移位,該芯片在電路調(diào)試時往往會有很多障礙,因此本次設(shè)計選擇了LCD1602,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見;在溫度采集模塊的選擇上,沒有采用熱敏電阻,因為設(shè)計方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會產(chǎn)生較大的測量誤差。最后選擇了DS18B20,此類傳感器為數(shù)字式傳感器而且僅需要一條數(shù)據(jù)線進(jìn)行數(shù)據(jù)傳輸,易于與單</p&
80、gt;<p><b> 致謝</b></p><p><b> 自己寫</b></p><p><b> 參考文獻(xiàn)</b></p><p> [1]胡乾斌,李光斌,李玲,喻紅.單片微型計算機(jī)原理與應(yīng)用.華中科技大學(xué)出版社,1996.</p><p> [
81、2]劉勇.?dāng)?shù)字電路.電子工業(yè)出版社,2004.</p><p> [3]陳正振.電子電路設(shè)計與制作.廣西交通職業(yè)技術(shù)學(xué)院信息工程系,2007.</p><p> [4]楊子文.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社,2006.</p><p> [5]王萍.電子技術(shù)實驗教程.機(jī)械工業(yè)出版社,2009.</p><p> [6]沈紅衛(wèi)
82、.單片機(jī)應(yīng)用系統(tǒng)設(shè)計實例與分析,北京:北京航空航天大學(xué)出版社.2003</p><p> [7]李光飛.單片機(jī)課程設(shè)計實例指導(dǎo),北京:北京航空航天大學(xué)出版社. 2004</p><p> [8]王法能.單片機(jī)原理及應(yīng)用,科學(xué)出版社. 2004</p><p> [9]樓然苗,李光飛.51系列單片機(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è)計實用教程[M].中國鐵道出版社,2004.</p><p> [13]張培仁.基于匯編語言編程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);//*****初始化時間*****</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]); //*****讀取時*****</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) //*****存儲標(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); //*****開啟寫寄存器*****</p><p> DS1302_Wdata(0x80,80); //*****時鐘停止等待設(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); //*****液晶開啟光標(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)電子萬年歷畢業(yè)論文
- 單片機(jī)電子萬年歷畢業(yè)論文
- 基于單片機(jī)電子萬年歷的設(shè)計畢業(yè)論文
- 基于51單片機(jī)電子萬年歷畢業(yè)論文
- 基于51單片機(jī)電子萬年歷
- 萬年歷畢業(yè)論文---基于at89s52單片機(jī)的電子萬年歷設(shè)計
- 基于單片機(jī)的電子萬年歷畢業(yè)論文
- 畢業(yè)論文(設(shè)計)基于單片機(jī)的電子萬年歷
- 單片機(jī)電子萬年歷課程設(shè)計
- 單片機(jī)電子萬年歷課程設(shè)計
- 單片機(jī)電子萬年歷課程設(shè)計
- 單片機(jī)電子萬年歷課程設(shè)計
- 基于51單片機(jī)的電子萬年歷畢業(yè)論文設(shè)計
- 基于單片機(jī)萬年歷的設(shè)計畢業(yè)論文
- 基于51單片機(jī)的電子萬年歷設(shè)計畢業(yè)論文
- 基于單片機(jī)萬年歷的設(shè)計畢業(yè)論文
- 基于51單片機(jī)的電子萬年歷設(shè)計-畢業(yè)論文設(shè)計
- 畢業(yè)論文——基于51單片機(jī)的電子萬年歷的設(shè)計
- 單片機(jī)電子萬年歷課程設(shè)計 (2)
- 電子萬年歷畢業(yè)論文
評論
0/150
提交評論