基於微控制器的數字電子鐘及波形發生器設計報告

2021-07-30 07:36:48 字數 2960 閱讀 6441

數字電子鐘及波形發生器實驗報告

1. 設計題目

led顯示器件顯示的電子時鐘

2. 設計要求

要求電子鐘有復位功能,整點報時,六隻led數碼管顯示當前的時分秒,並且具有鬧鐘功能。

3. 所用裝置與器材

電子鐘有以下幾個部件組成:微控制器89c51等,電源,時分秒顯示部件。

4. 硬體方案

時分秒顯示採用動態掃瞄,以降低對微控制器埠數的要求,同時也降低了系統的功耗。

電源部分:電源部分有兩部分組成。一部分是由220v的市電通過變壓,整流穩壓來得到+5v電壓,維持系統的正常工作。

5. 軟體方案

該系統的軟體方案主要分為主程式和定時器中斷程式兩大模組。主程式完成系統的初始化。中斷程式完成時間計數,時間調整,誤差消除等功能。

#include //

#define uint unsigned int

uint flag;

sbit led=p3^6; //定義led埠

sbit led1=p3^7; //定義led埠

sbit led2=p0^0; //定義led埠

sbit key1=p3^0; //定義按鍵位置

sbit key2=p3^1;

//code unsigned char tab=;//共陰數碼管 0-9

code unsigned char tab=;

unsigned char h_shiwei;//定義十位

unsigned char h_gewei; //定義個位

unsigned char m_shiwei;//定義十位

unsigned char m_gewei; //定義個位

unsigned char s_shiwei;//定義十位

unsigned char s_gewei; //定義個位

unsigned char colck_h_shiwei;//定義十位

unsigned char colck_h_gewei; //定義個位

unsigned char colck_m_shiwei;//定義十位

unsigned char colck_m_gewei; //定義個位

unsigned char colck_s_shiwei;//定義十位

unsigned char colck_s_gewei; //定義個位

unsigned char hour=0,minute=0,second=0,count=0,aa=0,zd_flag,zd_count;

unsigned char colck_hour=0,colck_minute=0,colck_second=0,colck_flag,colck_count;

void delayms(unsigned int delay)//1ms延時函式

}void delay(unsigned int cnt)

void init_shumaguan(void)

void init_timer1(void)

主程式main()

else

p2=0x01;

p1=h_shiwei;//顯示秒十位

delay(300);//短暫延時

p2=0x02;

p1=h_gewei; //顯示秒個位

delay(300);

p2=0x08;

p1=m_shiwei;//顯示秒十位

delay(300);//短暫延時

p2=0x10;

p1=m_gewei; //顯示秒個位

delay(300);

p2=0x40;

p1=s_shiwei;//顯示秒十位

delay(300);//短暫延時

p2=0x80;

p1=s_gewei; //顯示秒個位

delay(300);

}if(!key1)

delayms(1);

if(!key1)

while(!key1);

if(flag==1)

minute++;

if(minute==60)

minute=0;

m_shiwei=tab[minute/10];//十位顯示值處理

m_gewei=tab[minute%10]; //個位顯示處理

if(flag==2)

colck_minute++;

if(colck_minute==60)

colck_minute=0;

colck_m_shiwei=tab[colck_minute/10];//十位顯示值處理

colck_m_gewei=tab[colck_minute%10]; //個位顯示處理

if(!key2)

delayms(1);//去抖動

if(!key2) //檢測按鍵確實按下,進行按鍵處理

while(!key2);

if(flag==1)

hour++;

if(hour==24)

hour=0;

h_shiwei=tab[hour/10];//十位顯示值處理

h_gewei=tab[hour%10]; //個位顯示處理

if(flag==2)

colck_hour++;

if(colck_hour==24)

colck_hour=0;

colck_h_shiwei=tab[colck_hour/10];//十位顯示值處理

colck_h_gewei=tab[colck_hour%10]; //個位顯示處理

}}* 名稱 : time0_int()

* 功能 : 定時器中斷

void timer1_int(void) interrupt 3 using 1

if(second==60)

{minute++;

second=0;

if(minute==60)

微控制器實習報告 電子鐘

電氣資訊工程學院 課題名稱 電子鐘設計 專業 自動化 姓名 曾濤 班級學號 08 1 33 指導教師 劉海波 成績二 一一年七月九日 目錄一 實驗介紹 3 二 題目及設計要求 3 三 實驗內容 3 四 實驗原理 4 1 at89c51介紹 4 2 4 4鍵盤原理 6 3 led顯示原理 7 五 pr...

微控制器多功能電子鐘設計

微控制器課程設計報告 學院 專業 班級 學號 姓名 指導老師 實習時間 多功能電子鐘設計 一 設計任務 1.基本任務 利用定時器 計數器中斷和靜態顯示或動態顯示,實現電子鐘的時分秒精確走時和校準。時間顯示用四個數碼管分別顯示時和分,秒用點表示,在時和分的中間閃動時間顯示格式 如下圖所示 時間校準用2...

基於微控制器的電子時鐘設計

ds1302時鐘晶元具有通電自動計時的功能。向ds1302中寫入乙個初值,如寫入2011 05 01 00 00 00 星期日,在通電時,時間就會自動走 過60秒分加1 過60分時加1 過24小時天加1,星期日變成星期一 一周有7天,晶元內的周資訊每7天一迴圈 晶元能夠自動判斷每月有多少天,5月有3...