资源描述:
《基于51单片机的电子钟C语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机的电子钟C语言程序#include#include#defineucharunsignedchar#defineuintunsignedint/*七段共阴管显示定义*/ucharcodedispcode[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0xFD,0x87,0xFF,0xDF};
2、/*定义并初始化变量*/ucharseconde=0;ucharminite=0;ucharhour=12;ucharmstcnt=0;sbitP1_0=P1^0; //second调整定义sbitP1_1=P1^1; //minite调整定义sbitP1_2=P1^2; //hour调整定义/*函数声明*/voiddelay(uchark); //延时子程序voidtime_pro(); //时间处理子
3、程序voiddisplay(); //显示子程序voidkeyscan(); //键盘扫描子程序/*****************************//*延时子程序*//****************************/voiddelay(uchark){ucharj;while((k--)!=0) { for(j=0;j<125;j++) {;} }} /**************************//*时间处理子程序*/
4、/**************************/voidtime_pro(void){ if(seconde==60) //秒钟设为60进制 {seconde=0; minite++; if(minite==60) //分钟设为60进制 {minite=0; hour++; if(hour==24)
5、 //时钟设为24进制 {hour=0;} } } }/*****************************//*显示子程序*//*****************************/voiddisplay(void) { P2=0xfe; P0=dispcode[hour/10]; //显示小时的十位 delay(4
6、); P2=0xfd; P0=(dispcode[(hour%10)])
7、0X80; //显示小时的个位 delay(4); P2=0xfb; P0=dispcode[minite/10]; //显示分的十位 delay(4); P2=0xf7; P0=(dispcode[minite%10])
8、0X80; //显示分的个位 delay(4);
9、 P2=0xef; P0=dispcode[seconde/10]; //显示秒的十位 delay(4); P2=0xdf; P0=dispcode[seconde%10]; //显示秒的个位 delay(4); }/*******************************//*键盘扫描子程序*//*******************************/voidkeyscan
10、(void){ if(P1_0==0) //按键1秒的调整 { delay(30); if(P1_0==0) { seconde++; if(seconde==60) {se