電子時鐘設(shè)計DS1302基于51單片機_第1頁
電子時鐘設(shè)計DS1302基于51單片機_第2頁
電子時鐘設(shè)計DS1302基于51單片機_第3頁
電子時鐘設(shè)計DS1302基于51單片機_第4頁
電子時鐘設(shè)計DS1302基于51單片機_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、安 康 學 院單片機課程設(shè)計報告書 課題名稱:電子時鐘的設(shè)計(DS1302)姓 名:學 號:院 系:電子與信息工程系專 業(yè):電子信息工程指導教師:時 間:2012年6月一、設(shè)計任務及要求:1、設(shè)計任務:設(shè)計一個能夠顯示年月日及時分秒的電子時鐘。2、要 求:利用單片機芯片AT89C52,和DS1302芯片,使得數(shù)碼管7SEG-MPX8-A-BLUE顯示年月日和時間,時間和年月日分開顯示,屏幕顯示時間。指導教師簽名: 年 月 日 二、指導教師評語:此次課程設(shè)計,該學生積極參與,積極思考,有問題及時提問,和同學配合良好,充分發(fā)揮了自由創(chuàng)新的設(shè)計思想,并且學會使用芯片AT89C52和Protues軟件

2、實現(xiàn)了具有顯示年月日和時間功能的電子時鐘。此設(shè)計滿足設(shè)計要求,希望該學生繼續(xù)保持。指導教師簽名: 年 月 日 三、成績評定:指導教師簽名: 年 月 日四、系部意見:系部蓋章: 年 月 日設(shè)計項目成績評定表設(shè)計報告書目錄一、設(shè)計目的1二、設(shè)計思路1三、設(shè)計過程13.1系統(tǒng)設(shè)計結(jié)構(gòu)圖13.2 MCU微控制器電路23.3 LCD液晶顯示電路43.4 實時時鐘電路53.5 復位電路53.6 晶振電路6四、系統(tǒng)調(diào)試與結(jié)果6五、主要元器件與設(shè)備7六、課程設(shè)計體會7七、參考文獻8一、設(shè)計目的1、掌握電子時鐘的基本工作方式。2、進一步熟悉DS1302芯片的特性。3、通過使用各基本指令,進一步熟練掌握單片機的編

3、程和程序調(diào)試。二、設(shè)計思路利用AT89C52的特點及DS1302的特點,設(shè)計一種基于DS1302單片機控制,再利用數(shù)碼管顯示的數(shù)字鐘。本系統(tǒng)硬件利用AT89S52作為CPU進行總體控制,通過DS1302時鐘芯片獲取準確詳細的時間(年、月、日、周、日、時、分、秒準確時間),對時鐘信號進行控制,同時利用液晶顯示芯片LCD1602對時間進行準確顯示年、月、日、周、日、時、分、秒。三、設(shè)計過程3.1系統(tǒng)設(shè)計結(jié)構(gòu)圖圖1系統(tǒng)設(shè)計結(jié)構(gòu)圖圖2 系統(tǒng)軟件流程圖根據(jù)系統(tǒng)設(shè)計的要求和設(shè)計思路,確定該系統(tǒng)的系統(tǒng)設(shè)計結(jié)構(gòu)圖。如圖1所示。硬件電路主要由MCU微處理控制器單元、DS1302時鐘電路、儲存器、復位電路、晶振電

4、路、數(shù)碼管顯示模塊構(gòu)成。3.2 MCU微控制器電路AT89S52作為系統(tǒng)的核心控制元件,只有它能正常工作后才能使其它的元件進入正常工作狀態(tài)。因此,下面對AT89S52進行必要的說明,AT89S52的管腳如圖3所示。圖3 AT89S52的管腳1)VCC:40腳,供電電壓,一般接+5V電壓。2)GND:20腳,接工作地。3)P0口:18腳,P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復用。在這種模式下,P0具有內(nèi)部上電阻。但是P0口在程序校驗作為輸出指令字節(jié)時

5、,需要外部加上拉電阻,一般上拉電阻選4.7K10K為宜。本設(shè)計中用5.1K的排阻對P0口進行上拉電平。4)P1口:3239腳,P1口是一個內(nèi)部具有上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4個TTL門電流。P1端口寫入“1”后,被內(nèi)部上拉電阻把端口拉高,此時可以作為作輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。5)P2口:2027腳,P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。6)P3口:1017腳,P3 口是一個具有內(nèi)部上拉電

6、阻的8 位雙向I/O 口,P3 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。7)RESET:9腳,復位輸入端。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。8)ALE/P非:30腳,當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于系統(tǒng)校驗。9)PSEN:29腳,外部程序存儲器的選通信號。10)RST非/VP:31腳,訪問外部程序存儲器控制信號

7、。當EA非為低電平時,讀取外部程序存儲器;當EA非端為高電平時,則讀取內(nèi)部程序存儲器,設(shè)計中一般接高電平。11)XTAL1:19腳,振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。如采用外部時鐘源時,XTAL1為輸入端。12)XTAL2:18腳,振蕩器反相放大器的輸出端。如采用外部時鐘源時,XTAL2應懸空不接。3.3 LCD液晶顯示電路液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點,在各種小系統(tǒng)中得到了更廣泛的應用。本設(shè)計中使用的液晶顯示模塊是LCD1602。圖4所示為本設(shè)計LCD1602的連接圖。圖4 LCD1602的連接圖3.4實時時鐘電路本設(shè)計使用的實時時鐘電路芯片是美國D

8、ALLAS公司生產(chǎn)的一種高性能、低功耗、帶RAM的實時時鐘電路芯片DS1302。VCC1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由VCC1或VCC2兩者中的較大 者供電;當VCC2大于VCC10.2V時,VCC2給DS1302供電;當VCC2小于VCC1時,DS1302由VCC1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST非是復位/片選線,通過把RST非輸 入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。圖5 時鐘電路3.5復位電路在AT89S52單片機中的振蕩器運行時,RST非引腳上保持到少2個機器周期的高電平輸入信號,復位過程即可完成。根

9、據(jù)此原理,本設(shè)計采用上電復位和按鍵復位嵌套在系統(tǒng)中,增強了系統(tǒng)的實用性。本設(shè)計的具體復位圖如下。圖6 復位電路3.6 晶振電路AT89S52在工作時需要外部提供時鐘信號,因此,本設(shè)計選擇在其18腳19腳之間接上12MHz的晶振,為單片機提供1s的機器振蕩周期。其電路連接圖如圖所示。在圖中,電容器C3、C4起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在2050pF。圖7 晶振電路四、系統(tǒng)調(diào)試與結(jié)果系統(tǒng)調(diào)試過程利用Proteus繪制出相應硬件電路后進行仿真,出現(xiàn)液晶顯示無法正常顯示的問題。經(jīng)過思考和查閱的資料發(fā)現(xiàn)AT89C52的P0在進高電平時沒有接上拉電阻導致LCD1602無法正常顯示時間。修改

10、電路后(P0口接上拉電阻)燒入程序后,程序正常運行,LCD1602準確的顯示。用Proteus仿真能夠正確的現(xiàn)實時間,但燒入學習板出現(xiàn)亂碼現(xiàn)實不能正常工作。經(jīng)過反復檢查及思考發(fā)現(xiàn)仿真軟件上的硬件電路與學習板上的硬件電路不一致無法對應起來。最后根據(jù)學習板的硬件電路修改相應程序及仿真軟件上的硬件電路,最終現(xiàn)實了功能。系統(tǒng)調(diào)試結(jié)果圖8 調(diào)試結(jié)果五、主要元器件與設(shè)備Protues軟件、AT89C512芯片、DS1302芯片及各電路模塊六、課程設(shè)計體會本設(shè)計利用單片機AT89C512控制串行實時時鐘芯DS1302構(gòu)成數(shù)字時鐘電路,實現(xiàn)計時功能。該電路使用簡單的三線接口,為單片機節(jié)省大量的接口資源,時鐘芯

11、片帶有后備電池。該時鐘功能強大,性能優(yōu)越,能為很多領(lǐng)域,特別是對時鐘工作的準確性和可靠性有較高要求。通過對電子時鐘的設(shè)計的設(shè)計與制作,讓我了解了電子時鐘模塊的編程思想,也讓我明白了電子時鐘的基本原理與設(shè)計理念,要設(shè)計一個電路必須先編好程序,用仿真軟件測試成功后再得出結(jié)論。通過這次學習,讓我對該軟件有了更熟悉的了解,我們應該自己動手,實際操作,才會有更深刻的理解。經(jīng)過這次設(shè)計我學到很多很多的的東西,不僅鞏固了以前所學過的知識,而且通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合的重要性,同時也提高了自己的實際動手能力和獨立思考的能力。最后感謝老師的授課和教導!七、參考文獻1張義和.例說51單片機M.北

12、京:人民郵電出版社,2010年2 閻石編著 數(shù)字電子技術(shù)基礎(chǔ) (第五版) 北京高等教育出版社 2006.15503 蔡明文 馮先成主編 單片機課程設(shè)計 華中科技大學出版社 2007.34陳明螢 編著 8051單片機課程設(shè)計實訓教材 清華大學出版社 20045 康華光 編著 模擬電子技術(shù)基礎(chǔ)(第五版) 高等教育出版社 20066 黃智偉 編著 全國大學生電子設(shè)計競賽電路(第一版)航空航天大學出版社 2006.36附錄源程序代碼:#include<reg52.h>#include <intrins.h>#define uchar unsigned charsbit SCK=

13、P36; sbit SDA=P34;sbit RST = P35; bit ReadRTC_Flag;uchar l_tmpdate7=0,0,12,15,5,3,8;uchar l_tmpdisplay8;uchar bianma=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; code uchar read_rtc_address7=0x81,0x83,0x85,0x87,0x89,0x8b,0x8d; code uchar table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40;void

14、Write_Ds1302_Byte(uchar temp); void Write_Ds1302(uchar address,uchar dat );uchar Read_Ds1302 ( uchar address );void Read_RTC(void);/read RTC void Set_RTC(void); /set RTC void InitTIMER0(void);/inital timer0void main(void) InitTIMER0(); /初始化定時器0 Set_RTC(); while(1) if(ReadRTC_Flag) ReadRTC_Flag=0;Rea

15、d_RTC(); l_tmpdisplay0=l_tmpdate2/16;l_tmpdisplay1=l_tmpdate2&0x0f;l_tmpdisplay2=10; /加入"-"l_tmpdisplay3=l_tmpdate1/16;l_tmpdisplay4=l_tmpdate1&0x0f;l_tmpdisplay5=10;l_tmpdisplay6=l_tmpdate0/16;l_tmpdisplay7=l_tmpdate0&0x0f;void InitTIMER0(void) TMOD|=0x01; /定時器設(shè)置 16位 TH0=(6553

16、5-500)/256; TL0=(65535-500)%256; /初始化值 ET0=1; TR0=1; EA=1;void Set_RTC(void) /設(shè)定 日歷unsigned char i,*p,tmp;for(i=0;i<7;i+) /BCD處理DS1302存放的數(shù)據(jù)格式是BCD型tmp=l_tmpdatei/10;l_tmpdatei=l_tmpdatei%10;l_tmpdatei=l_tmpdatei+tmp*16; Write_Ds1302(0x8E,0X00);p=write_rtc_address; /傳地址 for(i=0;i<7;i+) / 7次寫入 秒分

17、時日月周年 Write_Ds1302(*p,l_tmpdatei); /在0x80-0x8c中寫入數(shù)據(jù) p+; Write_Ds1302(0x8E,0x80); void Write_Ds1302( uchar address,uchar dat ) RST=0;_nop_(); SCK=0;_nop_(); RST=1; _nop_(); /啟動 Write_Ds1302_Byte(address); /發(fā)送地址 Write_Ds1302_Byte(dat); /發(fā)送數(shù)據(jù) RST=0; /恢復void Write_Ds1302_Byte(uchar temp) uchar i; for (i

18、=0;i<8;i+) /循環(huán)8次 寫入一個字節(jié)數(shù)據(jù) SCK=0; SDA=temp&0x01; /每次傳輸?shù)妥止?jié) temp>>=1; /右移一位 SCK=1; void Read_RTC(void) /讀取 日歷uchar i,*p; p=read_rtc_address; /地址傳遞 for(i=0;i<7;i+) /分7次讀取 秒分時日月周年 l_tmpdatei=Read_Ds1302(*p); p+; uchar Read_Ds1302 (uchar address ) uchar i,temp=0x00; RST=0;_nop_();_nop_(); SCK=0;_nop_();_nop_(); RST=1;_nop_();_nop_(); Write_Ds1302_Byte(address); for (i=0;i<8;i+) /循環(huán)8次 讀取數(shù)據(jù) if(SDA) temp|=0x80;/每次傳輸?shù)妥止?jié)SCK=0;temp>>=1;/右移一位_nop_(); _nop_(); _nop_(); SCK=1; RST=0;_nop_(); /以下為DS1302復位的穩(wěn)定時間 _nop_();RST=0;SCK=0;_nop_();_nop_();_nop_();_nop_();SCK=1

溫馨提示

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

最新文檔

評論

0/150

提交評論