版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 課 程 設(shè) 計 報 告</p><p><b> 多功能數(shù)字萬年歷 </b></p><p> 系(部): 理學(xué)院 </p><p> 實習(xí)單位: 理學(xué)院實驗室 </p><p> 班 級: 物理101
2、 </p><p> 學(xué)生姓名: </p><p> 學(xué) 號: </p><p> 帶隊教師: </p><p> 時間: 2013年 12月 2日 到 2013年 12月 6
3、日</p><p><b> 成 績 評 定 表</b></p><p><b> 摘要</b></p><p> 本文介紹了基于AT89C51單片機的多功能電子萬年歷的硬件結(jié)構(gòu)和軟硬件設(shè)計方法。系統(tǒng)以AT89C51單片機為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進行計時,
4、還具有閏年補償?shù)榷喾N功能。萬年歷采用直觀的數(shù)字顯示,可以在LED上同時顯示年、月、日、周日、時、分、秒,還具有時間校準等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,具有廣闊的市場前景。</p><p> 關(guān)鍵字:AT89C51;電子萬年歷; DS1302</p><p><b> 目錄</b></p><p&g
5、t;<b> 1 緒論1</b></p><p> 1.1課題研究的背景1</p><p> 1.2課題的研究目的與意義1</p><p> 1.3課題解決的主要內(nèi)容1</p><p> 2 系統(tǒng)的總體設(shè)計2</p><p> 2.1系統(tǒng)方案的構(gòu)想與確定2</p>
6、;<p> 2.2 器件的選用2</p><p> 2.2.1單片機的選擇2</p><p> 3 系統(tǒng)硬件的設(shè)計4</p><p> 3.1系統(tǒng)硬件電路設(shè)計4</p><p> 3.1.1系統(tǒng)硬件框圖4</p><p> 3.1.2 AT89C51單片機4</p>
7、<p> 3.1.3 8位移位寄存器74LS164(串行輸入,并行輸出)8</p><p> 3.1.4 ds130210</p><p> 4 系統(tǒng)的軟件設(shè)計11</p><p> 4.1 主程序12</p><p> 4.2 從1302讀取日期和時間程序12</p><p> 5 P
8、ROTEUS使用13</p><p> 5.1編程環(huán)境PROTEUS13</p><p> 5.2用PROTEUS 對電子萬年歷的硬件電路設(shè)計14</p><p> 5.3用PROTEUS 進行電子萬年歷的仿真測試15</p><p><b> 結(jié)論17</b></p><p>
9、<b> 致謝18</b></p><p><b> 參考文獻19</b></p><p><b> 附錄20</b></p><p><b> 1 緒論</b></p><p> 1.1 課題研究的背景</p><p
10、> 隨著科技的快速發(fā)展,時間的流逝,從觀太陽、擺鐘到現(xiàn)在電子鐘,人類不斷研究,不斷創(chuàng)新紀錄。它可以對年、月、日、時、分、秒進行計時,還具有閏年補償?shù)榷喾N功能,而且DS1302的使用壽命長,誤差小。對于數(shù)字電子萬年歷采用直觀的數(shù)字顯示,可以同時顯示年、月、日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用AT89C51單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用3~5V電壓供電?! 〈巳f年歷具有讀取方便、顯示
11、直觀、功能多樣、電路簡潔、成本低廉等諸多優(yōu)點,符合電子儀器儀表的發(fā)展趨勢,具有廣闊的市場前景。</p><p> 1.2課題的研究目的與意義</p><p> 二十一世紀是數(shù)字化技術(shù)高速發(fā)展的時代,而單片機在數(shù)字化高速發(fā)展的時代扮演著極為重要的角色。電子萬年歷的開發(fā)與研究在信息化時代的今天亦是當(dāng)務(wù)之急,因為它應(yīng)用在學(xué)校、機關(guān)、企業(yè)、部隊等單位禮堂、訓(xùn)練場地、教學(xué)室、公共場地等場合,可
12、以說遍及人們生活的每一個角落。所以說電子萬年歷的開發(fā)是國家之所需,社會之所需,人民之所需。</p><p> 由于社會對信息交換不斷提高的要求及高新技術(shù)的逐步發(fā)展,促使電子萬年歷發(fā)展并且投入市場得到廣泛應(yīng)用。</p><p> 1.3課題解決的主要內(nèi)容</p><p> 本課題所研究的電子萬年歷是單片機控制技術(shù)的一個具體應(yīng)用,主要研究內(nèi)容包括以下幾個方面:&l
13、t;/p><p> ?。?)選用電子萬年歷芯片時,應(yīng)重點考慮功能實在、使用方便、單片存儲、低功耗、抗斷電的器件。</p><p> ?。?)根據(jù)選用的電子萬年歷芯片設(shè)計外圍電路和單片機的接口電路。</p><p> ?。?)在硬件設(shè)計時,結(jié)構(gòu)要盡量簡單實用、易于實現(xiàn),使系統(tǒng)電路盡量簡單。</p><p> ?。?)根據(jù)硬件電路圖,在開發(fā)板上完成器
14、件的焊接。</p><p> ?。?)根據(jù)設(shè)計的硬件電路,編寫控制AT89C51芯片的單片機程序。</p><p> ?。?)通過編程、編譯、調(diào)試,把程序下載到單片機上運行,并實現(xiàn)本設(shè)計的功能。</p><p> ?。?)在硬件電路和軟件程序設(shè)計時,主要考慮提高人機界面的友好性,方便用戶操作等因素。</p><p> ?。?)軟件設(shè)計時必須要
15、有完善的思路,要做到程序簡單,調(diào)試方便。</p><p><b> 2 系統(tǒng)的總體設(shè)計</b></p><p> 單片機電子萬年歷的制作有多種方法,可供選擇的器件和運用的技術(shù)也有很多種。所以,系統(tǒng)的總體設(shè)計方案應(yīng)在滿足系統(tǒng)功能的前提下,充分考慮系統(tǒng)使用的環(huán)境,所選的結(jié)構(gòu)要簡單使用、易于實現(xiàn),器件的選用著眼于合適的參數(shù)、穩(wěn)定的性能、較低的功耗以及低廉的成本。<
16、/p><p> 2.1系統(tǒng)方案的構(gòu)想與確定</p><p> 系統(tǒng)的功能往往決定了系統(tǒng)采用的結(jié)構(gòu),經(jīng)過成本,性能,功耗等多方面的考慮決定用三個8位74LS164串行接口外接LED顯示器,RESPACK-8對單片機AT89C51進行供電,時間芯片DS1302連接單片機AT89C51。從而實現(xiàn)電子萬年歷的功能。</p><p><b> 2.2 器件的選用&
17、lt;/b></p><p> 單片機AT89C51</p><p> 電容RESPACK-8</p><p> 三個74LS164串行接口</p><p><b> 傳感器DS1302</b></p><p> 2.2.1單片機的選擇</p><p>
18、單片機自70年代問世以來以微處理器(MPU)技術(shù)及超大規(guī)模集成電路技術(shù)的發(fā)展為先導(dǎo),用廣泛的應(yīng)用領(lǐng)域拉動得到蓬勃發(fā)展,單片機功能正日漸完善。單片機的應(yīng)用,使許多領(lǐng)域的技術(shù)水平和自動化程度大大提高,可以說當(dāng)今世界正在經(jīng)受一場以單片機技術(shù)為標志的新技術(shù)革命浪潮的沖擊。主要單片機類型如下:</p><p> (1)MCS-51系列單片機</p><p> MCS-51系列單片機主要是指Int
19、el公司生產(chǎn)的以51位內(nèi)核的單片機芯片,具有8位CPU、4K字節(jié)ROM、128字節(jié)RAM、可擴展外部64K字節(jié)RAM和ROM、2個16位的定時器/計數(shù)器、4個8位并行I/O口、1個全雙工串行I/O口、21字節(jié)的專用寄存器、5個中斷源、片內(nèi)自帶振蕩器、片內(nèi)單總線等功能部件。</p><p> ?。?)AT89C51單片機</p><p> AT89C51單片機的主要特性如下:</p&
20、gt;<p> 與MCS-51產(chǎn)品指令系統(tǒng)完全兼容</p><p> 4K字節(jié)的在線編程Flash存儲器,1000次擦寫周期</p><p> 4.0~5.5V的工作電壓范圍</p><p> 全靜態(tài)工作模式:0~33MHz</p><p><b> 三級程序存儲器鎖</b></p>
21、<p> 128×8字節(jié)內(nèi)部RAM </p><p> 32個可編程I/O口線</p><p> 2個16位定時/計數(shù)器</p><p><b> 6個中斷源</b></p><p> 全雙工串行UART通道</p><p> 低功耗空閑和掉電模式</p&g
22、t;<p> 中斷可從空閑模式喚醒系統(tǒng)</p><p> 看門狗(WDT)及雙數(shù)據(jù)指針</p><p> 掉電標識和快速編程特性</p><p> 具有掉電狀態(tài)下的中斷恢復(fù)功能</p><p> 靈活的在系統(tǒng)編程(ISP字節(jié)或頁寫模式)</p><p> 由于AT89C51單片機片內(nèi)有4K字節(jié)
23、的在線編程Flash存儲器,可以擦寫1000次,具有掉電模式,而且具有掉電狀態(tài)下的中斷恢復(fù)功能,對設(shè)計開發(fā)非常實用。所以選用AT89C51單片機作為電子萬年歷芯片的控制單片機。</p><p><b> 3 系統(tǒng)硬件的設(shè)計</b></p><p> 根據(jù)上述所確定的系統(tǒng)方案構(gòu)想,下面進行系統(tǒng)硬件電路的具體設(shè)計,系統(tǒng)的總體結(jié)構(gòu)框圖如圖所示。</p>&
24、lt;p> 3.1系統(tǒng)硬件電路設(shè)計</p><p> 3.1.1系統(tǒng)硬件框圖</p><p> 系統(tǒng)硬件框圖如圖3-1</p><p> 圖3-1 系統(tǒng)硬件框圖</p><p> 3.1.2 AT89S51單片機</p><p> 本系統(tǒng)采用的是美國ATMEL公司生產(chǎn)的AT89C51單片機,首先我們來
25、熟悉一下AT89C51單片機的外部引腳和內(nèi)部結(jié)構(gòu)。</p><p> 1.單片機的引腳功能</p><p> AT89C51單片機有40個引腳。</p><p> Vcc:電源電壓+5V</p><p><b> GND:接地</b></p><p> P0口:P0口是一組8位漏極開路型
26、雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。</p><p> 在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線分時轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線服用,在訪問期間激活內(nèi)部上拉電阻。</p><p> 在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時要求外接上拉電阻。</p>
27、<p> P1口:P1口是一個帶內(nèi)部上拉電阻的8位雙向I/O,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。</p><p> Flash 編程和程序校驗期間,P1接收低8位地址。</p><p> P2口:P
28、2口是一個帶內(nèi)部上拉電阻的8位雙向I/O,P2的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。</p><p> 在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX@DPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(
29、MOVX @Ri指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不改變。</p><p> Flash 編程和程序校驗期間,P2亦接收低高位地址和其他控制信號。</p><p> P3口:P3口是一組帶內(nèi)部上拉電阻的8位雙向I/O,P3的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部的上拉電阻拉高并
30、可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,見表3-1所示:</p><p> P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。</p><p> 表3-1 P3口的第二功能圖</p><p> RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以
31、上高電平將使單片機復(fù)位。WDT溢出將使引腳輸出高電平,設(shè)置SFR AUXR的DISRT0(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。</p><p> ALE/PROG:當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存器允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的
32、。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。</p><p> 對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PROG)。</p><p> 如有必要,可通過多特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置,可禁止ALE操作。該位置后,只有一條MOVX和MOVC指令A(yù)LE才會被激活。另外,該引腳會被微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。</
33、p><p> PSEN:程序存儲允許(PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的PSEN信號。</p><p> EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000H—FFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加
34、密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。</p><p> 如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。</p><p> Flash存儲器編程時,該引腳加上+12V的變成電壓Vpp.</p><p> XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。</p><p> XTAL2:振蕩器反相放大器
35、的輸出端。</p><p> AT89C51單片機內(nèi)部結(jié)構(gòu)</p><p> 2.AT89C51單片機與MCS-51完全兼容 </p><p> 看門狗(WDT):WDT是一種需要軟件控制的復(fù)位方式。WDT 由13位計數(shù)器和特殊功能寄存器中的看門狗定時器復(fù)位存儲器(WDTRST)構(gòu)成。WDT 在默認情況下無法工作;為了激活WDT,用戶必須往WDTRST 寄存器
36、(地址:0A6H)中依次寫入01EH 和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個機器周期都會增加。WDT計時周期依賴于外部時鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動RSR引腳輸出一個高電平。</p><p> 可編程串口(UART)在AT89C51中,UART 的操作與AT89C51 和AT89C52 一樣。AT89C51系列單片機的串行通信口可以工作
37、于同步和異步通信方式。當(dāng)工作于異步方式時,它具有全雙工的操作功能,也就是說,它可以同時進行數(shù)據(jù)的發(fā)送和接收。串行口內(nèi)的接收器采用的是雙緩沖結(jié)構(gòu),能夠在接收到的第一個字節(jié)從接收寄存器讀走之前就開始接收第二個字節(jié)(當(dāng)然,如果第二個字節(jié)接收完畢,而第一個字節(jié)仍然沒有被讀走,那將會丟掉一個字節(jié))。串行口的發(fā)送和接收操作都是通過特殊功能寄存器中的數(shù)據(jù)緩沖寄存器SBUF進行的,但在SBUF的內(nèi)部,接收寄存器和發(fā)送寄存器在物理結(jié)構(gòu)上是完全獨立的。如果
38、將數(shù)據(jù)寫入SBUF,數(shù)據(jù)會被送入發(fā)送寄存器準備發(fā)送。如果執(zhí)行SBUF指令,則讀出的數(shù)據(jù)一定來自接收緩存器。因此,CPU對SBUF的讀寫,實際上是分別訪問2個不同的寄存器。這2個寄存器的功能決不能混淆。</p><p> 振蕩電路:AT89C51系列單片機的內(nèi)部振蕩器,由一個單極反相器組成。XTAL1反相器的輸入,XTAL2為反相器的輸出。可以利用它內(nèi)部的振蕩器產(chǎn)生時鐘,只要XTAL1和XTAL2引腳上一個晶體及
39、電容組成的并聯(lián)諧振電路,便構(gòu)成一個完整的振蕩信號發(fā)生器,此方式稱為內(nèi)部方式。另一種方式由外部時鐘源提供一個時鐘信號到XTAL1端輸入,而XTAL2端浮空。在組成一個單片機應(yīng)用系統(tǒng)時,多數(shù)采用這種方式,這種方式結(jié)構(gòu)緊湊,成本低廉,可靠性高。在電路中,對電容C1和C2的值要求不是很嚴格,如果使用高質(zhì)的晶振,則不管頻率為多少,C1、C2通常都選擇30pF。</p><p> 定時/計數(shù)器:AT89C51單片機內(nèi)含有2
40、個16位的定時器/計數(shù)器。當(dāng)用于定時器方式時,定時器的輸入來自內(nèi)部時鐘發(fā)生電路,每過一個機器周期,定時器加1,而一個機器周期包含有12個振蕩周期,所以,定時器的技術(shù)頻率為晶振頻率的1/12,而計數(shù)頻率最高為晶振頻率的1/24。為了實現(xiàn)定時和計數(shù)功能,定時器中含有3種基本的寄存器:控制寄存器、方式寄存器和定時器/計數(shù)器??刂萍拇嫫魇且粋€8位的寄存器,用于控制定時器的工作狀態(tài),方式寄存器是一個8位的寄存器,用于確定定時器的工作方式,定時器/
41、計數(shù)器是16位的計數(shù)器,分為高字節(jié)和低字節(jié)兩部分。</p><p> RAM:高于7FH內(nèi)部數(shù)據(jù)存儲器的地址是8位的,也就是說其地址空間只有256字節(jié),但內(nèi)部RAM的尋址方式實際上可提供384字節(jié)。的直接地址訪問同一個存儲空間,高于7FH的間接地址訪問另一個存儲空間。這樣,雖然高128字節(jié)區(qū)分與專用寄器 ,即特殊功能寄存器區(qū)的地址是重合的,但實際上它們是分開的。究竟訪問哪一區(qū),存是通過不同的尋址方式加以區(qū)分的。
42、</p><p> SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22個不同寄存器,它們的地址分配在80H~FFH中。雖然如此,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內(nèi)容是不確定的。如對這些單元進行讀操作,得到的是一些隨機數(shù),而寫入則無效,所以在編程時不應(yīng)該將數(shù)據(jù)寫入這些未確定的地址單元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序狀態(tài)字寄存器PSW、堆棧指針SP、數(shù)據(jù)指針DPT
43、R、I/O端口、串行口數(shù)據(jù)緩沖器SBUF、定時器寄存器、捕捉寄存器、控制寄存器。</p><p> 中斷系統(tǒng):AT89C51單片機有6個中斷源,中斷系統(tǒng)主要由中斷允許寄存器IE、中斷優(yōu)先級寄存器IP、優(yōu)先級結(jié)構(gòu)和一些邏輯門組成。IE寄存器用于允許或禁止中斷;IP寄存器用于確定中斷源的優(yōu)先級別;優(yōu)先級結(jié)構(gòu)用于執(zhí)行中斷源的優(yōu)先排序;有關(guān)邏輯門用于輸入中斷請求信號。在整個中斷響應(yīng)過程中CPU所執(zhí)行的操作步驟如下:&l
44、t;/p><p> ?。?)完成當(dāng)前指令的操作</p><p> ?。?)將PC內(nèi)容壓入堆棧</p><p> (3)保存當(dāng)前的中斷狀態(tài)</p><p> ?。?)阻止同級的中斷請求</p><p> ?。?)將中斷程序入口地址送PC寄存器</p><p> ?。?)執(zhí)行中斷服務(wù)程序</p&
45、gt;<p><b> (7)返回</b></p><p> 3.1.3 8位移位寄存器74LS164(串行輸入,并行輸出)</p><p> 74LS164為8位移位寄存器,其主要電特性的典型值如表3-2:</p><p> 表3-2 74LS164主要電特性典型值</p><p> 當(dāng)清除端(
46、CLEAR)為低電平時,輸出端(QA-QH)均為低電平。</p><p> 串行數(shù)據(jù)輸入端(A,B)可控制數(shù)據(jù)。當(dāng)A、B任意一個為低電平時停止新數(shù)據(jù)輸入,在時鐘端(CLOCK)脈沖上升沿作用下Q0為低電平。當(dāng)有一個為高電平,則另一個就允許輸入數(shù)據(jù),并在CLOCK上升沿作用Q0的狀態(tài)。</p><p><b> 引出端符號</b></p><p&
47、gt; CLOCK 時鐘輸入端</p><p> CLEAR 同步清除輸入端(低電平有效)</p><p> A,B 串行數(shù)據(jù)輸入端</p><p> QA-QH 輸出端</p><p> fmax最大時鐘頻率。tPLH輸出由低電平到高電平傳輸延遲時間tPHL輸出由高電平到低電平傳輸延遲時間</p>
48、;<p> 3.1.4 ds1302 </p><p> 現(xiàn)在流行的串行時鐘電路很多,如DS1302、 DS1307、PCF8485等。這些電路的接口簡單、價格低廉、使用方便,被廣泛地采用。本文介紹的實時時鐘電路DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,主要特點是采用串行數(shù)據(jù)傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關(guān)閉充電功能。采用普通32.768kHz晶振。
49、</p><p> DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS12
50、02兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 </p><p> DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,
51、外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc≥2.5V之前,RST必須保持低電平。
52、只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK始終是輸入端。 DS1302 的控制字節(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示</p><p> DS1302的實時時間流程。根據(jù)流程框圖,不難采集實時時間。下面對DS1302的基本操作進行編程: </p><p&
53、gt; 根據(jù)本人在調(diào)試中遇到的問題,特作如下說明: DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位MSB(D7)必須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時鐘日歷或RAM
54、進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)
55、。 要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是</p><p><b> 4 系統(tǒng)的軟件設(shè)計</b></p><p> 電子萬年歷的功能是在程序控制下實現(xiàn)的。該系統(tǒng)的軟件設(shè)計方法與硬件設(shè)計相對應(yīng),按整體功能分成多個不同的程序模塊,分別進行設(shè)計、編程和調(diào)試,最后通過主程序?qū)⒏鞒绦蚰K
56、連接起來。這樣有利于程序修改和調(diào)試,增強了程序的可移植性。</p><p><b> 4.1 主程序</b></p><p> 主程序如圖4-1所示:</p><p><b> 圖4-1 主程序圖</b></p><p> 4.2 從1302讀取日期和時間程序</p><
57、p> 圖4-2 從1302讀取程序</p><p> 5 PROTEUS使用</p><p> 5.1編程環(huán)境PROTEUS</p><p> PROTEUS軟件是由英國LabCenter Electronics 公司開發(fā)的EDA工具軟件,由ISIS和ARES兩個軟件構(gòu)成,其中ISIS是一款便捷的電子系統(tǒng)仿真平臺軟件,ARES是一款高級的布線編輯軟件,
58、它集成了高級原理布線圖、混合模式SPICE電路仿真、PCB設(shè)計以及自動布線來實現(xiàn)一個完整的電子設(shè)計。</p><p> 5.2用PROTEUS 對電子萬年歷的硬件電路設(shè)計</p><p> 通過PROTEUS ISIS軟件的VSM(虛擬仿真技術(shù)),用戶可以對模擬電路、數(shù)字電路、模數(shù)混合電路,以及基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真。</p><p&g
59、t; 用PROTEUS ISIS設(shè)計硬件電路的過程</p><p> ?、?選擇設(shè)計圖紙的到小</p><p> 根據(jù)設(shè)計所使用到元器件的多少,選擇合適大小的設(shè)計圖紙,操作是單擊菜單欄上的System→Set Sheet Size ,然后彈出如圖5-1所示的對話框,從中選擇合適大小的圖紙,也可以選擇User進行圖紙的自定義設(shè)置。在設(shè)計過程中也可以通過此方法調(diào)整圖紙的大小。</p&
60、gt;<p> ② 選取仿真所需的元器件 </p><p> 從此窗口的左上角的“Keywords”中輸入電子萬年歷設(shè)計用到的器件,如輸入“AT89C51”,在中間會列出帶有輸入關(guān)鍵字的元器件,選擇合適的元器件并雙擊它,則已經(jīng)選擇好了該元器件。然后再在“Keywords”中輸入其他所需的元器件,用同樣的方法進行操作。最后選擇好所有的元器件如圖5-4所示。</p><p>
61、 圖 5-4 所用器件</p><p> 其中74LS174表示三個串行接口,AT89C51代表單片機會,DS1302代表時鐘芯片,RESPACK-8代表八排電阻。</p><p> ?、?把元器件放到圖紙的合適位置,進行布線</p><p> 單擊如圖5-4所示的元器件AT89C51,再在右邊圖紙上單擊,就把元器件放入到了圖紙上。再用同樣的方法把ds1302
62、放入到圖紙的合適位置。如果元器件放置錯誤,這可通過兩次右擊刪除所放置的元器件,如果位置放得不理想,可以先右擊該器件,然后按住左鍵進行移動。在布線之前,如果覺得元器件的引腳的方向不好布線,則可以通過單擊這四個按鈕進行調(diào)整,這四按鈕的意思分別是:順時針旋轉(zhuǎn)90°,逆時針旋轉(zhuǎn)90°,沿Y軸對稱,沿X軸對稱。通過這樣的調(diào)整,可以使整個布局合理一些。接著進行布線,由于PROTEUS ISIS有自動布線的功能,比如要把AT89C
63、51的P2口連到74LS164的OUT8口,只要先在P2引腳上單擊一下,再在OUT8引腳上單擊,則ISIS自動將兩個引腳連上線。</p><p> ④ 編輯窗口連接端子</p><p> 要讓最后的設(shè)計成功仿真時,必須放置并連接端子。選擇,從中可以選擇電路原理中的兩個通用的端子,一個是接地,一個是電源。如圖5-6所示。</p><p><b> 圖
64、5-6連接端子</b></p><p> 在PROTEUS 中的最終設(shè)計圖如圖5-7所示</p><p><b> 圖 5-7仿真圖</b></p><p> 最后分別對各元器件的屬性值進行設(shè)置,單擊按鈕,進行電氣檢測,查看接線是否合理,說明硬件電路已經(jīng)順利的完成。</p><p> 5.3用PROT
65、EUS ISIS進行電子萬年歷的仿真測試</p><p> ① 添加Keil中編寫的代碼文件</p><p> 單擊工具欄中的Source→Add/Remove Source files...,彈出一個對話框,分別單擊“New” ,然后選擇在Keil中編寫的數(shù)字電壓表.ASM匯編語言程序,單擊“OK” ,完成添加代碼文件。</p><p> ?、?編譯源程序,生
66、成.HEX目標代碼文件</p><p> 單擊Source→Build All。如果編譯結(jié)果沒有錯誤,會出現(xiàn)如圖5-8所示的結(jié)果。</p><p><b> 圖5-8</b></p><p> ?、蹎螕舭粹o,進行對電子萬年歷的仿真測試,運行結(jié)果如圖5-10所示。</p><p><b> 圖5-10仿真測
67、試</b></p><p> ④PROTEUS的調(diào)試功能</p><p> 由于使用的是匯編語言編寫的程序,如果在測量的時候測量值顯示錯誤,說明程序中存在問題,這個問題只用在仿真測量的時候才能被發(fā)現(xiàn),這時可以使用PROTEUS對程序進行調(diào)試。單擊按鈕,再單擊菜單欄中的Debug,可以在最下面選擇打開內(nèi)存觀察窗口,寄存器值觀察窗口,匯編語言源代碼窗口等等。在匯編語言源代碼窗口
68、中,也可以在所需要設(shè)置斷點的語句前雙擊設(shè)置斷點,當(dāng)設(shè)置斷點的時候,程序運行到所設(shè)斷點處停止,從而可以在內(nèi)存、寄存器等的值的變化,從而找出程序出錯的地方。</p><p><b> 結(jié)論</b></p><p> 本課題從理論到實際應(yīng)用,用AT89C51單片機與8位模數(shù)轉(zhuǎn)換芯片74LS164等一些電路的組合,成功的設(shè)計出了一個電子萬年歷。而且所設(shè)計的電子萬年歷設(shè)計也
69、按當(dāng)初要求的能夠在PROTEUS中進行仿真,并且能夠很精確的顯示年歷??梢哉f該電子萬年歷具有很高的實用價值。</p><p> 在軟件設(shè)計的過程中,利用了Keil這個軟件在程序錄入和調(diào)試的時候的優(yōu)越性,讓我能夠在編寫軟件的時候很方便的發(fā)現(xiàn)軟件中的錯誤,現(xiàn)在已經(jīng)能夠使用Keil對所設(shè)計的程序進行調(diào)試。對于PROTEUS這款軟件,也能熟練掌握電路設(shè)計仿真。由于平時沒有接觸過這兩個軟件,加上畢業(yè)設(shè)計的時間有限,對于他
70、們的連接調(diào)試程序,未能熟練掌握,但以后有機會的話會再好好學(xué)習(xí)的。</p><p> 本次設(shè)計的電子萬年歷也存在的不足的地方,有待于以后的改進。</p><p><b> 致謝</b></p><p> 首先,感謝*老師給我們這樣一次歷練的機會,是你從一開始帶著什么都不懂的我們走進了電子、電路,感謝您嚴謹?shù)慕虒W(xué)態(tài)度和詼諧幽默的教學(xué)方法,教會
71、了我如何去認識一個未知的東西,特別是對待作業(yè)的態(tài)度,歷練了我們不畏艱難,迎難而上的精神,我想,這會是我一生的財富。</p><p> 其次,我要感謝與我一次努力的同學(xué),正是他們的存在,才讓我有了在沒有頭緒時仍能堅持下去的決心,等到風(fēng)輕云淡,回首發(fā)現(xiàn),那段艱辛而快樂的時光,是值得被記憶的。于此同時,本次課程設(shè)計是對我們自主學(xué)習(xí)以及自覺性學(xué)習(xí)的一次檢查和考驗。</p><p><b&g
72、t; 參考文獻</b></p><p> [1] 趙長德.微型計算機原理與接口技術(shù)[M].北京:機械工業(yè)出版社,1999:98-350.</p><p> [2] 蘇平.單片機的原理與接口技術(shù)[M].北京:電子工業(yè)出版社,2006:1-113.</p><p> [3] 王忠民.微型計算機原理[M].西安:西安科技大學(xué)出版社,2003:15-55
73、.</p><p> [4] 胡戴明.計算機組成原理[M].北京:經(jīng)濟科學(xué)出版社,2005:43-56.</p><p> [5] 紀宗南.單片機外圍器件使用手冊[M].北京:北京航空航天大學(xué)出版社,622-655.</p><p> [6] 周雪.模擬電子技術(shù)[M]西安: 西安電子科技大學(xué)出版社,2005:81-95.</p><p>
74、; [7] 左金生.電子與模擬電子技術(shù)[M].北京:電子工業(yè)出版社,2004:105-131.</p><p> [8] 尹勇.單片機開發(fā)環(huán)境μVision2的開發(fā)指南[M]. 北京:北京航空航天大學(xué)出版社,2004:173-199.</p><p> [9] 張斌武.單片機系統(tǒng)Proteus設(shè)計與仿真[M]. 北京:電子工業(yè)出版社,2005:52-89.</p>&l
75、t;p><b> 附錄</b></p><p> ;這是一個萬年歷的例子-課程的設(shè)計</p><p><b> ;定義變量</b></p><p> K EQU 30H ;T0定時計數(shù)</p><p> MER EQU 31H ;月計數(shù)&l
76、t;/p><p> RER EQU 32H ;日計數(shù)</p><p> SER EQU 33H ;時計數(shù)</p><p> FER EQU 34H ;分計數(shù)</p><p> XQR EQU 35H ;星期計數(shù)</p><p> MM
77、R EQU 36H ;秒計數(shù)</p><p> DA1 EQU 40H ;9個顯示單元的顯示段碼</p><p> DA2 EQU 41H ;第二個</p><p> DA3 EQU 42H ;</p><p> DA4 EQU 43H
78、 ;</p><p> DA5 EQU 44H ;</p><p> DA6 EQU 45H ;</p><p> DA7 EQU 46H ;</p><p> DA8 EQU 47H ;</p><p> DA9 EQ
79、U 48H ;第九個顯示緩存 </p><p><b> ;定義位標志</b></p><p> XSBZ BIT 00H ;</p><p> T0BZ BIT 01H ;</p><p> BLBZ BIT 02H ;</p>&
80、lt;p> LED1 BIT P1.4 ; 1</p><p><b> ;定義端口</b></p><p><b> ;程序部分</b></p><p> ORG 0000H</p><p><b> LJMP MAIN</b></p&
81、gt;<p> ORG 0003H ;</p><p><b> LJMP WZD0</b></p><p> ORG 0013H ;</p><p><b> LJMP T0ZD</b></p><p> // ORG 000BH ;<
82、;/p><p> // LJMP WZD1</p><p> // ORG 001BH ;</p><p> // LJMP T1ZD</p><p> // ORG 0023H ;</p><p> // LJMP UAZD</p><p
83、> ORG 0030H</p><p> TAB1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;共陰段碼</p><p> DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H</p><p> TAB2: DB 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82
84、 ;共陽顯示段碼</p><p> DB 0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1 ;0-F,全滅</p><p> DB 0x86,0x8e,0xff</p><p> MAIN: MOV SP,#5FH;</p><p> MOV A,#0FFH;</p><p&g
85、t; MOV P0,A ;</p><p><b> MOV P1,A</b></p><p><b> MOV P2,A</b></p><p><b> MOV P3,A</b></p><p> MOV TMOD,#20H ;T1方式
86、1</p><p> MOV TH0,#3CH ;50ms定時</p><p> MOV TL0,#0B0H ;</p><p> // MOV SCON,#50H ;方式1,開接收</p><p> // MOV PCON,#00H ;不加倍</p><p> SETB
87、 TR0 ;打開T1</p><p> SETB ET0 ;開T0中斷</p><p> SETB EA ;總中斷</p><p> MOV R7,#9 ;初始化顯示緩存區(qū)</p><p> MOV DPTR,#TAB2 ;送入0-9段碼</p><
88、;p> MOV R0,#30H ;變量首地址</p><p> MOV R1,#40H ;顯緩首地址</p><p> CSXS: CLR A ;</p><p> MOV @R0,A ;清變量</p><p> MOVC A,@A+DPTR ;讀入段碼</p>
89、;<p> MOV @R1,A ;送到顯緩</p><p> INC R1 ;地址加一</p><p> INC R0 ;</p><p> INC DPTR ;</p><p> DJNZ R7,CSXS;</p><p&g
90、t; SETB XSBZ ;置顯示標志</p><p> LOOP: NOP;</p><p> CALL T0CL ;調(diào)定時處理</p><p> CALL XSZC ;調(diào)顯示輸出</p><p> CALL SJCL ;調(diào)數(shù)據(jù)處理</p><p>
91、 SJMP LOOP ;</p><p> SJCL: JB BLBZ,SJCL1 ;數(shù)據(jù)處理,有要求?</p><p><b> RET</b></p><p> SJCL1: MOV R0,#40H ;Y,顯緩首址</p><p> MOV DPTR,#TAB2 ;段碼表
92、首地址</p><p> MOV A,MER ;月份拆分</p><p> MOV B,#10 ;十位數(shù)取出</p><p> DIV AB ;</p><p> MOVC A,@A+DPTR ;取段碼 </p><p> MOV @R0,A ;送
93、顯緩</p><p> INC R0 ;指向下一顯緩</p><p> MOV A,B ;取個位</p><p> MOVC A,@A+DPTR ;取段碼</p><p> MOV @R0,A ;送顯緩</p><p><b> INC R0<
94、;/b></p><p> MOV A,RER ;日拆分</p><p> MOV B,#10 ;十位數(shù)取出</p><p> DIV AB ;</p><p> MOVC A,@A+DPTR ;取段碼 </p><p> MOV @R0,A
95、;送顯緩</p><p> INC R0 ;指向下一顯緩</p><p> MOV A,B ;取個位</p><p> MOVC A,@A+DPTR ;取段碼</p><p> MOV @R0,A ;送顯緩</p><p> INC R0
96、 ; </p><p> MOV A,SER ;時拆分</p><p> MOV B,#10 ;十位數(shù)取出</p><p> DIV AB ;</p><p> MOVC A,@A+DPTR ;取段碼 </p><p> MOV @R0,A ;送
97、顯緩</p><p> INC R0 ;指向下一顯緩</p><p> MOV A,B ;取個位</p><p> MOVC A,@A+DPTR ;取段碼</p><p> MOV @R0,A ;送顯緩</p><p> INC R0 ;&
98、lt;/p><p> MOV A,FER ;分拆分</p><p> MOV B,#10 ;十位數(shù)取出</p><p> DIV AB ;</p><p> MOVC A,@A+DPTR ;取段碼 </p><p> MOV @R0,A ;送顯緩<
99、;/p><p> INC R0 ;指向下一顯緩</p><p> MOV A,B ;取個位</p><p> MOVC A,@A+DPTR ;取段碼</p><p> MOV @R0,A ;送顯緩</p><p> INC R0;</p>&l
100、t;p> MOV A,XQR ;星期拆分</p><p> MOVC A,@A+DPTR ;取段碼</p><p> MOV @R0,A ;送顯緩</p><p> SETB XSBZ ;</p><p><b> RET</b></p><
101、;p> XSZC: JB XSBZ,XSC0 ; 有顯示要求?</p><p> RET ;</p><p> XSC0: CLR XSBZ ;有,清標志</p><p> MOV R7,#9 ;9個單元</p><p> MOV R6,#00H ;
102、第一單元位碼</p><p> MOV R1,#40H ;</p><p> XSC1: MOV A,R6 ;送出位碼</p><p> MOV P2,A;</p><p> MOV A,@R1 ;送出段碼</p><p> MOV P0,A ;
103、</p><p> INC R1 ; 地址加一 </p><p> INC R6 ;</p><p> DJNZ R7,XSC1 ;</p><p><b> RET</b></p><p> T0CL: JB T0BZ,T0CL
104、0 ;</p><p><b> RET</b></p><p> T0CL0: CLR T0BZ ;</p><p> INC K ;</p><p> MOV A,K ;</p><p> CJNE A,#10,TCLM;&
105、lt;/p><p> MOV K,#0 ;</p><p><b> CPL LED1</b></p><p> INC MMR ;</p><p> MOV A,MMR ;</p><p> CJNE A,#120,TCLM ;</p
106、><p> MOV MMR,#0 ;</p><p> INC FER ;</p><p> MOV A,FER ;</p><p> CJNE A,#60,TCLM1 ;</p><p> MOV FER,#0 ;</p><p>
107、 INC SER ;</p><p> MOV A,SER ;</p><p> CJNE A,#24,TCLM1 ;</p><p> MOV SER,#0 ;</p><p> INC XQR ;</p><p> MOV A,XQR
108、 ;</p><p> CJNE A,#8,T0CL1 ;</p><p> MOV XQR,#0 ;</p><p><b> INC XQR</b></p><p> T0CL1: INC RER ;</p><p> MOV A,RER
109、 ;</p><p> CJNE A,#32,TCLM1 ;</p><p> MOV RER,#0 ;</p><p><b> INC RER</b></p><p> INC MER ;</p><p> MOV A,MER ;
110、</p><p> CJNE A,#13,TCLM1 ;</p><p> MOV MER,#0 ; </p><p><b> INC MER </b></p><p> TCLM1: SETB BLBZ ;</p><p> TCLM: NOP<
111、/p><p><b> RET</b></p><p><b> ;中斷程序</b></p><p> WZD0: NOP ;</p><p><b> RETI</b></p><p> WZD1: NOP</
112、p><p><b> RETI </b></p><p> T0ZD: NOP ;</p><p> MOV TH0,#3CH ;50ms定時</p><p> MOV TL0,#0B0H ;</p><p> SETB T0BZ ;</p>
113、<p><b> RETI</b></p><p> T1ZD: NOP</p><p><b> RETI</b></p><p> UAZD: NOP</p><p><b> PUSH PSW</b></p><p><
114、;b> PUSH ACC</b></p><p> JNB RI,UAZD1 ; </p><p> CLR RI ;</p><p> MOV A,SBUF ;</p><p> MOV DPTR,#TAB1 ;</p><p> MOVC A,@A+DPTR
115、 ;</p><p> MOV P0,A ;</p><p> UAZD1: CLR TI ;</p><p><b> POP ACC</b></p><p><b> POP PSW</b></p><p><b>
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多功能電子萬年歷課程設(shè)計
- 單片機課程設(shè)計--多功能數(shù)字萬年歷
- 數(shù)字萬年歷課程設(shè)計
- c語言課程設(shè)計--多功能萬年歷
- 電子電工課程設(shè)計(多功能數(shù)字時鐘--萬年歷)
- 數(shù)字萬年歷課程設(shè)計報告
- 萬年歷課程設(shè)計--萬年歷電子時鐘
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- 萬年歷課程設(shè)計
- java萬年歷課程設(shè)計
- 萬年歷課程設(shè)計報告
- java課程設(shè)計--萬年歷
- 萬年歷課程設(shè)計論文
- 課程設(shè)計-萬年歷系統(tǒng)
- 萬年歷課程設(shè)計報告
評論
0/150
提交評論