第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/24 13:41:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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单片机电子时钟设计 的文档
基于51单片机电子时钟设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c377n93qwjy4mg6283nif6msol1o4w700uzy_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top