

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘 要</b></p><p> 單片機(jī)應(yīng)用技術(shù)飛速發(fā)展,縱觀我們現(xiàn)在生活的各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能IC卡、電子寵物等,這些都離不開單片機(jī)。單片機(jī)是集CPU ,RAM ,ROM ,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。它體
2、積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)業(yè)和工業(yè)自動(dòng)化上。而51系列單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次畢業(yè)設(shè)計(jì)通過對(duì)它的學(xué)習(xí),應(yīng)用,從而達(dá)到學(xué)習(xí)、設(shè)計(jì)、開發(fā)軟、硬的能力。 </p><p> 本文通過對(duì)一個(gè)基于單片機(jī)的能實(shí)現(xiàn)萬年歷功能電子時(shí)鐘的設(shè)計(jì),從而達(dá)到學(xué)習(xí)、了解單片機(jī)相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由主控制器AT89C51、時(shí)鐘電路DS1302、顯示電路、按鍵電路、和復(fù)位電路等部分構(gòu)成,能實(shí)現(xiàn)時(shí)
3、鐘日歷顯示的功能,能進(jìn)行時(shí)、分、秒的顯示。</p><p> 關(guān)鍵詞:?jiǎn)纹瑱C(jī) 農(nóng)歷查詢 電子鐘</p><p><b> 目 錄</b></p><p><b> 第一章 引言5</b></p><p> 第二章 設(shè)計(jì)方案論證6</p><p> 2.
4、1方案論證與設(shè)計(jì)6</p><p> 2.1.1.控制部分的方案選擇6</p><p> 2.1.2顯示部分的方案選擇6</p><p> 2.1.3系統(tǒng)基本方案選擇和論證6</p><p> 2.2 單片機(jī)原理8</p><p> 2.3 LED顯示數(shù)碼管8</p><p&g
5、t;<b> 第三章計(jì)算部分9</b></p><p> 3.1 主要單元電路的器件9</p><p> 3.1.1單片機(jī)主控制模塊9</p><p> 3.1.2時(shí)鐘電路模塊、11</p><p> 3.2其他模塊器件12</p><p> 3.2.1 74LS164
6、12</p><p> 3.2.2 CON814</p><p> 3.2.3 其他元器件14</p><p> 第四章 結(jié)構(gòu)設(shè)計(jì)部分14</p><p> 4.1 顯示部分設(shè)計(jì)14</p><p> 4.1.1萬年歷優(yōu)化算法15</p><p> 4.2 實(shí)現(xiàn)時(shí)鐘
7、,日歷顯示設(shè)計(jì)17</p><p> 4.2.1 DS1302 的寄存器17</p><p> 4.2.2 DS1302 實(shí)時(shí)顯示時(shí)間的軟硬件18</p><p> 4.2.3 DS1302 與CPU 的連接18</p><p> 4.3整體設(shè)計(jì)19</p><p> 4.4系統(tǒng)軟件設(shè)計(jì)21<
8、;/p><p> 4.4.1程序流程框圖21</p><p> 第五章 實(shí)驗(yàn)測(cè)試部分23</p><p> 5.1硬件測(cè)試23</p><p> 5.2軟件測(cè)試24</p><p> 5.3測(cè)試結(jié)果分析與結(jié)論24</p><p> 5.3.1 測(cè)試結(jié)果分析24</p&g
9、t;<p> 5.3.2 測(cè)試結(jié)論25</p><p><b> 5.4結(jié)論25</b></p><p><b> 結(jié)束語27</b></p><p><b> 謝辭27</b></p><p><b> 參考文獻(xiàn)28</b&g
10、t;</p><p><b> 電子鐘的設(shè)計(jì)與實(shí)現(xiàn)</b></p><p><b> 第一章 引言</b></p><p> 隨著微電子技術(shù)的高速發(fā)展,單片機(jī)在國(guó)民經(jīng)濟(jì)的個(gè)人領(lǐng)域得到了廣泛的運(yùn)用。單片機(jī)以體積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn),在工業(yè)控制、家用電器、通信設(shè)備、信息處理、尖端武器等各種測(cè)控領(lǐng)域的應(yīng)用中獨(dú)占鰲
11、頭,單片機(jī)開發(fā)技術(shù)已成為電子信息、電氣、通信、自動(dòng)化、機(jī)電一體化等專業(yè)技術(shù)人員必須掌握的技術(shù)。</p><p> 而電子鐘作為電子類小設(shè)計(jì)不僅是市場(chǎng)上的寵兒,也是是單片機(jī)實(shí)驗(yàn)中一個(gè)很常用的題目。因?yàn)樗挠泻芎玫拈_放性和可發(fā)揮性,因此對(duì)作者的要求比較高,不僅考察了對(duì)單片機(jī)的掌握能力更加強(qiáng)調(diào)了對(duì)單片機(jī)擴(kuò)展的應(yīng)用。而且在操作的設(shè)計(jì)上要力求簡(jiǎn)潔,功能上盡量齊全,顯示界面也要出色。數(shù)字顯示的日歷鐘已經(jīng)越來越流行,特別是適
12、合在家庭居室、辦公室、大廳、會(huì)議室、車站和廣場(chǎng)等使用,壁掛式LED數(shù)碼管顯示的日歷鐘逐漸受到人們的歡迎。LED數(shù)字顯示的日歷鐘顯示清晰直觀、走時(shí)準(zhǔn)確、可以進(jìn)行夜視,并且還可以擴(kuò)展出多種功能。 所以,電子萬年歷無論作為比賽題目還是練習(xí)題目都是很有價(jià)值。</p><p> 第二章 設(shè)計(jì)方案論證</p><p> 2.1方案論證與設(shè)計(jì)</p><p> 2.1.1.
13、控制部分的方案選擇</p><p> a)用可編程邏輯器件設(shè)計(jì)??刹捎肁LTERA公司的FLEX10K系列PLD器件。設(shè)計(jì)起來結(jié)構(gòu)清晰,各個(gè)模塊,從硬件上設(shè)計(jì)起來相對(duì)簡(jiǎn)單,控制與顯示的模塊間的連接也會(huì)比較方便。但是考慮到本設(shè)計(jì)的特點(diǎn),EDA在功能擴(kuò)展上比較受局限,而且EDA占用的資源也相對(duì)多一些。從成本上來講,用可編程邏輯器件來設(shè)計(jì)也沒有什么優(yōu)勢(shì)。</p><p> b)用凌陽16位單
14、片機(jī)設(shè)計(jì)。凌陽16位單片機(jī)有豐富的中斷源和時(shí)基,方便本實(shí)驗(yàn)的設(shè)計(jì)。它的準(zhǔn)確度相當(dāng)高,并且C語言和匯編兼容的編程環(huán)境也很方便來實(shí)現(xiàn)一些遞歸調(diào)用。I/O口功能也比較強(qiáng)大,方便使用。用凌陽16位單片機(jī)做控制器最有特色的就是它的可編程音頻處理,可完成語音的錄制播放和識(shí)別。這些都方便對(duì)設(shè)計(jì)進(jìn)行擴(kuò)展,使設(shè)計(jì)更加完善。成本也相對(duì)低一些。</p><p> 2.1.2顯示部分的方案選擇</p><p>
15、 a)液晶顯示方式。液晶顯示效果出眾,可以運(yùn)用菜單項(xiàng)來方便操作,但是在顯示時(shí),特別是使用秒表功能時(shí)掃描速度跟不上,屏幕會(huì)有明顯的閃爍。而且由于61板的存儲(chǔ)空間有限,液晶顯示就不能與語音播抱程序同時(shí)實(shí)現(xiàn)。這些大大影響了電子萬年歷的性能。</p><p> b)相比液晶顯示,采用8段數(shù)碼管既經(jīng)濟(jì)實(shí)惠,在效果上也可以加入語音報(bào)時(shí)功能,操作比較液晶顯示來說雖然略顯繁瑣,但總體也還可以做到比較人性化。所以,最后選擇LE
16、D數(shù)碼管顯示方案。</p><p> 2.1.3系統(tǒng)基本方案選擇和論證</p><p> 1.單片機(jī)芯片的選擇方案和論證:</p><p><b> 方案一: </b></p><p> 采用89C51芯片作為硬件核心,采用Flash ROM,內(nèi)部具有4KB ROM 存儲(chǔ)空間,能于3V的超低壓工作,而且與MCS-
17、51系列單片機(jī)完全兼容,但是運(yùn)用于電路設(shè)計(jì)中時(shí)由于不具備ISP在線編程技術(shù), 當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),對(duì)芯片的多次拔插會(huì)對(duì)芯片造成一定的損壞。</p><p><b> 方案二:</b></p><p> 采用AT89S52,片內(nèi)ROM全都采用Flash ROM;能以3V的超底壓工作;同時(shí)也與MCS-51系列單片機(jī)
18、完全該芯片內(nèi)部存儲(chǔ)器為8KB ROM 存儲(chǔ)空間,同樣具有89C51的功能,且具有在線編程可擦除技術(shù),當(dāng)在對(duì)電路進(jìn)行調(diào)試時(shí),由于程序的錯(cuò)誤修改或?qū)Τ绦虻男略龉δ苄枰獰氤绦驎r(shí),不需要對(duì)芯片多次拔插,所以不會(huì)對(duì)芯片造成損壞。所以選擇采用AT89S52作為主控制系統(tǒng).</p><p> 2. 顯示模塊選擇方案和論證:</p><p><b> 方案一:</b></
19、p><p> 采用LED液晶顯示屏,液晶顯示屏的顯示功能強(qiáng)大,可顯示大量文字,圖形,顯示多樣,清晰可見,但是價(jià)格昂貴,需要的接口線多,所以在此設(shè)計(jì)中不采用LED液晶顯示屏.</p><p><b> 方案二:</b></p><p> 采用點(diǎn)陣式數(shù)碼管顯示,點(diǎn)陣式數(shù)碼管是由八行八列的發(fā)光二極管組成,對(duì)于顯示文字比較適合,如采用在顯示數(shù)字顯得太
20、浪費(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ī)口線少。</p><p> 所以采用了LED數(shù)碼管作為顯示。</p><p> 3.時(shí)鐘
21、芯片的選擇方案和論證:</p><p><b> 方案一:</b></p><p> 直接采用單片機(jī)定時(shí)計(jì)數(shù)器提供秒信號(hào),使用程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。</p><p><b> 方案二:</b></p>
22、<p> 采用DS1302時(shí)鐘芯片實(shí)現(xiàn)時(shí)鐘,DS1302芯片是一種高性能的時(shí)鐘芯片,可自動(dòng)對(duì)秒、分、時(shí)、日、周、月、年以及閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),而且精度高,位的RAM做為數(shù)據(jù)暫存區(qū),工作電壓2.5V~5.5V范圍內(nèi),2.5V時(shí)耗電小于300nA.</p><p> 4. 電路設(shè)計(jì)最終方案決定</p><p> 綜上各方案所述,對(duì)此次作品的方案選定: 采用AT89S52作
23、為主控制系統(tǒng); DS1302提供時(shí)鐘;數(shù)字式溫度傳感器;LED數(shù)碼管動(dòng)態(tài)掃描作為顯示。</p><p><b> 2.2 單片機(jī)原理</b></p><p> 單片機(jī)就是簡(jiǎn)化的微型計(jì)算機(jī)。CPU中本身自帶存儲(chǔ)器ROM和RAM。CPU片內(nèi)也有總線。IC(集成電路)技術(shù)是將電路通過特殊工藝做在一塊硅基片上封裝成芯片,比如CPU,片外存儲(chǔ)器等等。將單片機(jī)CPU(比如51
24、系列),晶振,存儲(chǔ)器,地址鎖存器,邏輯門,七段譯碼器(顯示器),按鈕(類似鍵盤),擴(kuò)展芯片,接口等通過PCB工藝(比如SMT貼片,或者插裝)做在環(huán)氧樹脂板上。這樣才是一個(gè)完整的單片(做在一塊PCB板上)的微型計(jì)算機(jī)。</p><p> 2.3 LED顯示數(shù)碼管</p><p> 常見的LED顯示具有清晰明亮的特點(diǎn)。是顯示接口也是絕大多數(shù)單片機(jī)應(yīng)用系統(tǒng)必備的部件之一。</p>
25、<p> 發(fā)光二極管組成的顯示器是單片機(jī)應(yīng)用產(chǎn)品中最常用的廉價(jià)輸出設(shè)備。它由若干個(gè)發(fā)光二極管按一定的規(guī)律排列而成。當(dāng)某一個(gè)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一筆畫被點(diǎn)亮,控制不同組合的二極管導(dǎo)通,就能顯出各種字符。</p><p><b> 1. 顯示器的結(jié)構(gòu)</b></p><p> 常用的7段顯示器的結(jié)構(gòu)如圖所示,發(fā)光二極管的陽極連在一起的稱為共
26、陽極顯示器,陰極連在一起的成為共陰顯示器。1位顯示器由8個(gè)發(fā)光二極管組成,其中7個(gè)發(fā)光二極管a~g控制7個(gè)筆畫的亮或暗,另一個(gè)控制一個(gè)小數(shù)點(diǎn)的亮和暗,這種筆畫的七段顯示器能顯示的字符較少,字符的形狀有些失真,但失控簡(jiǎn)單,使用方便。</p><p> 共陽 共陰</p><p><b> 第三章計(jì)算部分</b>
27、</p><p> 3.1 主要單元電路的器件</p><p> 3.1.1單片機(jī)主控制模塊</p><p> AT89S51單片機(jī)為40引腳雙列直插芯片,有四個(gè)I/O口P0,P1,P2,P3, MCS-51單片機(jī)共有4個(gè)8位的I/O口(P0、P1、P2、P3),每一條I/O線都能獨(dú)立地作輸出或輸入。如圖所示。</p><p><
28、b> 1.內(nèi)部結(jié)構(gòu)</b></p><p> 按功能分為8部分:CUP,程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,時(shí)鐘電路,串行口,并行I/O口,中斷系統(tǒng),定時(shí)/計(jì)數(shù)器。</p><p><b> 2.引腳定義及功能</b></p><p> 1).電源及時(shí)鐘引腳</p><p> Vcc:接+5V 電源<
29、;/p><p><b> Vss:接地</b></p><p> XTAL1和XTAL2:時(shí)鐘引腳,外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此兩引腳端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。</p><p><b> 2).控制引腳</b></p><p> RST/
30、Vpq:RST是復(fù)位信號(hào)輸入端,Vpd是備用電源輸入端。當(dāng)RST輸入端保持2個(gè)機(jī)器周期以上高電平時(shí),單片機(jī)完成復(fù)位初始化操作。</p><p> 當(dāng)主電源Vcc發(fā)生故障而突然下降到一定低電壓或斷電時(shí),第2功能Vpd將為片內(nèi)RAM提供電源以保護(hù)片內(nèi)RAM中的信息不丟失。</p><p> ALE/PROG:地址鎖存允許信號(hào)輸入端。在存取外存儲(chǔ)器時(shí),用于鎖存低8位地址信號(hào)。當(dāng)單片機(jī)正常工作
31、后,ALE端就周期性地以時(shí)鐘振蕩頻率的1/6固定頻率向外輸出正脈沖信號(hào)。此引腳的第2功能PROG是對(duì)片內(nèi)帶有4K字節(jié)EPROM的8751固外程序時(shí),作為編程脈沖輸入端。</p><p> PSEN:程序存儲(chǔ)器允許輸出端。當(dāng)片外程序存儲(chǔ)器的讀選通信號(hào),低電平有效。CPU從外部程序存儲(chǔ)器取指令時(shí),PSEN信號(hào)會(huì)自動(dòng)產(chǎn)生負(fù)脈沖,作為外部程序存儲(chǔ)器的選通信號(hào)。</p><p> EA/Vpp:
32、程序存儲(chǔ)器地址允許輸入端。當(dāng)EA為高電平時(shí),CPU執(zhí)行片內(nèi)程序存儲(chǔ)器指令,但當(dāng)PC中的值超過0FFFH時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器指令;當(dāng)EA為低電平時(shí),CPU只執(zhí)行片外程序存儲(chǔ)器指令。</p><p><b> 3).I/O口引腳</b></p><p> P0.0~P0.7:P0口8位雙向I/O口;</p><p> P1.0~P
33、1.7:P1口8位準(zhǔn)雙向I/O口;</p><p> P2.0~P2.7:P2口8位準(zhǔn)雙向I/O口;</p><p> P3.0~P3.7:P3口8位準(zhǔn)雙向I/O口。</p><p><b> 3.片外總線結(jié)構(gòu)</b></p><p> 分為三部分:數(shù)據(jù)總線 Data Bus(DB),地址總線 Address B
34、us (AB),控制總線 Control Bus(CB).</p><p><b> AT89S51</b></p><p> 3.1.2時(shí)鐘電路模塊、</p><p> DS1302的結(jié)構(gòu)及工作原理</p><p> DS1302 是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)
35、年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為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><
36、b> 引腳功能及結(jié)構(gòu)</b></p><p> 圖1所示出DS1302 的引腳排列,其中Vcc1 為后備電源,VCC2 為主電源。在主電源關(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 是振蕩源,外接
37、32.768kHz 晶振。RST 是復(fù)位/片選線,通過把RST 輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST 輸入有兩種功能:首先,RST 接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST 提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST 為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302 進(jìn)行操作。如果在傳送過程中RST 置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O 引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V 之前,RS
38、T 必須保持低電平。只有在SCLK 為低電平時(shí),才能將RST 置為高電平。I/O 為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說明。SCLK 始終是輸入端。</p><p> 圖1 DS1302的引腳圖</p><p> 數(shù)據(jù)輸入輸出(I/O)</p><p> 在控制指令字輸入后的下一個(gè)SCLK 時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0 開
39、始。同樣,在緊跟8 位的控制指令字后的下一個(gè)SCLK 脈沖的下降沿讀出DS1302 的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0 位到高位7。</p><p><b> 3.2其他模塊器件</b></p><p> 3.2.1 74LS164</p><p> 它是個(gè)串入并出的8位移位寄存器,它常用于單片機(jī)系統(tǒng)中,下面結(jié)束一下這個(gè)元件的基本知識(shí):<
40、;/p><p> 74LS164引腳圖</p><p> 74LS164_邏輯符合表</p><p><b> 串行輸入帶鎖存 </b></p><p> 時(shí)鐘輸入,串行輸入帶緩沖 </p><p><b> 異步清除 </b></p><p>
41、 最高時(shí)鐘頻率可高達(dá)36Mhz </p><p> 功耗:10mW/bit </p><p> 74系列工作溫度: 0°C to 70°C </p><p> Vcc最高電壓:7V </p><p> 輸入最高電壓:7V </p><p> 高電平:-0.4mA </p>
42、<p><b> 低電平:8mA</b></p><p> 3.2.2 CON8</p><p> 它是一個(gè)排插符號(hào) ,也就是一個(gè)插座,可以通過一個(gè)插頭將89C51的P0口引到外面的有關(guān)電路作擴(kuò)展用,也可以作為備用。</p><p> 3.2.3 其他元器件</p><p> 電阻,電容,發(fā)光
43、二極管,三極管若干。</p><p> 第四章 結(jié)構(gòu)設(shè)計(jì)部分</p><p> 4.1 顯示部分設(shè)計(jì)</p><p> 基本顯示原理:時(shí)鐘開始顯示為0時(shí)0分0秒,也就是數(shù)碼管顯示000000,然后每秒秒位加1 ,到9后,10秒位加1,秒位回0。10秒位到5后,即59秒 ,分鐘加1,10秒位回0。依次類推,時(shí)鐘最大的顯示值為23小時(shí)59分59秒。這里只要確定了1
44、秒的定時(shí)時(shí)間, 其他位均以此為基準(zhǔn)往上累加。 同時(shí)時(shí)鐘達(dá)到最大值的時(shí)候天數(shù)也增加一位,知道顯示了7后再變?yōu)?,同時(shí)陰歷和陽歷的天數(shù)也加1,根據(jù)不同的月份顯示的天數(shù)陽歷有28,29,30,31天,陰歷就要經(jīng)過計(jì)算得到,到了12個(gè)月后,年數(shù)自動(dòng)增加1,以此類推,顯示萬年歷的現(xiàn)實(shí)。</p><p> 另外,連接方式總電路圖上可以看到,這里就不做說明了,下圖為顯示部分的電路圖。</p><p>
45、<b> 顯示部分</b></p><p> 4.1.1萬年歷優(yōu)化算法</p><p><b> 陽歷算法</b></p><p> 陽歷的算法比較簡(jiǎn)單,每十月的總的天數(shù)相對(duì)來說是固定的。只有2月份,在閏年是29天,在非閏年是28天。每個(gè)月的日歷排法.主要是確定每個(gè)月第一天是星期幾。我們知道1901年1月1日是星期
46、二,星期的變化是7天一個(gè)周期,比如說要計(jì)算1901年2月1日是星期幾,可以這樣推算:從1901年1月1日到1901年2月1日總共經(jīng)過了31天(從表1可 看出),31對(duì)7取模是3:i901年1月1日是星期二,加三后,是星期五。因此1901年2月1日是星期五。同理,可以推算出從1901—2100年任何一天是星期幾。</p><p><b> 表1</b></p><p>
47、;<b> 陰歷算法</b></p><p> 陰歷的算法比較復(fù)雜,它包含兩個(gè)部分。一部分是陽歷日和陰歷日的對(duì)應(yīng)關(guān)系;另一部分則是陽歷日和農(nóng)歷節(jié)氣的對(duì)應(yīng)關(guān)系。下面只介紹與設(shè)計(jì)有關(guān)的陰歷和陽歷的關(guān)系。</p><p><b> 表2</b></p><p> 我們先要做一個(gè)數(shù)據(jù)表,這個(gè)數(shù)據(jù)表里面每2個(gè)字節(jié),表示T一個(gè)
48、陰所年彝個(gè)月份的天教 2個(gè)字節(jié)(共16bit)的具體意義如表2。</p><p> 其中“!(0/1)中“0”表示30天,“1”表示29天?!皒 x x x(4個(gè)比特可表示數(shù)值范圍0~15)”表示該年中是否有閏月,數(shù)值“0”表示無閏月,“ 1~12” 表示某一個(gè)閏月。閏月一般是29天;在200年中(1901~2100年),閏月是30天的,可用一個(gè)特殊語句來解決。這里2OO年需要200 x 2=400個(gè)字節(jié),構(gòu)成
49、陰歷壓縮數(shù)據(jù)表。</p><p> 有了陰歷的數(shù)據(jù)表后,主要是要確定陽歷日和胡歷日的對(duì)應(yīng)關(guān)系。我們知道陽歷年1901年1月1日,對(duì)應(yīng)的陰歷年是對(duì)應(yīng)的陰歷日,可用以下算法:</p><p> 1)從陽歷年1901年1月1日到1901年2月1日,計(jì)算出經(jīng)過了31天;</p><p> 2)根據(jù)陰歷數(shù)據(jù)表知道陰歷年1900年11月有29天,因此31—29=2天。原來
50、陽歷年1901年1月1日對(duì)應(yīng)的陰歷日是11日,則有11+1=13;</p><p> 3)因?yàn)殛帤v1901年12月份有30天,而13<=30,所以陽歷年1901年2月1日對(duì)應(yīng)的陰歷年是1900年12月13日。如果上一步相加得出的散大于當(dāng)前陰歷月的總的天敢,別應(yīng)該繼續(xù)減去當(dāng)前陰歷月的總的天數(shù),直到符合條件。 對(duì)于月份增加時(shí),還要通過數(shù)據(jù)表查看是否要經(jīng)過閏月。</p><p> 對(duì)于
51、其他任何一個(gè)陽歷日和陰歷日的對(duì)應(yīng)關(guān)系,都可以通過以上算法求得結(jié)果。</p><p> 4.2 實(shí)現(xiàn)時(shí)鐘,日歷顯示設(shè)計(jì)</p><p> DS1302可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能。</p><p> 4.2.1 DS1302 的寄存器</p><p> DS1302 有12 個(gè)寄存器,其中有7 個(gè)
52、寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD 碼形式,其日歷、時(shí)間寄存器及其控制字見表1。</p><p> 表1 日歷、時(shí)間寄存器及其控制字</p><p> 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM 相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302 與RAM 相關(guān)的寄存器分為兩類:一類是單個(gè)RA
53、M 單元,共31 個(gè),每個(gè)單元組態(tài)為一個(gè)8 位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM 寄存器,此方式下可一次性讀寫所有的RAM 的31 個(gè)字節(jié),命令控制字為FEH(寫)、FFH(讀)。</p><p> 4.2.2 DS1302 實(shí)時(shí)顯示時(shí)間的軟硬件</p><p> DS1302 與CPU 的連接需要三條線,即SCLK(7)、
54、I/O(6)、RST(5)。圖3 示出DS1302 與89C2051 的連接圖,其中,時(shí)鐘的顯示用LCD。</p><p> 4.2.3 DS1302 與CPU 的連接</p><p> 實(shí)際上,在調(diào)試程序時(shí)可以不加電容器,只加一個(gè)32.768kHz 的晶振即可。只是選擇晶振時(shí),不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時(shí)顯示實(shí)時(shí)溫度。只要占用CPU 一個(gè)
55、口線即可。 LCD 還可以換成LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10 位多功能8 段液晶顯示模塊LCM101,內(nèi)含看門狗(WDT)/時(shí)鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動(dòng)電路,并有內(nèi)置顯示RAM,可顯示任意字段筆劃,具有3-4 線串行接口,可與任何單片機(jī)、IC 接口。功耗低,顯示狀態(tài)時(shí)電流為2μA(典型值),省電模式時(shí)小于1μA,工作電壓為2.4V~3.3V,顯示清晰。</p><p> 圖3 DS
56、1302與CPU連接的電路原理圖</p><p><b> 4.3整體設(shè)計(jì)</b></p><p> 實(shí)現(xiàn)過程:由串行的時(shí)鐘芯片DS1302,送給單片機(jī),單片機(jī)處理后輸出。而74LS164將串行信號(hào)變成并行信號(hào),每個(gè)164對(duì)應(yīng)LED七段碼,三個(gè)164對(duì)應(yīng)三行LED數(shù)碼管。單片機(jī)P2.6-P2.0連接七個(gè)三極管作列驅(qū)動(dòng),共七列數(shù)碼管,(實(shí)際有兩行是六列)行列掃描共同
57、形成萬年歷。</p><p> 接線方法(如上圖所示):</p><p> 1,用一個(gè)2PIN數(shù)據(jù)排線一端插入CPU部分JP2(P3口)的P3.0,P3.1,另外一端插入74LS164部分的輸入端JP2。</p><p> 2,用一根8PIN的數(shù)據(jù)排線,一端插入74LS164部分的輸出端JP8, 另一端插入8路指示燈的JP8。 </p>
58、<p> 其整個(gè)過程,如原理圖所示(見附錄二)。</p><p><b> 4.4系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.4.1程序流程框圖</p><p> 圖-A主程序流程表 圖-B計(jì)算陽歷程序流程表</p><p> 圖-C 時(shí)
59、間調(diào)整程序流程圖</p><p> 圖-D 陰歷程序流程表</p><p> 第五章 實(shí)驗(yàn)測(cè)試部分</p><p><b> 5.1硬件測(cè)試</b></p><p> 電子鐘的電路系統(tǒng)較大,對(duì)于焊接方面更是不可輕視,龐大的電路系統(tǒng)中只要出于一處的錯(cuò)誤,則會(huì)對(duì)檢測(cè)造成很大的不便,而且電路的交線較多,對(duì)于各種鋒利的
60、引腳要注意處理,否則會(huì)刺被帶有包皮的導(dǎo)線,則會(huì)對(duì)電路造成短路現(xiàn)象。</p><p> 在本成電子鐘的設(shè)計(jì)調(diào)試中遇到了很多的問題?;叵脒@些問題只要認(rèn)真多思考都是可以避免的,以下為主要的問題:</p><p> 1)LED數(shù)碼管的斷碼錯(cuò)亂,原因出于沒有認(rèn)真看清a、b 、c等引腳信息。</p><p> 解決:重新排列74LS47的輸出端,相應(yīng)接入LED數(shù)碼管,即
61、可解決出現(xiàn)在的斷碼或亂碼。</p><p> 2)對(duì)萬年歷修改時(shí)間或日期時(shí),有時(shí)LED數(shù)碼管被屏蔽掉,造成不亮現(xiàn)象。</p><p> 解決:根據(jù)儀器的測(cè)試,發(fā)現(xiàn)電路的驅(qū)動(dòng)能力不足,最后在DS1302時(shí)鐘芯片的/CS、SCLK、RET端接入5.1K的上拉電阻后,電路的驅(qū)動(dòng)能力才能滿足,即可解決不亮現(xiàn)象。</p><p><b> 5.2軟件測(cè)試<
62、;/b></p><p> 電子鐘是多功能的數(shù)字型,可以看當(dāng)前日期(陰、陽歷),時(shí)間,還有溫度的儀器。電子鐘功能很多,所以對(duì)于它的程序也較為復(fù)雜,所以在編寫程序和調(diào)試時(shí)出現(xiàn)了相對(duì)較多的問題。最后經(jīng)過多次的模塊子程序的修改,一步一步的完成,最終解決了軟件。在軟件的調(diào)試過程中主要遇到的問題如下:</p><p> 1.燒入程序后,LED數(shù)碼管顯示閃動(dòng),而且亮度不均勻。</p&g
63、t;<p> 解決:首先對(duì)調(diào)用的延時(shí)進(jìn)行逐漸修改,可以解決顯示閃動(dòng)問題。其次,由于本作品使作動(dòng)態(tài)掃描方式顯示的數(shù)字,動(dòng)態(tài)掃描很快,人的肉眼是無法看出,但是調(diào)用的顯示程序時(shí),如果不在反回時(shí)屏蔽掉最后的附值,則會(huì)出現(xiàn)很亮的現(xiàn)象,所以在顯示的后面加了屏蔽子令,最后解決了此問題。</p><p> 2.修改時(shí)間、日期時(shí)沒有農(nóng)歷沒有自動(dòng)對(duì)應(yīng)上。</p><p> 解決:把不相關(guān)的
64、程序暫時(shí)屏蔽,地農(nóng)歷的子程序獨(dú)立調(diào)試,發(fā)現(xiàn)在調(diào)用農(nóng)歷自動(dòng)更新時(shí),對(duì)十進(jìn)制和十六進(jìn)制處理不好,所以會(huì)造成錯(cuò)亂。最后把相應(yīng)的十進(jìn)制進(jìn)行修改,使得可以與十六進(jìn)制對(duì)應(yīng),最后解決了此問題.</p><p> 5.3測(cè)試結(jié)果分析與結(jié)論</p><p> 5.3.1 測(cè)試結(jié)果分析</p><p> 1).在測(cè)試中遇到發(fā)光二極管、LED數(shù)碼管為不顯示時(shí),首先使用試測(cè)儀對(duì)電路進(jìn)
65、行測(cè)試,觀察是否存在漏焊,虛焊,或者元件損壞.</p><p> 2).LED 數(shù)碼管顯示不正常,還有亮度不夠,首先使用試測(cè)儀對(duì)電路進(jìn)行測(cè)試,觀察電路是否存在短路現(xiàn)象。查看燒寫的程序是否正確無誤,對(duì)程序進(jìn)行認(rèn)真修改。</p><p> 3).DS1302 與微處理器進(jìn)行數(shù)據(jù)交換時(shí),首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS13
66、02,即寫保護(hù);D6=0,指定時(shí)鐘數(shù)據(jù),D6=1,指定RAM 數(shù)據(jù);D5~D1 指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。</p><p> 在DS1302 的時(shí)鐘日歷或RAM 進(jìn)行數(shù)據(jù)傳送時(shí),DS1302 必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,8 位命令字節(jié)傳送結(jié)束之后,在下2 個(gè)SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8 個(gè)SCLK 周
67、期的下降沿輸出數(shù)據(jù)字節(jié)。</p><p> DS1302 與RAM 相關(guān)的寄存器分為兩類:一類是單個(gè)RAM 單元,共31 個(gè),每個(gè)單元組態(tài)為一個(gè)8 位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM 寄存器,在此方式下可一次性讀、寫所有的RAM 的31 個(gè)字節(jié)。</p><p> 要特別說明的是備用電源B1,可以用電池或者超級(jí)電容器(0.
68、1F 以上)。雖然DS1302 在主電源掉電后的耗電很小,但是,如果要長(zhǎng)時(shí)間保證時(shí)鐘正常,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V 充電電池。如果斷電時(shí)間較短(幾小時(shí)或幾天)時(shí),就可以用漏電較小的普通電解電容器代替。100 μF 就可以保證1 小時(shí)的正常走時(shí)。DS1302 在第一次加電后,必須進(jìn)行初始化操作。初始化后就可以按正常方法調(diào)整時(shí)間。</p><p> 5.3.2 測(cè)試結(jié)論</p>
69、;<p> 經(jīng)過多次的反復(fù)測(cè)試與分析,可以對(duì)電路的原理及功能更加熟悉,同時(shí)提高了設(shè)計(jì)能力與及對(duì)電路的分析能力.同時(shí)在軟件的編程方面得到更到的提高,對(duì)編程能力得到加強(qiáng).同時(shí)對(duì)所學(xué)的知識(shí)得到很大的提高與鞏固。</p><p><b> 5.4結(jié)論</b></p><p> 在整個(gè)設(shè)計(jì)過程中,發(fā)揮團(tuán)隊(duì)精神,分工合作,充分發(fā)揮人的主觀能動(dòng)性,自主學(xué)習(xí),學(xué)到
70、了許多沒學(xué)到的知識(shí),完成了對(duì)電子鐘的設(shè)計(jì),達(dá)到了預(yù)期的目的。在最初的設(shè)計(jì)中,發(fā)揮“三個(gè)臭皮匠,頂個(gè)諸葛亮”的作用,相互學(xué)習(xí)、相互討論、研究,完成了最初的設(shè)想。在電路焊接時(shí)雖然沒什么大問題,但從中也知道了焊接在整個(gè)作品中的重要性,電路工程量大,不能心急,一個(gè)個(gè)慢慢來不能急于求成,反而達(dá)到事半功倍的效果。對(duì)電路的設(shè)計(jì)、布局要先有一個(gè)好的構(gòu)思,才顯得電路板美觀、大方。程序編寫中,由于思路不清晰,開始時(shí)遇到了很多的問題,經(jīng)過靜下心來思考,理清了
71、思路,終于能夠完成它。在此次設(shè)計(jì)中,知道了做凡事要有一顆平常的心,不要想著走捷徑,一步一腳印。也練就了我們的耐心,做什么事都在有耐心。此次設(shè)計(jì)中學(xué)到了很多很多東西,這是最重要的。</p><p><b> 結(jié)束語</b></p><p> 本次的設(shè)計(jì)是以單片機(jī)技術(shù)為核心,軟硬件結(jié)合的方法來實(shí)現(xiàn)電子萬年歷的設(shè)計(jì)與實(shí)現(xiàn)。在設(shè)計(jì)過程中,我遇到了諸多的問題,例如時(shí)間不會(huì)設(shè)
72、置、有些程序是不是該有等問題,促使我翻閱了大量的資料,才對(duì)這些問題有了進(jìn)一步的認(rèn)識(shí)最終完成了程序的編程。在這期間使我對(duì)于89C51芯片這個(gè)重要的芯片以及LED數(shù)碼管都有了更深入的了解,更使我對(duì)單片機(jī)這門課程有了全新的認(rèn)識(shí)。與此同時(shí),使我獵取了許多專業(yè)課沒有涉及的東西,提高了閱讀能力,增強(qiáng)了翻閱資料的意識(shí),也擴(kuò)大了學(xué)習(xí)專業(yè)知識(shí)的視野,同時(shí),在設(shè)計(jì)的過程中,也得到了指導(dǎo)老師各方面的指導(dǎo)和幫助,對(duì)在以后工作中設(shè)計(jì)電路積累了豐富的經(jīng)驗(yàn)。<
73、/p><p><b> 參考文獻(xiàn)</b></p><p> 劉 勇 數(shù)字電路 電子工業(yè)出版社 2004</p><p> 陳正振 電子電路設(shè)計(jì)與制作 廣西交通職業(yè)技術(shù)學(xué)院信息工程系 2007</p><p> 楊子文 單片機(jī)原理及應(yīng)用 西安電子科技大學(xué)出版社 2006</p><p>
74、 王法能 單片機(jī)原理及應(yīng)用 科學(xué)出版社 2004</p><p> 曹琳琳 單片機(jī)原理及接口技術(shù) 北京:國(guó)防科技大學(xué)出版社,2000年.</p><p> 許惠民 單片微型計(jì)算機(jī)原理、接口及應(yīng)用 北京:北京郵電大學(xué)出版社,2000年.</p><p> 康華光 電子技術(shù)基礎(chǔ) 北京:高等教育出版社,2001年.</p><p
75、><b> 謝 辭</b></p><p> 畢業(yè)設(shè)計(jì)的完成,為我的大學(xué)學(xué)習(xí)生活畫下了最后一筆。應(yīng)該感謝的人很多,首先感謝學(xué)院給我們提供了一個(gè)展現(xiàn)自己的舞臺(tái),給我們一次難得煅煉的機(jī)會(huì),使得我們的動(dòng)手能力和專業(yè)技能都有了很大的提高。在做論文設(shè)計(jì)的日子里得到了指導(dǎo)教師的悉心指導(dǎo),在此向我們的指導(dǎo)教師致以誠(chéng)摯的謝意。感謝提供相關(guān)技術(shù)幫助的老師和同學(xué),你們的支持和鼓勵(lì)使我們對(duì)這次的作品完
76、成有了信心和動(dòng)力,也給了我們很多無私的幫助和支持,我們?cè)诖松畋碇x意。</p><p> 在本論文完成之際,首先要向我的指導(dǎo)老師田平老師致以誠(chéng)摯的謝意!在設(shè)計(jì)過程當(dāng)中,田老師給了我許許多多的幫助和關(guān)懷。田平老師知識(shí)淵博、治學(xué)嚴(yán)謹(jǐn),待人平易近人,在他的悉心指導(dǎo)下我不僅學(xué)到了扎實(shí)的專業(yè)知識(shí),同時(shí)他對(duì)工作的積極熱情、認(rèn)真負(fù)責(zé)、有條不紊、實(shí)事求是的態(tài)度,給我留下了深刻的印象,使我受益非淺。同時(shí),還要感謝和我一起的席丹、葉
77、鑫、王森等同學(xué)的幫助,是他們不分晝夜的搜集資料和探討才有了這次設(shè)計(jì)的完成。</p><p> 在此我謹(jǐn)向田老師表示衷心的感謝,是他給了我這次機(jī)會(huì),才能夠使自己對(duì)電子設(shè)計(jì)有了更深的了解。在完成本次設(shè)計(jì)的過中,除了自己收集的相關(guān)資料以外,最重要的是指導(dǎo)老師不辭辛苦的認(rèn)真的指導(dǎo),使在設(shè)計(jì)中遇到的問題迎刃而解,同時(shí),也在無形中又重新給我上了一課,使我對(duì)專業(yè)知識(shí)的掌握又上了一層更高的臺(tái)階。</p><
78、p> 最后再次感謝向給予我?guī)椭乃欣蠋熗瑢W(xué)們。</p><p> 附錄一:系統(tǒng)程序清單</p><p> 萬年歷程序 </p><p> 67H(高兩位年)66H(低兩位年)65H(月)64H(星期);63H(日)62H(小時(shí))61H(分)60H(秒)57H(農(nóng)歷月)56H(農(nóng)歷日);顯示緩沖單元7CH~7BH(4CH~4BH)年低位
79、,7AH~79H(4AH~49H)月;78H(48H)星期,77H~76H(47H~46H)日,75H~74H(45H~44H)時(shí);73H72H(43H~42H)分,71H~70H(41H~40H)秒,5EH~5DH(55H~54H)農(nóng)歷年;5CH~5BH(53H~52H)農(nóng)歷月,5AH~59H(51H~50H)農(nóng)歷日</p><p> ;閏年標(biāo)志為F0,定時(shí)器T1為調(diào)整時(shí)候閃爍用。</p>&l
80、t;p> SCLK EQU P3.2</p><p> IO EQU P3.3</p><p> RST EQU P3.4</p><p> YEAR DATA 66H</p><p> MONTH DATA 65H</p><p> WEEK DATA 64H</p>
81、;<p> DAY DATA 63H</p><p> HOUR DATA 62H</p><p> MINTUE DATA 61H</p><p> SECOND DATA 60H</p><p> DS1302_ADDR DATA 32H</p><p> DS1302_DATA
82、DATA 31H</p><p> ORG 0000H</p><p> AJMP START</p><p> ORG 0003H</p><p><b> RETI</b></p><p> ORG 000BH</p><p><b> RE
83、TI</b></p><p> ORG 0013H</p><p><b> RETI</b></p><p> ORG 001BH</p><p> LJMP INTT1</p><p> ORG 0023H</p><p><b>
84、 RETI</b></p><p> ORG 002BH</p><p><b> RETI</b></p><p> 《 主程序 》 </p><p> START: SETB EA</p><p> MOV SCON,#00H ;串
85、行輸出,方式0</p><p> MOV TMOD,#10H ;計(jì)數(shù)器1,方式1</p><p> MOV TL1,#00H</p><p> MOV TH1,#00H</p><p> MOV DS1302_ADDR,#8EH</p><p> MOV DS1302_DATA,#00H ;允許寫1
86、302</p><p> LCALL WRITE</p><p> MOV DS1302_ADDR,#90H</p><p> MOV DS1302_DATA,#0A6H</p><p> ;1302充電,充電電流1.1mA</p><p> LCALL WRITE</p><p>
87、 MAIN1: MOV DS1302_ADDR,#8DH ;READ OUT YEAR</p><p> LCALL READ</p><p> MOV YEAR,DS1302_DATA</p><p> MOV DS1302_ADDR,#8BH ;READ OUT WEEK</p><p> LCALL READ</
88、p><p> MOV WEEK,DS1302_DATA</p><p> MOV DS1302_ADDR,#89H ;READ OUT MONTH</p><p> LCALL READ</p><p> MOV MONTH,DS1302_DATA</p><p> MOV DS1302_ADDR,#87
89、H ;READ OUT DAY</p><p> LCALL READ</p><p> MOV DAY,DS1302_DATA</p><p> MOV DS1302_ADDR,#85H ;READ OUT HOUR</p><p> LCALL READ</p><p> MOV H
90、OUR,DS1302_DATA</p><p> MOV DS1302_ADDR,#83H ;READ OUT MINTUE</p><p> LCALL READ</p><p> MOV MINTUE,DS1302_DATA</p><p> MOV DS1302_ADDR,#81H ;READ OUT SECOND
91、</p><p> LCALL READ</p><p> MOV SECOND,DS1302_DATA</p><p> MOV R0,YEAR ;年分離,送顯示緩存</p><p> LCALL DIVIDE</p><p> MOV 7BH,R1</p><p> MOV
92、4BH,R1</p><p> MOV 7CH,R2</p><p> MOV 4CH,R2</p><p> MOV 78H,WEEK</p><p> MOV 48H,WEEK</p><p> MOV R0,MONTH ;月分離,送顯示緩存</p><p> LCALL DI
93、VIDE</p><p> MOV 79H,R1</p><p> MOV 49H,R1</p><p> MOV 7AH,R2</p><p> MOV 4AH,R2</p><p> MOV R0,DAY ;日分離,送顯示緩存</p><p> LCALL DIVIDE<
94、;/p><p> MOV 76H,R1</p><p> MOV 46H,R1</p><p> MOV 77H,R2</p><p> MOV 47H,R2</p><p> MOV R0,HOUR ;小時(shí)分離,送顯示緩存</p><p> LCALL DIVIDE</p&g
95、t;<p> MOV 74H,R1</p><p> MOV 44H,R1</p><p> MOV 75H,R2</p><p> MOV 45H,R2</p><p> MOV R0,MINTUE ;分分離,送顯示緩存</p><p> LCALL DIVIDE</p>
96、<p> MOV 72H,R1</p><p> MOV 42H,R1</p><p> MOV 73H,R2</p><p> MOV 43H,R2</p><p> MOV R0,SECOND ;秒分離,送顯示緩存</p><p> LCALL DIVIDE</p><
97、p> MOV 70H,R1</p><p> MOV 40H,R1</p><p> MOV 71H,R2</p><p> MOV 41H,R2</p><p> LCALL DISPLAY</p><p> LCALL GENGXIN ;更新農(nóng)歷程序</p><
98、p> JNB P1.1,SETG</p><p> JNB F0,SSS</p><p> CLR P1.3 ; 閏月,則p1.3清0,指示燈亮</p><p> LJMP MAIN1</p><p> SSS: SETB P1.3 ;非閏月,則p1.3置位,指示燈滅</p><p> LJM
99、P MAIN1</p><p> 《 公歷設(shè)置程序 》</p><p> SETG: SETB TR1</p><p><b> SETB ET1</b></p><p><b> CLR 08H</b></p><p><b>
100、CLR 09H</b></p><p><b> CLR 0AH</b></p><p><b> CLR 0BH</b></p><p><b> CLR 0CH</b></p><p><b> CLR 0DH</b></p&
101、gt;<p><b> CLR 0EH</b></p><p><b> CLR 0FH</b></p><p> MOV DS1302_ADDR,#8EH</p><p> MOV DS1302_DATA,#00H ;允許寫1302</p><p> LCALL WRIT
102、E</p><p> MOV DS1302_ADDR,#80H</p><p> MOV DS1302_DATA,#80H ;1302停止振蕩</p><p> LCALL WRITE</p><p> GWAIT: LCALL DISPLAY</p><p> JNB P1.1,GWAIT</p
103、><p> SETG1: LCALL DISPLAY</p><p> JNB P1.1,SETG2</p><p> JNB P1.2,GADDYEAR</p><p> AJMP SETG1</p><p> GADDYEAR: MOV R7,66H ;年加1</p>
104、<p> LCALL ADD1</p><p><b> MOV 66H,A</b></p><p> CJNE A,#51H,GADDYEAR1</p><p> MOV 66H,#01H</p><p> GADDYEAR1: MOV DS1302_ADDR,#8CH ;年值送1302<
105、;/p><p> MOV DS1302_DATA,66H</p><p> LCALL WRITE</p><p> MOV R0,66H</p><p> LCALL DIVIDE ;年分離送顯示緩沖</p><p> MOV 4BH,R1</p><p> MOV 7BH,R1
106、</p><p> MOV 4CH,R2</p><p> MOV 7CH,R2</p><p> WAITT1: LCALL DISPLAY</p><p> JNB P1.2,WAITT1</p><p> AJMP SETG1</p><p> SETG2: SETB
107、 0AH ;調(diào)月時(shí)閃標(biāo)志</p><p> GWAIT2: LCALL DISPLAY</p><p> JNB P1.1,GWAIT2</p><p> SETG3: LCALL DISPLAY</p><p> JNB P1.1,SETG4</p><p> JNB P1.2,GAD
108、DMONTH</p><p> AJMP SETG3</p><p> GADDMONTH: MOV R7,65H ;月加1</p><p> LCALL ADD1</p><p><b> MOV 65H,A</b></p><p> CJNE A,#13H,GADDMON
109、TH1</p><p> MOV 65H,#01H</p><p> GADDMONTH1:MOV DS1302_ADDR,#88H ;月值送1302</p><p> MOV DS1302_DATA,65H</p><p> LCALL WRITE</p><p> MOV R0,65H</p&g
110、t;<p> LCALL DIVIDE ;月分離送顯示緩沖</p><p> MOV 79H,R1</p><p> MOV 49H,R1</p><p> MOV 7AH,R2</p><p> MOV 4AH,R2</p><p> WAITT2: LCALL DISPLAY
111、</p><p> JNB P1.2,WAITT2</p><p> AJMP SETG3</p><p> SETG4: SETB 0BH ;調(diào)日時(shí)閃標(biāo)志</p><p> GWAIT4: LCALL DISPLAY</p><p> JNB P1.1,GWAIT4</p>
112、<p> SETG5: LCALL DISPLAY</p><p> JNB P1.1,SETG6</p><p> JNB P1.2,GADDDAY</p><p> AJMP SETG5</p><p> GADDDAY: MOV R7,63H ;日加1</p><p>
113、 LCALL ADD1</p><p><b> MOV 63H,A</b></p><p> CJNE A,#32H,GADDDAY1</p><p> MOV 63H,#01H</p><p> GADDDAY1: MOV DS1302_ADDR,#86H ;日值送1302</p>&l
114、t;p> MOV DS1302_DATA,63H</p><p> LCALL WRITE</p><p> MOV R0,63H</p><p> LCALL DIVIDE ;日分離送顯示緩沖</p><p> MOV 76H,R1</p><p> MOV 46H,R1</p>
115、<p> MOV 77H,R2</p><p> MOV 47H,R2</p><p> WAITT3: LCALL DISPLAY</p><p> JNB P1.2,WAITT3</p><p> AJMP SETG5</p><p> SETG6: SETB 0CH ;調(diào)
116、星期時(shí)閃標(biāo)志</p><p> GWAIT6: LCALL DISPLAY</p><p> JNB P1.1,GWAIT6</p><p> SETG7: LCALL DISPLAY</p><p> JNB P1.1,SETG8</p><p> JNB P1.2,GADDWEEK</p&
117、gt;<p> AJMP SETG7</p><p> GADDWEEK: MOV R7,64H ;星期加1</p><p> LCALL ADD1</p><p><b> MOV 64H,A</b></p><p> CJNE A,#08H,GADDWEEK1</p>
118、<p> MOV 64H,#01H</p><p> GADDWEEK1: MOV DS1302_ADDR,#8AH ;星期值送1302</p><p> MOV DS1302_DATA,64H</p><p> LCALL WRITE</p><p> MOV R0,64H</p><p>
119、LCALL DIVIDE ;星期分離送顯示緩沖</p><p> MOV 48H,R1</p><p> MOV 78H,R1</p><p> WAITT4: LCALL DISPLAY</p><p> JNB P1.2,WAITT4</p><p> AJMP SETG7</p>&
120、lt;p> SETG8: SETB 0DH ;調(diào)小時(shí)時(shí)閃標(biāo)志 </p><p> GWAIT8: LCALL DISPLAY</p><p> JNB P1.1,GWAIT8</p><p> SETG9: LCALL DISPLAY</p><p> JNB P1.1,SETG10</p>
121、<p> JNB P1.2,GADDHOUR</p><p> AJMP SETG9</p><p> GADDHOUR: MOV R7,62H ;小時(shí)加1</p><p> LCALL ADD1</p><p><b> MOV 62H,A</b></p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)---萬年歷功能電子時(shí)鐘的設(shè)計(jì)
- 單片機(jī)萬年歷課程設(shè)計(jì)--基于1602液晶顯示的電子時(shí)鐘萬年歷
- 萬年歷電子時(shí)鐘溫度畢業(yè)設(shè)計(jì)
- 萬年歷課程設(shè)計(jì)--萬年歷電子時(shí)鐘
- 基于單片機(jī)的電子萬年歷畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的多功能電子萬年歷設(shè)計(jì)【畢業(yè)設(shè)計(jì)】
- 基于51單片機(jī)的電子萬年歷畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)----基于單片機(jī)的電子萬年歷的設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的萬年歷畢業(yè)設(shè)計(jì)
- 基于單片機(jī)的電子萬年歷的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 開題報(bào)告基于51單片機(jī)設(shè)計(jì)的電子時(shí)鐘萬年歷
- 51基于單片機(jī)的電子萬年歷畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)的多功能電子萬年歷的設(shè)計(jì)
- 開題報(bào)告基于51單片機(jī)設(shè)計(jì)的電子時(shí)鐘萬年歷
- 單片機(jī)的電子萬年歷設(shè)計(jì)
- 基于單片機(jī)的萬年歷設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---基于單片機(jī)萬年歷的設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論