《51单片机电子时钟--程序》由会员分享,可在线阅读,更多相关《51单片机电子时钟--程序(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 24 unsigned 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,0x6f
2、;/相应段码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(int)
3、(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;