首页 基于单片机的电子钟C语言程序

基于单片机的电子钟C语言程序

举报
开通vip

基于单片机的电子钟C语言程序LastrevisedbyLELEin2021基于单片机的电子钟C语言程序基于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};/*定义并初始化变量...

基于单片机的电子钟C语言程序
LastrevisedbyLELEin2021基于单片机的电子钟C语言程序基于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};/*定义并初始化变量*/ucharseconde=0;ucharminite=0;ucharhour=12;ucharmstcnt=0;sbitP1_0=P1^0;//second调整定义sbitP1_1=P1^1;//minite调整定义sbitP1_2=P1^2;//hour调整定义/*函数声明*/voiddelay(uintk);//延时子程序voiddelay1(ucharh);voidtime_pro();//时间处理子程序voiddisplay();//显示子程序voidkeyscan();//键盘扫描子程序/*****************************//*延时子程序*//****************************/voiddelay1(ucharh){ucharj;while((h--)!=0){for(j=0;j<125;j++){;}}}voiddelay(uintk){uinta,b,c;for(c=k;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);}/**************************//*时间处理子程序*//**************************/voidtime_pro(void){if(seconde==60)//秒钟设为60进制{seconde=0;minite++;if(minite==60)//分钟设为60进制{minite=0;hour++;if(hour==24)//时钟设为24进制{hour=0;}}}}/*****************************//*显示子程序*//*****************************/voiddisplay(void){P2=0xfe;P0=dispcode[hour/10];//显示小时的十位delay1(4);P2=0xfd;P0=(dispcode[(hour%10)])|0X80;//显示小时的个位delay1(4);P2=0xfb;P0=dispcode[minite/10];//显示分的十位delay1(4);P2=0xf7;P0=(dispcode[minite%10])|0X80;//显示分的个位delay1(4);P2=0xef;P0=dispcode[seconde/10];//显示秒的十位delay1(4);P2=0xdf;P0=dispcode[seconde%10];//显示秒的个位delay1(4);}/*******************************//*键盘扫描子程序*//*******************************/voidkeyscan(void){if(P1_0==0)//按键1秒的调整{delay(2);if(P1_0==0)//delay(300);{seconde++;if(seconde==60){seconde=0;}}}if(P1_1==0)//按键2分的调整{delay(2);if(P1_1==0)//delay(300);{minite++;if(minite==60){minite=0;}}}if(P1_2==0)//按键3小时的调整{delay(2);if(P1_2==0)//delay(300);{hour++;if(hour==24){hour=0;}}}}voidtimer0(void)interrupt1using0//定时器0方式1,50ms中断一次{TH0=0x3c;TMOD=0x11;mstcnt++;if(mstcnt==20){seconde++;mstcnt=0;//注意点。对计数单元的清零十分的重要,本次调试中就是}//因为忽略了这一点,给我早成了很大的被动。}/**************************//*主函数*//**************************/voidmain(void){P1=0xff;//初始化p1口,全设为1TMOD=0x11;//time0为定时器,方式1TH0=0x3c;//预置计数初值TL0=0xb0;EA=1;ET0=1;TR0=1;while(1){keyscan();//按键扫描time_pro();//时间处理display();//显示时间}}
本文档为【基于单片机的电子钟C语言程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
gy_chen
暂无简介~
格式:doc
大小:415KB
软件:Word
页数:0
分类:企业经营
上传时间:2021-09-05
浏览量:1