基于51单片机电子时钟设计

2026/4/28 16:04:00

break;

case 4: write_data('T');delay(5); write_data('H');delay(5); write_data('U'); break;

case 5: write_data('F');delay(5); write_data('R');delay(5); write_data('I'); break;

case 6: write_data('S');delay(5); write_data('A');delay(5); write_data('T'); break;

case 7: write_data('S');delay(5); write_data('U');delay(5); write_data('N'); break; } }

void keyscan( ) {

if(flag_ri==1)

{ //这里用来取消闹钟报警,按任意键取消报警 if((s1==0)||(s2==0)||(s3==0)||(s4==0)) {

delay(5);

if((s1==0)||(s2==0)||(s3==0)||(s4==0)) {

while(!(s1&&s2&&s3&s&s4));di( ); flag_ri=0; //清除报警标志 } } }

if(s1==0) //检测s1 {

delay(5); if(s1==0) {

s1num++; //记录按下次数 if(flag1==1)

if(s1num==4) s1num=1; flag=1;

while(!s1);di( );

switch(s1num)

{ //光标闪烁点定位

case 1: write_com(0x80+0x40+10); write_com(0x0f); break;

case 2: write_com(0x80+0x40+7); break;

case 3: write_com(0x80+0x40+4); break;

case 4: write_com(0x80+12); break;

case 5: write_com(0x80+9); break;

case 6: write_com(0x80+6); break;

case 7: write_com(0x80+3); break; case 8: s1num=0;

write_com(0x0c); flag=0;

write_ds(0,miao); write_de(2,fen); write_ds(4,shi); write_ds(6,week); write_ds(7,day); write_ds(8,month); write_ds(9,year); break; } } }

if(s1num!=0) //只有当s1按下后,才检测s2和s3 {

if(s2==0) {

delay(1); if(s2==0)

while(!s2);di( ); switch(s1num)

{ //根据功能键次数调节相应数值 case 1: miao++;

if(miao==60) miao=0;

write_sfm(10,miao);

write_com(0x80+0x40+10); break; case 2: fen++;

if(fen==60) fen=0;

write_sfm(7,fen);

write_com(0x80+0x40+7); break; case 3: shi++;

case 4: case 5: case 6: case 7: } } }

if(s3==0) {

delay(1);

if(shi==24) shi=0;

write_sfm(4,shi);

write_com(0x80+0x40+4); break; week++;

if(week==8) week=1;

write_week(week); write_com(0x80+12); break; day++;

if(day==32) day=1;

write_nyr(9,day); write_com(0x80+9); break; month++;

if(month==13) month=1;

write_nyr(6,month); write_com(0x80+6); break; year++;

if(year==100) year=0;

write_nyr(3,year); write_com(0x80+3); break;

if(s3==0) {

while(!s3);di( ); switch(s1num)

{ //根据功能键次数调节相应数值 case 1: miao--;

if(miao==-1) miao=59;

write_sfm(10,miao);

write_com(0x80+0x40+10); break; case 2: fen--;

if(fen==-1) fen=59;

write_sfm(7,fen);

write_com(0x80+0x40+7); break; case 3: shi--;

if(shi==-1) shi=23;

write_sfm(4,shi);

write_com(0x80+0x40+4); break; case 4: week--;

if(week==0) week=7;

write_week(week); write_com(0x80+12); break; case 5: day--;

if(day==0) day=31;

write_nyr(9,day); write_com(0x80+9); break; case 6: month--;

if(month==0) month=12;

write_nyr(6,month); write_com(0x80+6); break; case 7: year--;

if(year==-1) year=99;


基于51单片机电子时钟设计.doc 将本文的Word文档下载到电脑
搜索更多关于: 基于51单片机电子时钟设计 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219