基于單片機的數字時鐘設計_第1頁
基于單片機的數字時鐘設計_第2頁
基于單片機的數字時鐘設計_第3頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、-航空工業管理學院單片機課程設計 2021屆電子信息工程專業班級題目基于單片機的數字時鐘設計*指導教師王丹二一三年十二月二十八日一、 電子時鐘的根本原理該課程設計為數字時鐘的設計,以STC89C52為核心,配合數碼管顯示器和按鍵提供長期、連續、可靠、穩定的工作環境。該數字電子鐘有時分秒顯示和日期顯示以及時間和日期調整的功能。系統軟件設計編程主要實現參數設置,實現鍵盤、數碼管顯示器等各模塊的功能。設計要求:1、單片機部的定時器實現時鐘功能;2、顯示小時、分鐘、秒鐘;3、后初始時間為120000;4、設定時分秒。單片機的接口信號是數字信號。MA*232是一種把電腦的串行口RS-232信號電平(-1

2、0 ,+10v)轉換為單片機所用到的TTL信號點平(0 ,+5)的芯片。系統硬件設計框圖如圖2-1所示。圖2-1 系統硬件設計框圖二、 電子時鐘的硬件設計根據要求,利用D*P2004畫出數字時鐘的原理圖如下所示:圖1 電子時鐘原理圖數字時鐘是一個將“時、“分、“秒顯示的計時裝置。它的計時周期為24小時,顯示滿刻度為23時59分59秒,另外還有校時功能。因此,一個根本的數字鐘電路主要由顯示器“時,“分,“秒和單片機,還有校時電路組成。8個數碼管的段選接到單片機的P0口,位選接到單片機的P2口。顯示電路通過三極管驅動,將“時、“分、“秒通過七段顯示器顯示出來。按鍵KEY1至KEY6由矩陣電路構成,

3、按KEY1鍵秒加一,按KEY2鍵秒減一,按KEY3鍵分加一,按KEY4鍵分減一,按KEY5鍵時加一,按KEY6鍵時減一。通過手動復位鍵進展復位,手動復位后的初始時間為120000。表1元件清單表三、 電子時鐘的軟件設計程序流程圖如下:開場N24小時到.分清零,時加1NNNYY時單元清零時間顯示中斷返回一秒時間到.60秒時間到.60分鐘到.秒單元加1秒清零,分加1YY開場NYNYNY時加減1顯示時間完畢秒按鍵按下.秒加減1分按鍵按下.分加減1時按鍵按下.源程序如下:*include <reg52.h>*define uchar unsigned char*define uint un

4、signed intucharnum=0 ,SEC=0,MIN=0,HOUR=12,key;uchar code tab=0*C0,0*F9,0*A4,0*B0,0*99,0*92,0*82,0*F8,0*80,0*90,0*bf;voiddelayms(uint z)uint*,y;for (* = z; *>0; *-)for(y=110; y>0; y- );/*函數名:keyscan()功能描述:矩陣鍵盤掃描*/void keyscan() /矩陣鍵盤掃描函數uchar*,y;P3=0*f0;if (P3!=0*f0)delayms(10);if (P3!=0*f0) sw

5、itch (key) case 0*7e: key=1;SEC+;break;case 0*7d: key=2;if(SEC>0)SEC-;break;case 0*7b: key=3;MIN+;break;case 0*77: key=4;if(MIN>0)MIN-;break;case 0*be: key=5;HOUR+;break;case 0*bd: key=6;if(HOUR>0)HOUR-;break;default: key=100;break; void display(void)uchari;for(i=0;i<8;i+)dig=dig&BIT

6、(i);/dig |= BIT(i); |= 邏輯或switch (i)case 0:seg=tabSEC%10;break;case 1:seg=tabSEC/10;break;case 2:seg= tab10;break;case 3:seg=tabMIN%10; break;case 4:seg=tabMIN/10;break;case 5:seg= tab10;break;case 6:seg= tabHOUR%10;break;case 7:seg= tabHOUR/10;break;default:break;delayms(3);dig |= BIT(i);/ dig=dig&

7、amp;BIT(i)void init() /初始化函數,做初始化工作的dig=0*FF; /位選seg=0*00; / 段選TMOD |= 0*01;/定時器0方式1IE |= 0*82;/EA=1,T0=1TCON |=0*10;/定時器控制存放器TR0=1void main ()init ();/初始化子程序while (1)keyscan();if (SEC=60)SEC = 0;MIN+;if (MIN=60)MIN=0;HOUR+;if (HOUR=24)HOUR=0;display (); void T0_time() interrupt 1 TH0=(65536-50000)/

8、256;TL0=(65536-50000)%256;if (num=20) /50ms*20=1s num=0;SEC +;if (SEC=60)SEC = 0;MIN+;if (MIN=60)MIN=0;HOUR+;if (HOUR=24)HOUR=0;四、 課程設計總結這次課程設計為使我得到了很大收獲:不僅學到了許多了關于單片機方面的知識,熟悉了與單片機相關的兩款軟件KEIL和STC-ISP V35,提高了實驗技能;而且也使我的動手能力和電路設計能力得到了極大的提高。在此次設計中,我的難點是程序的調試,由于以前僅僅學了一點皮毛,所以編一個完整的程序很是吃力!但是經過這一段時間的學習,我還是解決了一些問題。軟件調試中也出現了一些問題,就是程序

溫馨提示

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

評論

0/150

提交評論