程序(5)

2019-08-30 17:48

T_NL_NZ++; if(T_NL_NZ==3) { setn=0; setNZn=0; T_NL_NZ=0; } } } while(menu==0); } } if(set==0)//---------------set为功能键(设置键)-------------------- { delay(9);//延时,用于消抖动 if(set==0)//延时后再次确认按键按下 { led1=0; bltime=0; buzzer=0;//蜂鸣器短响一次 delay(20); buzzer=1; while(!set); if(T_NL_NZ==0x02) //证明是对闹钟进行设置 { setNZn++; if(setNZn==4) //闹钟设定成功,退回到正常显示并开启闹钟 { setNZn=0; setn=0; timerOn=1; } switch(setNZn) { case 0: //正常显示日期时间 write_1602com(0x0c); //?置光标不闪? write_1602com(er); //时间显示固定符号写入位置? for(a=0;a<16;a++) write_1602dat(NZd[a]); //写显示时间固定符号,两个冒号 write_sfm(8,nz_shi); //闹钟 时

write_sfm(11,nz_fen); //闹钟 分 write_sfm(14,nz_miao); //闹钟 秒 break; case 1: //闹钟秒光标闪烁 write_1602com(er+15); //设置按键按动一次,秒位置显示光标 //er+0x09; write_1602com(0x0f); //设置光标为闪烁 break; case 2: //闹钟分光标闪烁 write_1602com(er+12); //设置按键按动一次,秒位置显示光标 //er+0x09; write_1602com(0x0f); //设置光标为闪烁 break; case 3: //闹钟时光标闪烁 write_1602com(er+9); //设置按键按动一次,秒位置显示光标 //er+0x09; write_1602com(0x0f); //设置光标为闪烁 break; } } else //证明是对时间及日期进行设置 { if(T_NL_NZ==0) { setn++; if(setn==7) setn=0; //设置按键共有秒、分、时、星期、日、月、年、返回,8个功能循环 switch(setn) { case 1: TR0=0;//关闭定时器 //TR1=0; write_1602com(er+7);//设置按键按动一次,秒位置显示光标 //er+0x09; write_1602com(0x0f);//设置光标为闪烁 temp=(miao)/10*16+(miao);//秒数据写入DS1302 write_1302(0x8e,0x00); write_1302(0x80,0x80|temp);//miao write_1302(0x8e,0x80); break; case 2: write_1602com(er+4); //按2次fen位置显示光标 //er+0x06

//write_1602com(0x0f); break; case 3: write_1602com(er+1); //按动3次,shi //write_1602com(0x0f); break; // case 4: write_1602com(yh+0x0e);//按动4次,week //write_1602com(0x0f); // break; case 4: write_1602com(yh+0x0a);//按动4次,ri //write_1602com(0x0f); break; case 5: write_1602com(yh+0x07);//按动5次,yue //write_1602com(0x0f); break; case 6: write_1602com(yh+0x04);//按动6次,nian //write_1602com(0x0f); break; case 0: write_1602com(0x0c);//按动到第7次,设置光标不闪烁 TR0=1;//打开定时器 temp=(miao)/10*16+(miao); write_1302(0x8e,0x00); write_1302(0x80,0x00|temp);//miao数据写入DS1302 write_1302(0x8e,0x80); break; } } } } }

//------------------------------加键add---------------------------- if((setn!=0)&&(setNZn==0))//当set按下以下。再按以下键才有效(按键次数不等于零) { if(add==0) //上调键 { delay(10); if(add==0) { led1=0; bltime=0; buzzer=0;//蜂鸣器短响一次

delay(20); buzzer=1; while(!add); switch(setn) { case 1:miao++;//设置键按动1次,调秒 if(miao==60) miao=0;//秒超过59,再加1,就归零 write_sfm(0x06,miao);//令LCD在正确位置显示\加\设定好的秒数 temp=(miao)/10*16+(miao);//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00); //允许写,禁止写保护 write_1302(0x80,temp); //向DS1302内写秒寄存器80H写入调整后的秒数据BCD码 write_1302(0x8e,0x80); //打开写保护 write_1602com(er+7);//因为设置液晶的模式是写入数据后,光标自动右移,所以要指定返回 //write_1602com(0x0b); break; case 2:fen++; if(fen==60) fen=0; write_sfm(0x03,fen);//令LCD在正确位置显示\加\设定好的分数据 temp=(fen)/10*16+(fen);//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x82,temp);//向DS1302内写分寄存器82H写入调整后的分数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(er+4);//因为设置液晶的模式是写入数据后,指针自动加一,在这里是写回原来的位置 break; case 3:shi++; if(shi==24) shi=0; write_sfm(0x00,shi);//令LCD在正确的位置显示\加\设定好的小时数据 temp=(shi)/10*16+(shi);//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x84,temp);//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码

write_1302(0x8e,0x80);//打开写保护 write_1602com(er+1);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; /* case 4:week++; if(week==8) week=1; write_1602com(yh+0x0C);//指定'加'后的周数据显示位置 write_week(week);//指定周数据显示内容 temp=(week)/10*16+(week);//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x8a,temp);//向DS1302内写周寄存器8aH写入调整后的周数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+0x0e);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; */ case 4:ri++; if(ri==32) ri=1; Conver_week(nian,yue,ri); write_week(week); write_nyr(9,ri);//令LCD在正确的位置显示\加\设定好的日期数据 temp=(ri)/10*16+(ri);//十进制转换成DS1302要求的DCB码 write_1302(0x8e,0x00);//允许写,禁止写保护 write_1302(0x86,temp);//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码 write_1302(0x8e,0x80);//打开写保护 write_1602com(yh+10);//因为设置液晶的模式是写入数据后,指针自动加一,所以需要光标回位 break; case 5:yue++; if(yue==13) yue=1; Conver_week(nian,yue,ri); write_week(week); write_nyr(6,yue);//令LCD在正确的位置显示\加\设定好的月份数据


程序(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:AutoCAD三维建模系列教程 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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