《51单片机电子时钟--程序.doc》由会员分享,可在线阅读,更多相关《51单片机电子时钟--程序.doc(3页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、#include#define uint unsigned int #define uchar unsigned char#define s_count_max 60 #define min_cou_max 60 #define h_count_max 24unsigned int inttrupt_count=0; unsigned int s_count=0; unsigned int min_cou=0; unsigned int h_count=0; uchar code LED_table10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
2、0x6f;/相应 段码 uchar code bittable6=0xf8,0xf4,0xec,0xdc,0xbc,0x7c; /相应位码 uchar clockstr6=0,0,0,0,0,0;void dl_ms() uint j;for(j=0;j200;j+);/延时 void display() uchar i; for(i=0;i6;i+) /6 个数码管 P0=(clockstri);P2=bittablei;dl_ms(); void update_clockstr(void)clockstr0=LED_tables_count%10; clockstr1=LED_table(
3、int)(s_count/10); clockstr2=LED_tablemin_cou%10; clockstr3=LED_table(int)(min_cou/10);clockstr4=LED_tableh_count%10;clockstr5=LED_table(int)(h_count/10); /*/display();void main() /测试 h_count=23;min_cou=59;s_count=50; inttrupt_count=0; EA=1; /中断 ET0=1; TMOD=0X01; TH0=-20000/256; TL0=-20000%256; TR0=1;for(;) update_clockstr(); void timer0() interrupt 1 using 1 /完成 1s 定时 20ms 定时 共 50 次 inttrupt_count+; TH0=-20000/256; TL0=-20000%256; if (inttrupt_count=50) inttrupt_count=0;s_count+;if(60=s_count) /(60=s_count)s_count=0;min_cou+;if(60=min_cou)min_cou=0;h_count+;if(24=h_count) h_count=0;