基于c語言的數(shù)字電子鐘設(shè)計_第1頁
基于c語言的數(shù)字電子鐘設(shè)計_第2頁
基于c語言的數(shù)字電子鐘設(shè)計_第3頁
基于c語言的數(shù)字電子鐘設(shè)計_第4頁
基于c語言的數(shù)字電子鐘設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、一、功能要求整體上要考慮:結(jié)構(gòu)簡單大方、布局美觀合理、操作方便易懂、盡量避免各元器件之間的相互影響。1、 以AT89C51單片機進行實現(xiàn)秒 分 時上的正常顯示和進位,其中顯示功能由單片機控制共陰極數(shù)碼管來實現(xiàn),數(shù)碼管進行動態(tài)顯示。2、 具有校時功能,按鍵控制電路其中時鍵、分鍵、秒鍵三個鍵分別控制時 分 秒時間的調(diào)整。按秒鍵秒加1;按分鍵分加1;按時鍵時加1.二、硬件設(shè)計1、整體設(shè)計框圖2、管腳功能描述(1) XTAL1(19 腳)和XTAL2(18 腳):振蕩器輸入輸出端口,外接晶振電路。(2)RST/Vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。(3)P0口8個端口依次和LED

2、顯示器的A、B、C、D、E、F、G和Dp端口對應(yīng)連接,實現(xiàn)對顯示器的片選功能。(4)P2.0P2.5依次與LED顯示器的1、2、3、4、5、6一一連接,實現(xiàn)對顯示器的為選功能。(5)P3.0P3.2依次與按鍵電路的秒、分、時三個按鍵相連接。通過按鍵實現(xiàn)對時間的調(diào)試功能。3、整體原理設(shè)計其計時周期為24小時,顯示滿刻度為23時59分59秒,另外還有校時功能。整個設(shè)計圖由晶振電路、復(fù)位電路、AT89C51單片機、鍵盤控制電路組成。顯示電路將“時”、“分”、“秒”通過七段顯示器顯示出來,6個數(shù)碼管的段選接到單片機的P0口,位選接到單片機的P2口。數(shù)碼管按照數(shù)碼管動態(tài)顯示的工作原理工作。把定時器定時時

3、間設(shè)為50ms,則計數(shù)溢出20次即得時鐘計時最小單位秒,而20次計數(shù)可用軟件方法實現(xiàn),每累計60秒進1分,每累計60分鐘,進1小時。時采用24進制計時器,可實現(xiàn)對一天24小時的累計。校時電路時用來對“時”、“分”、“秒”顯示數(shù)字進行校對調(diào)整,時分秒三個控制鍵分別接單片機的p3.2、p3.1、p3.0進行控制。按一下秒鍵秒單元就加1 ,按一下分鍵分就加1,按一下時鍵時就加1。4、晶振電路單片機的時鐘產(chǎn)生方法有兩種:內(nèi)部時鐘方式和外部時鐘方式。本系統(tǒng)中AT89C51單片機采用內(nèi)部時鐘方式。采用外接晶體和電容組成的并聯(lián)諧振回路。其電路圖如下:5、顯示電路LED顯示器是現(xiàn)在最常用的顯示器之一發(fā)光二極管

4、(LED)分段式顯示器由7條線段圍成8字型,每一段包含一個發(fā)光二極管。外加正向電壓時二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。顯示電路顯示模塊需要實時顯示當前的時間,即時、分、秒,因此需要6個數(shù)碼管,采用動態(tài)顯示方式顯示時間,其硬件連接方式如下圖所示。6、鍵盤控制電路鍵盤可實現(xiàn)對時間的校對,用三個按鍵來實現(xiàn)。按時鍵來調(diào)節(jié)小時的時間,按分鍵來調(diào)節(jié)分針的時間,按秒鍵來調(diào)節(jié)秒的時間。其電路連接圖如下:三、軟件設(shè)計1、主程序流程圖主程序是先開始,然后啟動定時器,定時器啟動后在進行按鍵檢測,檢測完后,就可以顯示時間。主程序流程圖如下2、按鍵控制流程圖按鍵處理是先檢

5、測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加1;每一次按后都有一次延遲,所有檢測完后,就把時間顯示出來。3、 顯示電路流程圖由P2口進行位選功能,進行動態(tài)顯示。時間顯示是先時個位計算顯示,然后是時十位計算顯示,再是分個位計算顯示,再然后是分十位顯示,再就是秒個位計算顯示,最后是秒十位顯示。每一位顯示后都有一個延時4、中斷電路流程圖定時器中斷時是先檢測1秒是否到,1秒如果到,秒單元就加1;如果沒到,就檢測1分鐘是否到,1分鐘如果到,分單元就加1;如果沒到,就檢測1小時是否到,1

6、小時如果到,時單元就加1,如果沒到,就顯示時間。四、系統(tǒng)測試1、測試內(nèi)容(1)能否實現(xiàn)正常的時間顯示默認為走時狀態(tài),按24小時制分別顯示“時時分分秒秒”六個數(shù)字,時間會按實際時間以秒為最少單位變化。(2)能否進行正常的時間進位當秒位為59時,下一次秒位數(shù)字變化分位是否加1同時秒位變?yōu)?0;當分位為59時,下一次分位數(shù)字變化時位是否加1同時分位變?yōu)?0;當時位為23時,下一次時位數(shù)字變化時為是否變?yōu)?0.若滿足以上要求則時間進位正常。(3)能否通過按鍵進行時分秒的設(shè)定按秒鍵對秒進行調(diào)整,按一下加一秒;按分鍵對分進行調(diào)整,按一下加一分;按時鍵對時進行調(diào)整,按一下加一小時,從而達到快速設(shè)定時間的目的

7、。若滿足以上要求則符合方案要求。若按一下連續(xù)加若干位,則按鍵延時時間設(shè)置太短,可以通過增大延時時間進行改進。2、系統(tǒng)時鐘誤差分析電子鐘的走時誤差S=S1-S2,S1表示程序?qū)嶋H運行計算所得的秒;S2表示客觀時間的標準秒。S>0時表示電子鐘秒單元數(shù)值刷新滯后,即走時誤差為“慢”;反之,S<0表示秒單元數(shù)值的刷新超前,即走時誤差為“快”。本次設(shè)計的單片機電子鐘系統(tǒng)中,因條件有限S2所參照的時間是電腦顯示時間,經(jīng)測試S>0即走時“慢”。其誤差主要來源包括晶體頻率誤差,定時器溢出誤差,延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時誤差;定時器溢出的時間誤差,本應(yīng)這一秒溢出,但卻在下一秒溢出

8、,造成走時誤差;延遲時間過長或過短,都會造成與基準時間產(chǎn)生偏差,造成走時誤差。3、軟件調(diào)試仿真部分采用protus 7.5 professional軟件,可以很容易的實現(xiàn)各種系統(tǒng)的仿真。先進行原理圖的繪制;繪制好后再選擇Keil軟件來生成.hex文件,選擇運行,觀察顯示結(jié)果,根據(jù)顯示的結(jié)果和課題的要求再修改程序,再運行查,直到滿足要求。4、 仿真圖/基于AT89C51單片機的電子鐘C語言程序#include<reg51.h>#include<absacc.h>#define uchar unsigned char#define uint unsigned int/*七段

9、共陰管顯示定義*/uchar codedispcode =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF; /*定義并初始化變量*/uchar seconde=0;uchar minite=0;uchar hour=12;uchar mstcnt=0;sbit P3_0=P30; / second 調(diào)整定義 sbit P3_1=P31; /minite調(diào)整定義 sbit P3_2=P32; /hour調(diào)整定義/*函數(shù)聲明*/void delay

10、(uchar k ); /延時子程序void time_pro( ); /時間處理子程序void display( ); /顯示子程序void keyscan( ); /鍵盤掃描子程序void init(); /定時子程序/*/*延時子程序*/*/void delay (uchar k)uchar j;while(k-)!=0)for(j=0;j<125;j+);/*/*時間處理子程序*/*/void time_pro( void)if(seconde=60) /制 seconde=0;minite+;if( minite=60) /秒鐘設(shè)為60進分鐘設(shè)為60進制 minite=0;ho

11、ur+;if(hour=24) /時鐘設(shè)為24進制 hour=0; /*/* 顯示子程序*/*/void display(void)P2=0xfe;P0=dispcodehour/10; /十位delay(4);P2=0xfd;P0=(dispcode(hour%10)|0X80; /個位delay(4);P2=0xfb; 顯示小時的顯示小時的P0=dispcodeminite/10; /顯示分的十位delay(4);P2=0xf7;P0=(dispcodeminite%10)|0X80; /顯示分的個位delay(4);P2=0xef;P0=dispcodeseconde/10; /顯示秒的

12、十位delay(4);P2=0xdf;P0=dispcodeseconde%10; /顯示秒的個位delay(4);/*/*鍵盤掃描子程序*/*/void keyscan (void)if(P3_0=0) /按鍵1秒的調(diào)整delay(30);if(P3_0=0)seconde+;if(seconde=60)seconde=0; while(!P3_0);if(P3_1=0) /按鍵2分的調(diào)整 delay(30);if(P3_1=0)minite+;if(minite=60)minite=0; while(!P3_1);if(P3_2=0) /按鍵3小時的調(diào)整 delay(30);if(P3_2=0)hour+;if(hour=24)hour=0; while(!P3_2);void timer0(void) interrupt 1 using 0 /50ms中斷一次TH0=0x3c;TMOD = 0x11;mstcnt+; 定時器0方式1,if(mstcnt=20)seconde+;mstcnt=0; /對計數(shù)單元清零 /*/ /*定時子程序*/*/ void

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論