數字電子鐘及波形發生器實驗報告
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...