單片機電子時鐘設計畢業(yè)論文1

上傳人:痛*** 文檔編號:41504034 上傳時間:2021-11-20 格式:DOC 頁數(shù):13 大小:631.02KB
收藏 版權申訴 舉報 下載
單片機電子時鐘設計畢業(yè)論文1_第1頁
第1頁 / 共13頁
單片機電子時鐘設計畢業(yè)論文1_第2頁
第2頁 / 共13頁
單片機電子時鐘設計畢業(yè)論文1_第3頁
第3頁 / 共13頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機電子時鐘設計畢業(yè)論文1》由會員分享,可在線閱讀,更多相關《單片機電子時鐘設計畢業(yè)論文1(13頁珍藏版)》請在裝配圖網上搜索。

1、 單片機電子時鐘設計畢業(yè)論文 一. 題目:單片機電子時鐘時鐘 二. 內容: 設計一個數(shù)字時鐘,顯示范圍為00:00:00~23:59:59。通過幾個開關進行控制,其中開關K1用于切換時間設置(調節(jié)時鐘)和時鐘運行(正常運行)狀態(tài);開關K2用于切換修改時、分、秒數(shù)值;開關K3用于使相應數(shù)值加1調節(jié);開關K4用于減1調節(jié);開關K5用于設定鬧鐘,鬧鐘同樣可以設定初值,并且設定好后到時間通過實驗箱音頻放出一段樂曲作為鬧鈴。 選做增加項目:還可增加秒表功能(精確到0.01s)或年月日設定功能。 三. 要求:

2、開關K3進行加1調節(jié)時,當加至最大值(時為24,分和秒均為60)時要能正常歸零。開關K4進行減1調節(jié)時,當減至最小值00時,均能再回到從相應最大值(時為23,分、秒均為59)。鬧鐘樂曲自定。 四. 電路及功能說明: 電路圖如圖所示: 圖A 圖B 圖C 該數(shù)字鐘是用一片AT8

3、9C51A單片機通過編程去驅動8個數(shù)碼管實現(xiàn)的。通過6個開關控制,從上到下6個開關KEY1~KEY6的功能分別為:KEY1,切換至秒表;KEY2,調節(jié)時間,每調一次時加1;KEY3, 調節(jié)時間,每調一次分加1;KEY4,從其它狀態(tài)切換至時鐘狀態(tài);KEY5,切換至鬧鐘設置狀態(tài),也可以對秒表清零;KEY6,秒表暫停.控制鍵分別與P1.0~P1.5口連接.其中: A.通過P2口和P3口去控制數(shù)碼管的顯示如圖所示P2口接數(shù)碼管的a——g端,是控制輸出編碼,P3口接數(shù)碼管的1——8端,是控制動態(tài)掃描輸出. B.從P0.0輸出一個信號使二極管發(fā)光,二極管在設置的鬧鐘時間到了時候發(fā)光,若有樂曲可以去驅動

4、揚聲器實現(xiàn)。 (圖A是時鐘運行狀態(tài),圖B是鬧鐘運行狀態(tài),圖C是秒表運行狀態(tài)) 功能說明: 1. 各個控制鍵的功能:可對時間進行校準調節(jié)(只能加1);按下設置鍵數(shù)字時鐘進入鬧鐘設置狀態(tài),設置鬧鐘的時間;時加1、分加1鍵是在校準時間時或設置鬧鐘時間對小時數(shù)或分鐘數(shù)調節(jié)而設置的;按下秒切換鍵就可以進入秒表模式,同時秒表也開始計時,按下秒表暫停、復位鍵就暫停、歸零,如果要重新對秒計時則可以按秒表開始、復位;清零鍵可以對鬧鐘清零。 2. AT89C51單片機,通過編寫程序對數(shù)碼顯示進行控制。 3. 八個7段數(shù)碼管顯示時鐘和秒表信號。 五. 實驗程序流程圖: 1. 主程序流程圖:

5、 2. 中斷程序流程圖 2. 秒表中斷程序流程圖: 3. 按鍵程序流程圖: 第一圖為時鐘和鬧鐘的調節(jié). 第二圖為進入中斷和清零 六. 實驗結果分析: 此時鐘設計是利用protues仿真軟件進行仿真。基本上實現(xiàn)了要求的功能,該多功能數(shù)字鐘實現(xiàn)的時鐘顯示、鬧鐘設置和秒表功能,校準時鐘時只設計了時加鍵和分加鍵以及清零鍵,沒有設置減分減時鍵??砂l(fā)通過循環(huán)調節(jié)得到正確的調節(jié)數(shù)值。另外,要求有一段樂曲來作為鬧鐘,可這里只是用了一個二級管的發(fā)光來實現(xiàn)這個功能。若用一個揚聲器和一個樂曲

6、能夠實現(xiàn)。 七. 程序清單: #include #define uchar unsigned char #define uint unsigned int #define delay_time 3 uchar k,dat[]={0,0,0,0,0,0,0,0}; uint tcount,t,u; uchar dat1[]={0,0,0,0,0,0,0,0}; uchar dat2[]={0,0,0,0,0,0,0,0}; uchar alarms[]={0,0,0,0,0,0,0,0}; uchar dis_bit[]={0x80,0x40,0x20

7、,0x10,0x08,0x04,0x02,0x01}; unsigned char code SEG7[11]={0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/

8、 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/ }; sbit miaobiao1=P1^0; sbit tminute=P1^1; sbit thour=P1^2; sbit miaobiao2=P1^3; sbit alarm=P1

9、^4; sbit P0_0=P0^0; sbit P1_5=P1^5; sbit P1_6=P1^6; sbit P1_7=P1^7; uchar ms=0; uchar flag=0; uchar sec=0; uchar minit=0; struct time{uchar second;uchar minute;uchar hour;}time1; uchar n,i; void delay(n) { while(n--) { for(i=120;i>0;i--); } } void mod

10、ify(void) { EA=0; if(thour==0) { if(flag==0) { dat1[6]++;delay(180); if(dat1[6]>9) { dat1[6]=0;dat1[7]++; if(dat1[7]>2) { dat1[7]=0; } } } if(flag==1) { alarms[6]++;delay(200); if(alarms[6]>9) { alarms[6]=0

11、;alarms[7]++; if(alarms[7]>2) { alarms[7]=0; } } dat[6]=alarms[6]; dat[7]=alarms[7]; } } if(tminute==0) { if(flag==0) { dat1[3]++;delay(180); if(dat[3]>=10) { dat1[4]++;dat1[3]=0; if(dat1[4]>5) { dat1[4]

12、=0; } } } if(flag==1) { alarms[3]++; delay(200); if(alarms[3]>9) { alarms[4]++;alarms[3]=0; if(alarms[4]>5) { alarms[4]=0; } } dat[3]=alarms[3]; dat[4]=alarms[4]; } } if(miaobiao1==0) { TR0=0;ET0=0;TR

13、1=1;ET1=1; } if(miaobiao2==0) { TR0=1;ET0=1;TR1=0;ET1=0; dat2[0]=0; dat2[1]=0; dat2[3]=0; dat2[4]=0; dat2[6]=0; dat2[7]=0; ms=0; sec=0; minit=0; } if(P1_5==0) { TR0=0;ET0=0;TR1=0;ET1=0; } if(alarm==0) { TR0=0;ET

14、0=0;TR1=0;ET1=0;flag=1; dat[0]=0; dat[1]=0; dat[2]=10; dat[3]=0; dat[4]=0; dat[5]=10; dat[6]=0; dat[7]=0; } EA=1; } void init(void) { TMOD = 0x11; TH0 = 0xDB; TL0 =0xFF; TH1=0xDB; TL1=0xFF; ET0 = 1; //10ms ET1=1; // TR1=1;

15、TR0=1; tcount=0; ms=0; sec=0; minit=0; EA = 1; } void test(void) { for(k=0;k<8;k++) { P3=dis_bit[k];P2=SEG7[dat[k]]; delay(1);P3=0X00; } } void main() { init(); delay(10); while(1) { modify();

16、 test(); } } void diplay() interrupt 1 { ET0=0; TR0=0; TH0 = 0xDB; TL0 = 0xff; TR0=1; tcount++; if(tcount==100) { time1.second++; tcount=0; dat1[0]=(time1.second)%10; dat1[1]=(time1.second)/10; } if(time1.second==60) {

17、 time1.second=0; time1.minute++; dat1[3]=(time1.minute)%10; dat1[4]=(time1.minute)/10; } if(time1.minute==60) { time1.minute=0; time1.hour++; dat1[6]=time1.hour%10; dat1[7]=time1.hour/10; } if(time1.hour>23) { time1.hour=0; }

18、 dat[5]=10; dat[2]=10; dat[0]=dat1[0]; dat[1]=dat1[1]; dat[3]=dat1[3]; dat[4]=dat1[4]; dat[6]=dat1[6]; dat[7]=dat1[7]; flag=0; P0=0x00; if((alarms[7]==dat1[7])&&(alarms[6]==dat1[6])&&(alarms[4]==dat1[4])&&(alarms[3]==dat1[3])) { P0=0x01; }

19、ET0=1; } void time_2(void)interrupt 3 { EA=0; TR0=0; TH1=0xDB; TL1=0xFF; TR1=1; ms++; dat2[0]=ms%10; dat2[1]=ms/10; if(ms>=100) { ms=0; sec++; dat2[3]=sec%10; dat2[4]=sec/10; if(sec>=60) { sec=0; minit++; dat2[6]=minit%10; dat2[7]=minit/10; } } dat[5]=10; dat[2]=10; dat[0]=dat2[0]; dat[1]=dat2[1]; dat[3]=dat2[3]; dat[4]=dat2[4]; dat[6]=dat2[6]; dat[7]=dat2[7]; EA=1;

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

最新文檔

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲