段峰地畢業設計_第1頁
段峰地畢業設計_第2頁
段峰地畢業設計_第3頁
免費預覽已結束,剩余38頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、WORD格式PAGE1 / NUMPAGES41圖書分類號:密級:畢業設計(論文)基于AT89C51單片機的多功能電子萬年歷的設計AT89C51SCM-BASEDELCTRONICDESIGNCALENDAR學生XX段峰學院名稱信電工程學院專業名稱電子信息工程技術指導教師高玉芹2008年5月20日XX工程學院畢業設計(論文)摘要本文介紹了基于AT89C51單片機的多功能電子萬年歷的硬件結構和軟硬件設計方法。系統以AT89C51單片機為控制器,以串行時鐘日歷芯片DS1302記錄日歷和時間,它可以對年、月、日、時、分、秒進行計時,還具有閏年補償等多種功能。萬年歷采用直觀的數字顯示,可以在LED上同

2、時顯示年、月、日、周日、時、分、秒,還具有時間校準等功能。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優點,具有廣闊的市場前景。關鍵字AT89C51;電子萬年歷;DS1302IXX工程學院畢業設計(論文)目錄1緒論11.1課題研究的背景1.1.2課題的研究目的與意義1.1.3課題解決的主要內容1.2系統的總體設計2.2.1系統方案的構想與確定2.2.2器件的選用22.2.1單片機的選擇2.3系統硬件的設計4.3.1系統硬件電路設計4.3.1.1系統硬件框圖4.3.1.2AT89C51單片機4.3.1.38位移位寄存器74LS164(串行輸入,并行輸出)8.3.1.4ds1

3、3021.1.4系統的軟件設計1.4.4.1主程序1.4.4.2從1302讀取日期和時間程序1.55PROTEUS使用1.6.5.1編程環境PROTEU.S1.6.5.2用PROTEUSISIS對電子萬年歷的硬件電路設計1.65.3用PROTEUSISIS進行電子萬年歷的仿真測試2.0結論2.3.致謝2.4.參考文獻2.5.附錄2.6.附錄12.6.IXX工程學院畢業設計(論文)1緒論1.1課題研究的背景隨著科技的快速發展,時間的流逝,從觀太陽、擺鐘到現在電子鐘,人類不斷研究,不斷創新紀錄。它可以對年、月、日、時、分、秒進行計時,還具有閏年補償等多種功能,而且DS1302的使用壽命長,誤差小。

4、對于數字電子萬年歷采用直觀的數字顯示,可以同時顯示年、月、日、時、分、秒和溫度等信息,還具有時間校準等功能。該電路采用AT89C51單片機作為核心,功耗小,能在3V的低壓工作,電壓可選用35V電壓供電。此萬年歷具有讀取方便、顯示直觀、功能多樣、電路簡潔、成本低廉等諸多優點,符合電子儀器儀表的發展趨勢,具有廣闊的市場前景。1.2課題的研究目的與意義二十一世紀是數字化技術高速發展的時代,而單片機在數字化高速發展的時代扮演著極為重要的角色。電子萬年歷的開發與研究在信息化時代的今天亦是當務之急,因為它應用在學校、機關、企業、部隊等單位禮堂、訓練場地、教學室、公共場地等場合,可以說遍及人們生活的每一個角

5、落。所以說電子萬年歷的開發是國家之所需,社會之所需,人民之所需。由于社會對信息交換不斷提高的要求及高新技術的逐步發展,促使電子萬年歷發展并且投入市場得到廣泛應用。1.3課題解決的主要內容本課題所研究的電子萬年歷是單片機控制技術的一個具體應用,主要研究內容包括以下幾個方面:(1)選用電子萬年歷芯片時,應重點考慮功能實在、使用方便、單片存儲、低功耗、抗斷電的器件。(2)根據選用的電子萬年歷芯片設計外圍電路和單片機的接口電路。(3)在硬件設計時,結構要盡量簡單實用、易于實現,使系統電路盡量簡單。(4)根據硬件電路圖,在開發板上完成器件的焊接。(5)根據設計的硬件電路,編寫控制AT89C51芯片的單片

6、機程序。(6)通過編程、編譯、調試,把程序下載到單片機上運行,并實現本設計的功能。(7)在硬件電路和軟件程序設計時,主要考慮提高人機界面的友好性,方便用戶操作等因素。(8)軟件設計時必須要有完善的思路,要做到程序簡單,調試方便。1XX工程學院畢業設計(論文)2系統的總體設計單片機電子萬年歷的制作有多種方法,可供選擇的器件和運用的技術也有很多種。所以,系統的總體設計方案應在滿足系統功能的前提下,充分考慮系統使用的環境,所選的結構要簡單使用、易于實現,器件的選用著眼于合適的參數、穩定的性能、較低的功耗以及低廉的成本。2.1系統方案的構想與確定系統的功能往往決定了系統采用的結構,經過成本,性能,功耗

7、等多方面的考慮決定用三個8位74LS164串行接口外接LED顯示器,RESPACK-8對單片機AT89C51進行供電,時間芯片DS1302連接單片機AT89C51。從而實現電子萬年歷的功能。2.2器件的選用單片機AT89C51電容RESPACK-8三個74LS164串行接口傳感器DS13022.2.1單片機的選擇單片機自70年代問世以來以微處理器(MPU)技術及超大規模集成電路技術的發展為先導,用廣泛的應用領域拉動得到蓬勃發展,單片機功能正日漸完善。單片機的應用,使許多領域的技術水平和自動化程度大大提高,可以說當今世界正在經受一場以單片機技術為標志的新技術革命浪潮的沖擊。主要單片機類型如下:(

8、1)MCS-51系列單片機MCS-51系列單片機主要是指Intel公司生產的以51位內核的單片機芯片,具有8位CPU、4K字節ROM、128字節RAM、可擴展外部64K字節RAM和ROM、2個16位的定時器/計數器、4個8位并行I/O口、1個全雙工串行I/O口、21字節的專用寄存器、5個中斷源、片內自帶振蕩器、片內單總線等功能部件。(2)AT89C51單片機AT89C51單片機的主要特性如下:與MCS-51產品指令系統完全兼容4K字節的在線編程Flash存儲器,1000次擦寫周期4.05.5V的工作電壓X圍全靜態工作模式:033MHz三級程序存儲器鎖1288字節內部RAM2XX工程學院畢業設計

9、(論文)32個可編程I/O口線2個16位定時/計數器6個中斷源全雙工串行UART通道低功耗空閑和掉電模式中斷可從空閑模式喚醒系統看門狗(WD)T及雙數據指針掉電標識和快速編程特性具有掉電狀態下的中斷恢復功能靈活的在系統編程(ISP字節或頁寫模式)由于AT89C51單片機片內有4K字節的在線編程Flash存儲器,可以擦寫1000次,具有掉電模式,而且具有掉電狀態下的中斷恢復功能,對設計開發非常實用。所以選用AT89C51單片機作為電子萬年歷芯片的控制單片機。3XX工程學院畢業設計(論文)3系統硬件的設計根據上述所確定的系統方案構想,下面進行系統硬件電路的具體設計,系統的總體結構框圖如圖所示。3.

10、1系統硬件電路設計3.1.1系統硬件框圖系統硬件框圖如圖3-1串口LED顯示器AT89C51時鐘芯片DS1302驅動電路P2口圖3-1系統硬件框圖3.1.2AT89S51單片機本系統采用的是美國ATMEL公司生產的AT89C51單片機,首先我們來熟悉一下AT89C51單片機的外部引腳和內部結構。1.單片機的引腳功能AT89C51單片機有40個引腳。Vcc:電源電壓+5VGND:接地P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數據總線復用口。作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址(

11、低8位)和數據總線服用,在訪問期間激活內部上拉電阻。在Flash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時要求4XX工程學院畢業設計(論文)外接上拉電阻。P1口:P1口是一個帶內部上拉電阻的8位雙向I/O,P1的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。Flash編程和程序校驗期間,P1接收低8位地址。P2口:P2口是一個帶內部上拉電阻的8位雙向I/O,P2的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。

12、對端口寫“1”,通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數據存儲器(例如執行MOVXDP指TR令)時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器(MOVXR指i令)時,P2口線上的內容(也即特殊功能寄存器(SFR)區中P2寄存器的內容),在整個訪問期間不改變。Flash編程和程序校驗期間,P2亦接收低高位地址和其他控制信號。P3口:P3口是一組帶內部上拉電阻的8位雙向I/O,P3的輸出緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”

13、時,它們被內部的上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能,見表3-1所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。表3-1P3口的第二功能圖端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INT0(外中斷0)P3.3INT1(外中斷1)P3.4T0(定時/計時器0外部輸入)P3.5T1(定時/計時器1外部輸入)P3.6WR(外部數據存儲器寫選通)P3.7RD(外部數據存儲器讀選通)RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器

14、周期以上高電平將使單片機復位。WDT溢出將使引腳輸出高電平,設置SFRAUXR的DISRT0(地址8EH)可打開或關閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態。ALE/PRO:G當訪問外部程序存儲器或數據存儲器時,ALE(地址鎖存器允許)輸出5XX工程學院畢業設計(論文)脈沖用于鎖存地址的低8位字節。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(PRO)G。如有必要,可通過多特殊功能寄存器(SFR)區中的

15、8EH單元的D0位置,可禁止ALE操作。該位置后,只有一條MOVX和MOVC指令ALE才會被激活。另外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE無效。PSEN:程序存儲允許(PSEN)輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器取指令(或數據)時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當訪問外部數據存儲器,沒有兩次有效的PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需要注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平(接Vcc端),C

16、PU則執行內部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的變成電壓Vpp.XTAL1:振蕩器反相放大器及內部時鐘發生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。AT89C51單片機內部結構2.AT89C51單片機與MCS-51完全兼容看門狗(WD)T:WD是T一種需要軟件控制的復位方式。WDT由13位計數器和特殊功能寄存器中的看門狗定時器復位存儲器(WDTRS)T構成。WDT在默認情況下無法工作;為了激活WD,T用戶必須往WDTRST寄存器(地址:0A6H)中依次寫入01EH和0E1H。當WDT激活后,晶振工作,WD在T每個機器周期都會增加。WD計T時周期依賴于外部時

17、鐘頻率。除了復位(硬件復位或WD溢T出復位),沒有辦法停止WD工T作。當WD溢T出,它將驅動RSR引腳輸出一個高電平。可編程串口(UART)在AT89C51中,UART的操作與AT89C51和AT89C52一樣。AT89C51系列單片機的串行通信口可以工作于同步和異步通信方式。當工作于異步方式時,它具有全雙工的操作功能,也就是說,它可以同時進行數據的致和接收。串行口內的接收器采用的是雙緩沖結構,能夠在接收到的第一個字節從接收寄存器讀走之前就開始接收第二個字節(當然,如果第二個字節接收完畢,而第一個字節仍然沒有被讀走,那將會丟掉一個字節)。串行口的致和接收操作都是通過特殊功能寄存器中的數據緩沖寄

18、存器SBUF進行的,但在SBUF的內部,接收寄存器和致寄存器在物理結構上是完全獨立的。如果將數據寫入SBUF,數據會被送入致寄存器準備致。如果執行SBUF指令,則讀出的數據一定來自接收緩存器。因此,CPU對SBUF的讀寫,實際上是分別訪問2個不同的寄存器。這2個寄存器的功能決不能混淆。6XX工程學院畢業設計(論文)振蕩電路:AT89C51系列單片機的內部振蕩器,由一個單極反相器組成。XTAL1反相器的輸入,XTAL2為反相器的輸出。可以利用它內部的振蕩器產生時鐘,只要XTAL1和XTAL2引腳上一個晶體及電容組成的并聯諧振電路,便構成一個完整的振蕩信號發生器,此方式稱為內部方式。另一種方式由外

19、部時鐘源提供一個時鐘信號到XTAL1端輸入,而XTAL2端浮空。在組成一個單片機應用系統時,多數采用這種方式,這種方式結構緊湊,成本低廉,可靠性高。在電路中,對電容C1和C2的值要求不是很嚴格,如果使用高質的晶振,則不管頻率為多少,C1、C2通常都選擇30pF。定時/計數器:AT89C51單片機內含有2個16位的定時器/計數器。當用于定時器方式時,定時器的輸入來自內部時鐘發生電路,每過一個機器周期,定時器加1,而一個機器周期包含有12個振蕩周期,所以,定時器的技術頻率為晶振頻率的1/12,而計數頻率最高為晶振頻率的1/24。為了實現定時和計數功能,定時器中含有3種基本的寄存器:控制寄存器、方式

20、寄存器和定時器/計數器。控制寄存器是一個8位的寄存器,用于控制定時器的工作狀態,方式寄存器是一個8位的寄存器,用于確定定時器的工作方式,定時器/計數器是16位的計數器,分為高字節和低字節兩部分。RAM:高于7FH內部數據存儲器的地址是8位的,也就是說其地址空間只有256字節,但內部RAM的尋址方式實際上可提供384字節。的直接地址訪問同一個存儲空間,高于7FH的間接地址訪問另一個存儲空間。這樣,雖然高128字節區分與專用寄器,即特殊功能寄存器區的地址是重合的,但實際上它們是分開的。究竟訪問哪一區,存是通過不同的尋址方式加以區分的。SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22個不同

21、寄存器,它們的地址分配在80HFFH中。雖然如此,不是所有的單元都被特殊功能寄存器占用,未被占用的單元,其內容是不確定的。如對這些單元進行讀操作,得到的是一些隨機數,而寫入則無效,所以在編程時不應該將數據寫入這些未確定的地址單元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序狀態字寄存器PSW、堆棧指針SP、數據指針DPTR、I/O端口、串行口數據緩沖器SBUF、定時器寄存器、捕捉寄存器、控制寄存器。中斷系統:AT89C51單片機有6個中斷源,中斷系統主要由中斷允許寄存器IE、中斷優先級寄存器IP、優先級結構和一些邏輯門組成。IE寄存器用于允許或禁止中斷;IP寄存器用于確定中斷源的優先級別

22、;優先級結構用于執行中斷源的優先排序;有關邏輯門用于輸入中斷請求信號。在整個中斷響應過程中CPU所執行的操作步驟如下:(1)完成當前指令的操作(2)將PC內容壓入堆棧(3)保存當前的中斷狀態(4)阻止同級的中斷請求(5)將中斷程序入口地址送PC寄存器(6)執行中斷服務程序7XX工程學院畢業設計(論文)(7)返回3.1.38位移位寄存器74LS164(串行輸入,并行輸出)74LS164為8位移位寄存器,其主要電特性的典型值如表3-2:表3-274LS164主要電特性典型值型號fmPn54/7416436MHz185mW54/74LS16436MHz80mW當清除端(CLEAR)為低電平時,輸出端

23、(QAQH)均為低電平。串行數據輸入端(A,B)可控制數據。當A、B任意一個為低電平時停止新數據輸入,在時鐘端(CLOC)K脈沖上升沿作用下Q0為低電平。當有一個為高電平,則另一個就允許輸入數據,并在CLOCK上升沿作用Q0的狀態。引出端符號CLOCK時鐘輸入端CLEAR同步清除輸入端(低電平有效)A,B串行數據輸入端QAQH輸出端邏輯及封裝圖,如3-2,3-3圖3-2邏輯圖8XX工程學院畢業設計(論文)圖3-3封裝圖極限值電源電壓,7V輸入電壓,5.5V工作環境溫度54164,-5512574164,-070儲存溫度,-65150表3-3真值表H高電平L低電平X任意電平低到高電平跳變QA0,

24、QB0,QH0規定的穩態條件建立前的電平QAn,QGn時鐘最近的前的電平時序圖如下3-49XX工程學院畢業設計(論文)圖3-4時序圖推薦工作條件如表3-4:表3-4推薦工作條件靜態特性(TA為工作環境溫度X圍)如表3-510XX工程學院畢業設計(論文)表3-5工作環境溫度X圍1:測試條件中的“最小”和“最大”用推薦工作條件中的相應值。動態特性(TA=25)如表3-6表3-6動態特性2:fmax最大時鐘頻率。tPLH輸出由低電平到高電平傳輸延遲時間tPHL輸出由高電平到低電平傳輸延遲時間3.1.4ds1302現在流行的串行時鐘電路很多,如DS1302、DS1307、PCF8485等。這些電路的接

25、口簡單、價格低廉、使用方便,被廣泛地采用。本文介紹的實時時鐘電路DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,主要特點是采用串行數據傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。采用普通32.768kHz晶振。DS1302是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個318的用于臨時性存放數據的RAM寄存器。DS1302是DS12

26、02的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。11XX工程學院畢業設計(論文)DS1302的引腳排列,其中Vcc1為后備電源,Vcc2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許

27、地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc2.5V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK始終是輸入端。DS1302的控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址

28、;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1902,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。此外,DS1302還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。DS13

29、02與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。DS1902與89C2051的連接圖,其中,時鐘的顯示用LED。DS1302與CPU的連接,實際上,在調試程序時可以不加電容器,只加一個32.768kHz的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS

30、18B20,同時顯示實時溫度。只要占用CPU一個口線即可。LED還可以換成LCD,還可以使用衛信杰科技發展XX生產的10位多功能8段液晶顯示模塊LCM101,內含看門狗(WDT)/時鐘發生器及兩種頻率的蜂鳴器驅動電路,并有內置顯示RAM,可顯示任意字段筆劃,具有34線串行接口,可與任何單片機、IC接口。功耗低,顯示狀態時電流為2A(典型值),省電模式時小于1A,工作電壓為2.4V3.3V,顯示清晰。DS1302的實時時間流程。根據流程框圖,不難采集實時時間。下面對DS1302的基本12XX工程學院畢業設計(論文)操作進行編程:根據本人在調試中遇到的問題,特作如下說明:DS1302與微處理器進行

31、數據交換時,首先由微處理器向電路致命令字節,命令字節最高位MSB(D7必)須為邏輯1,如果D7=0,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數據,D6=1,指定RAM數據;D5D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入),D0=1,指定讀操作(輸出)。在DS1302的時鐘日歷或RAM進行數據傳送時,DS1302必須首先致命令字節。若進行單字節傳送,8位命令字節傳送結束之后,在下2個SCLK周期的上升沿輸入數據字節,或在下8個SCLK周期的下降沿輸出數據字節。DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個

32、8位的字節,其命令控制字為C0HFDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節。要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池。可以用老式電腦主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100F就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調整時間。DS1302存在時鐘精度不高,易受環境影響,出

33、現時鐘混亂等缺點。DS1302可以用于數據記錄,特別是對某些具有特殊意義的數據點的記錄,能實現數據與出現該數據的時間同時記錄。這種記錄對長時間的連續測控系統結果的分析及對異常數據出現的原因的查找具有重要意義。傳統的數據記錄方式是隔時采樣或定時采樣,沒有具體的時間記錄,因此,只能記錄數據而無法準確記錄其出現的時間;若采用單片機計時,一方面需要采用計數器,占用硬件資源,另一方面需要設置中斷、查詢等,同樣耗費單片機的資源,而且,某些測控系統可能不允許。但是,如果在系統中采用時鐘芯片DS1302,則能很好地解決這個問題。13XX工程學院畢業設計(論文)4系統的軟件設計電子萬年歷的功能是在程序控制下實現

34、的。該系統的軟件設計方法與硬件設計相對應,按整體功能分成多個不同的程序模塊,分別進行設計、編程和調試,最后通過主程序將各程序模塊連接起來。這樣有利于程序修改和調試,增強了程序的可移植性。4.1主程序主程序如圖4-1所示:開始讀年、月、日送第一塊LED顯示讀星期、閏、年、日送第二塊LED顯示讀時、分、秒送第三塊LED顯示返回圖4-1主程序圖14XX工程學院畢業設計(論文)4.2從1302讀取日期和時間程序開始系統初始化N需要調整時間嗎?Y調整時間和日期讀1302日期和時間圖4-2從1302讀取程序15XX工程學院畢業設計(論文)5PROTEUS使用5.1編程環境PROTEUSPROTEUS軟件是

35、由英國LabCenterElectronics公司開發的EDA工具軟件,由ISIS和ARES兩個軟件構成,其中ISIS是一款便捷的電子系統仿真平臺軟件,ARES是一款高級的布線編輯軟件,它集成了高級原理布線圖、混合模式SPICE電路仿真、PCB設計以及自動布線來實現一個完整的電子設計。5.2用PROTEUSISIS對電子萬年歷的硬件電路設計通過PROTEUSISIS軟件的VSM(虛擬仿真技術),用戶可以對模擬電路、數字電路、模數混合電路,以及基于微控制器的系統連同所有外圍接口電子元器件一起仿真。用PROTEUSISIS設計硬件電路的過程選擇設計圖紙的到小根據設計所使用到元器件的多少,選擇合適大

36、小的設計圖紙,操作是單擊菜單欄上的SystemSetSheetSize,然后彈出如圖5-1所示的對話框,從中選擇合適大小的圖紙,也可以選擇User進行圖紙的自定義設置。在設計過程中也可以通過此方法調整圖紙的大小。圖5-1選取仿真所需的元器件選取元器件的方式是,單擊如圖5-2所示的按鈕“P”。會彈出如圖5-3所示的窗口。16XX工程學院畢業設計(論文)圖5-2圖5-3從此窗口的左上角的“Keywords”中輸入電子萬年歷設計用到的器件,如輸入“AT89C51”,在中間會列出帶有輸入關鍵字的元器件,選擇合適的元器件并雙擊它,則已經選擇好了該元器件。然后再在“Keywords”中輸入其他所需的元器件

37、,用同樣的方法進行操作。最后選擇好所有的元器件如圖5-4所示。17XX工程學院畢業設計(論文)圖5-4所用器件其中74LS174表示三個串行接口,AT89C51代表單片機會,DS1302代表時鐘芯片,RESPACK-代8表八排電阻。把元器件放到圖紙的合適位置,進行布線單擊如圖5-4所示的元器件AT89C51,再在右邊圖紙上單擊,就把元器件放入到了圖紙上。再用同樣的方法把ds1302放入到圖紙的合適位置。如果元器件放置錯誤,這可通過兩次右擊刪除所放置的元器件,如果位置放得不理想,可以先右擊該器件,然后按住左鍵進行移動。在布線之前,如果覺得元器件的引腳的方向不好布線,則可以通過單擊這四個按鈕進行調

38、整,這四按鈕的意思分別是:順時針旋轉90,逆時針旋轉90,沿Y軸對稱,沿X軸對稱。通過這樣的調整,可以使整個布局合理一些。接著進行布線,由于PROTEUISSIS有自動布線的功能,比如要把AT89C51的P2口連到74LS164的OUT8口,只要先在P2引腳上單擊一下,再在OUT8引腳上單擊,則ISIS自動將兩個引腳連上線。18XX工程學院畢業設計(論文)圖5-5at89c51與ds1302的連接ISIS還提供了網絡布線,即不使用線連接也可以把兩個引腳虛擬的連接了起來。具體操作是:單擊要連線的一個引腳,連出適當的距離后雙擊,另一個引腳也同樣操作,在單擊如圖6-5所示的“LBL”按鈕,再在圖中P

39、0.1引腳的A處單擊,在彈出的窗口中的“String”中填入名稱,如“A”,對OUT7引腳進行同樣的操作,在“String”中也填入名稱“A”,這樣就完成了P3.4引腳與RES引腳的網絡連接,這個好處避免兩個距離比較遠的器件進行真實線的連接,使布線美觀。編輯窗口連接端子要讓最后的設計成功仿真時,必須放置并連接端子。選擇,從中可以選擇電路原理中的兩個通用的端子,一個是接地,一個是電源。如圖5-6所示。圖5-6連接端子19XX工程學院畢業設計(論文)在PROTEUSISIS中的最終設計圖如圖5-7所示圖5-7仿真圖最后分別對各元器件的屬性值進行設置,單擊按鈕,進行電氣檢測,查看接線是否合理,說明硬

40、件電路已經順利的完成。5.3用PROTEUSISIS進行電子萬年歷的仿真測試添加Keil中編寫的代碼文件單擊工具欄中的SourceAdd/RemoveSourcefiles.,彈出一個對話框,分別單擊“New”,然后選擇在Keil中編寫的數字電壓表.ASM匯編語言程序,單擊“OK”,完成添加代碼文件。編譯源程序,生成.HEX目標代碼文件單擊SourceBuildAll。如果編譯結果沒有錯誤,會出現如圖5-8所示的結果。20XX工程學院畢業設計(論文)圖5-8加載.HEX目標代碼文件通過如圖5-9所示的對話框,選擇剛才編譯生成的.HEX文件。設置使單片機的運行頻率為6MHz。圖5-9單擊按鈕,進

41、行對電子萬年歷的仿真測試,運行結果如圖5-10所示。21XX工程學院畢業設計(論文)圖5-10仿真測試PROTEU的S調試功能由于使用的是匯編語言編寫的程序,如果在測量的時候測量值顯示錯誤,說明程序中存在問題,這個問題只用在仿真測量的時候才能被發現,這時可以使用PROTEUS對程序進行調試。單擊按鈕,再單擊菜單欄中的Debug,可以在最下面選擇打開內存觀察窗口,寄存器值觀察窗口,匯編語言源代碼窗口等等。在匯編語言源代碼窗口中,也可以在所需要設置斷點的語句前雙擊設置斷點,當設置斷點的時候,程序運行到所設斷點處停止,從而可以在內存、寄存器等的值的變化,從而找出程序出錯的地方。22XX工程學院畢業設

42、計(論文)結論本課題從理論到實際應用,用AT89C51單片機與8位模數轉換芯片74LS164等一些電路的組合,成功的設計出了一個電子萬年歷。而且所設計的電子萬年歷設計也按當初要求的能夠在PROTEU中S進行仿真,并且能夠很精確的顯示年歷。可以說該電子萬年歷具有很高的實用價值。在軟件設計的過程中,利用了Keil這個軟件在程序錄入和調試的時候的優越性,讓我能夠在編寫軟件的時候很方便的發現軟件中的錯誤,現在已經能夠使用Keil對所設計的程序進行調試。對于PROTEU這S款軟件,也能熟練掌握電路設計仿真。由于平時沒有接觸過這兩個軟件,加上畢業設計的時間有限,對于他們的連接調試程序,未能熟練掌握,但以后

43、有機會的話會再好好學習的。本次設計的電子萬年歷也存在的不足的地方,有待于以后的改進。23XX工程學院畢業設計(論文)致謝經過三個多月的時間,畢業設計按照預期完成了,由于本人的知識水平有限,論文和設計中有遺漏和缺陷的地方懇請指正。感謝我的導師高玉芹老師給了我莫大的幫助,在她悉心的指導和嚴格的要求下,作品和論文順利完成了。論文從選題和最終完成,凝結著導師的辛勤的汗水,她不辭勞苦的教導、嚴謹的作風使我終生受益。在此畢業設計完成之際,謹向導師和所有幫助過我的老師致以崇高的敬意和衷心的感謝。還有感謝家人、朋友還有宿舍里所有的室友,是他們給我創造了良好的學習氛圍,在學習和生活中給了我支持和幫助。在以后的學

44、習生活中我會時時敦促自己更加努力,不辜負師長、親人、朋友對我的期望。24XX工程學院畢業設計(論文)參考文獻1趙長德.微型計算機原理與接口技術M.:機械工業,1999:98-350.2蘇平.單片機的原理與接口技術M.:電子工業,2006:1-113.3王忠民.微型計算機原理M.XX:XX科技大學,2003:15-55.4胡戴明.計算機組成原理M.:經濟科學,2005:43-56.5紀宗南.單片機外圍器件使用手冊M.:航空航天大學,622-655.6周雪.模擬電子技術MXX:XX電子科技大學,2005:81-95.7左金生.電子與模擬電子技術M.:電子工業,2004:105-131.8尹勇.單片

45、機開發環境Vision2的開發指南M.:航空航天大學,2004:173-199.9X斌武.單片機系統Proteus設計與仿真M.:電子工業,2005:52-89.25XX工程學院畢業設計(論文)附錄附錄1源代碼DELAYC#defineDELAY_C#include”includesh”#defineXTAL12voiddelay_lus(void)asm(”nop:”)voiddelay_nus(unsignedintn)unsignedinti=0;for(i=0;in;i+)delay_lus();voiddelay_ims(void)unsignedinti;for(i=0:i(uns

46、ignedint)(XTAL*143-2);i+);voiddelay_nms(unsignedintn)unsignedinti=0;for(i=0;in;i+)delay_ims();DSl302C#include”includesh”#defineDSl302_Cunsignedcharbflag;unsignedcharbpm;unsignedcharget_hours(void)unsignedchar;iunsignedcharR_Byte;unsignedcharTmpByte;reset();write(0 x85);ddr_set_io();R_Byte=0 x00;26XX

47、工程學院畢業設計(論文)Prt_clear_io();ddr_clear_io();for(i:0;i4;i+)TmpByte=0;if(pinp&(1io)TmpByte=1;TmpByte=1;R_ByteI=TmpByte;Prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2);bflag=0;if(pinp&(1io)bflag=l;prt_set_clk();delay_nus(2);prt_clear_clk();delay_nus(2);bpm=0;if(pinp&(1=4;returnR_Byte;unsignedchar

48、readbyte(unsignedcharw_byte)unsignedchartemp;reset();write(w_byte);temp=read();prt_clear_rst();prt_clear_clk();returntemp;voidwritebyte(unsignedcharw_byte,unsignedcharw_2_byte)reset();27XX工程學院畢業設計(論文)write(w_byte);write(w_2_byte);prt_clear_rst();prt_clear_clk();voidreset(void)ddr_set_rst();prt_clear

49、_clk();prt_clear_rst();prt_set_rst();voidwrite(unsignedcharW_Byte)unsignedchar;iDDRC=0 xFF;for(i=0;i=1;unslgnedcharread(void)unsignedchar;iunsignedcharR_Byte;unsignedcharR_Byte2;unsignedcharTmpByte;ddr_set_io();R_Byte=0 x00;R_Byte2=0 x00;prt_clear_io();ddr_clear_io();for(i=0;i4;i+)getthefirst4bitsTm

50、pByte=0;if(pinp&(1io)28XX工程學院畢業設計(論文)TmpByte=1;TmpByte=0 x80;TmpByte1);/R_Byte=1;R_Byte|=TmpByte;prt_set_clk();delay_nus(1);/delay_nus(2);prt_chear_clk();delay_nus(1);delay_nus(2);for(i=0;i4;i+)TmpByte=0;if(pinp&(1io)TmpByte=1;TmpByte=0 x80;TmpByte1);R_Byte2=l;R_Byte2|=TmpByte;Prt_set_clk();delay_nu

51、s(1):delay_nus(2);prt_clear_clk();delay_nus(1);delay_nus(2);R_Byte=4;R_Byte2=4;R_Byte=(R_Byte2*10)+R_Byte;returnR_Byte;HD44780C#include”includesh”#defineHD44780_Cvoidlcd_pulse(void)Icdsete()delay_nms(1);Icd_clear_e();delay_nms(1);voidicd_wait(void)asm(”nop;”)voidicd_send(unsignedchardata)29XX工程學院畢業設

52、計(論文)Lcd_wait();dataport=data;lcd_pulse();voidclrscr(void)lcd_clear_rs();lcd_clear_rw();icd_send(0 x01);lcd_wait();voidgotoz(unsignedcharz)lcd_clear_rs();lcd_clear_rw();lcd_send(z|0 x80);voidgotoxy(unsignedcharx,unsignedchary)gotoz(x)|(y)(6);voidput_char(charc)lcd_clear_rw();lcd_set_rs();lcd_send(c)

53、;voidouttext(unsignedchar*text)unsignedchar;ifor(i=0;texti&i16;i+)put_char(texti);voidinitgraph(void)dirport_data:0 xFF;dirport_con|=(LCD_E|LCD_RS|LCD_RW);lcd_clear_rs();lcd_clear_rw();lcd_send(0 x3C);lcd_send(0 x3C);lcd_send(0 x3C);30XX工程學院畢業設計(論文)lcd_send(0 x06);lcd_send(0 x0C);#defineLCD_C#includ

54、e”includesh”voidLCD_INIT(void)LCD_DIR_PORT=0 xff;LCD_0Pl_PORT=0 x30;lcd_clear_rw();lcd_clear_rs();lcd_set_e();asm(”nop;”)asm(”nop;”)icd_clear_e();delay_nus(40);icd_clear_rw();icd_clear_rs();lcd_set_e();asm(”nop;”)asm(”nop;”)icd_clear_e();delay_nus(40);icd_set_e();asm(”nop:”)asm(”nop;”)lcd_clear_e();

55、delay_nus(40);LCD_OP_PORT=0 x20;icd_set_e();asm(”nop;”)asm(”nop;“)lcd_clear_e();delay_nus(40);voidLCD_Busy(void)unsignedchartemp,high;unsignedcharlow;LCD_DIR_PORT=0 x0f;doteap=LCD_OP_PORT;temp=temp&BIT3;LCD_OP_PORT=temp;Lcd_set_rw();SetLCDtoREAD31XX工程學院畢業設計(論文)lcd_clear_rs();lcd_set_e();delay_nus(3)

56、;high=LCD_IP_PORT;lcd_clear_e();lcd_set_e();asm(”nop;”)asm(”nop;”)low=LCDIPPORT;lcd_clear_e();while(high0 x80);delay_nus(20);voidLCD_WriteControl(unsignedcharCMD)chartemp;LCD_Busy();LCD_DIR_PORT=0 xff;temp=LCD_OP_PORT;temp=temp&BIT3:LCD_OP_PORT=(CMD0 xf0)|temp;lcd_clear_rw();lcd_clear_rs();lcd_set_e

57、();asm(”nop”;)asm(”nop;”)lcd_clear_e();LCD_OP_PORT=(CMD4)|temp;lcd_clear_rw();lcd_clear_rs();lcd_set_e();asm(”nop”);asm(”nop”);lcd_clear_e();voidLCD_WriteData(unsiqnedcharData)chartempLCD_Busy();LCD_DIR_PORT=0 xFF;temp=LCD_OP_PORT;temp=temp&BIT3;LCD_OP_PORT=(Data0 xf0)|temp;lcd_clear_rw();SetLCDtowr

58、itelcd_set_rs();lcd_set_e();32XX工程學院畢業設計(論文)asm(”nop;”)asm(”nop”);lcd_clear_e();LCD_OP_PORT=(Data4)|temp;lcd_clear_rw();lcd_set_rs();lcd_set_e();asm(”nop;”)asm(”nop;”)lcd_clear_e();*初始化液晶*voidInit_LCD(void)LCD_INIT();LCD_WriteControl(LCD_FUNCTION_SET);LCD_WriteControl(LCD_OFF);LCD_WriteControl(LCD_C

59、LEAR);LCD_WriteControl(LCD_MODE_SET);LCD_WriteControl(LCD_ON);LCD_WrlteControl(LCD_HOME);LCD_WriteControl(0 x90);*/*清屏*voidLCD_Clear(void)LCD_WriteControl(0 x01);*移動光標到0行0列*voidLCD_Home(void)LCD_WriteControl(0 x02);*顯示字符,在當前光標處*voidLCD_DisplayCharacter(charChar)LCD_WriteData(Char);33XX工程學院畢業設計(論文)*在Flash中、在指定的行和列顯示一個字符串*voidLCD_DisplayString_F(charrOW,charcolumn,unsignedchar_flash*string)LCD_Cursor(row,column);while(*string)LCD_DisplayCharacter(*string+);*在RAM中、在指定的行和列顯示一個字符串*voidLCD_DisplayString(charrow,charcolumn,unsignedchar*st

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論