创设报告-多功能电子时钟(8)

2019-03-06 07:21

单片机课程设计

else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[4]/10]);WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[4]]);}

WRITE_LCD1602_COM(0x80+0x40+3); //指定显示字符的地址

if(i<5&&SET_TIM_FLAG==6){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}

else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[5]/10]);WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[5]]);}

WRITE_LCD1602_COM(0x80+0x40+6); //指定显示字符的地址

if(i<5&&SET_TIM_FLAG==7){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}

else{WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[6]/10]);WRITE_LCD1602_DAT(LCD1602_Table[Tim_red_tab[6]]);} }

WRITE_LCD1602_COM(0x80+0X40+9);

WRITE_LCD1602_DAT(LCD1602_Table[U8T_data_H/10]); WRITE_LCD1602_DAT(LCD1602_Table[U8T_data_H]); WRITE_LCD1602_DAT(0xdf);

WRITE_LCD1602_COM(0x80+0X40+13);

WRITE_LCD1602_DAT(LCD1602_Table[U8RH_data_H/10]); WRITE_LCD1602_DAT(LCD1602_Table[U8RH_data_H]);

break; case 5:

WRITE_LCD1602_DAT('F'); WRITE_LCD1602_DAT('I'); WRITE_LCD1602_DAT('R'); break; case 6:

WRITE_LCD1602_DAT('S'); WRITE_LCD1602_DAT('A'); WRITE_LCD1602_DAT('T'); break; default: break; } }

WRITE_LCD1602_COM(0x80+0x40); //指定显示字符的地址

if(i<5&&SET_TIM_FLAG==5){WRITE_LCD1602_DAT(' ');WRITE_LCD1602_DAT(' ');}

}

/****************************************** 按键子程序

33

单片机课程设计

******************************************/ void keycsan(void)

{ static uchar KEY_TIM_SETJ,KEY_ADDJ,KEY_MINJ,KEY_TIMING_SETJ; uchar KEY_NUM=KEY_NO_NUM; uchar i; static uchar TIM_DAT; if(IrOK==1) //解码成功 { Receive_dat=Im[2]; switch(Receive_dat) { case 0x0c: KEY_NUM=KEY_TIM_SET_NUM; break; case 0x18: KEY_NUM=KEY_ADD_NUM; break; case 0x5e: KEY_NUM=KEY_MIN_NUM; break; case 0x08: KEY_NUM=KEY_TIMING_SET_NUM; break; default: break; } IrOK=0; } if(~KEY_TIM_SET&KEY_TIM_SETJ) KEY_NUM=KEY_TIM_SET_NUM; KEY_TIM_SETJ=~(~KEY_TIM_SET); if(~KEY_ADD&KEY_ADDJ) KEY_NUM=KEY_ADD_NUM; KEY_ADDJ=~(~KEY_ADD); if(~KEY_MIN&KEY_MINJ) KEY_NUM=KEY_MIN_NUM; KEY_MINJ=~(~KEY_MIN); if(~KEY_TIMING_SET&KEY_TIMING_SETJ) KEY_NUM=KEY_TIMING_SET_NUM; KEY_TIMING_SETJ=~(~KEY_TIMING_SET); switch(KEY_NUM) { case KEY_TIM_SET_NUM: //检测到时间设置按键按下 if(SET_TIMING_FLAG==0) { SET_TIM_FLAG++; if(SET_TIM_FLAG>7) { SET_TIM_FLAG=0; WRITE_DS1302(DS1302_WRITE_PROTECT,DS1302_WRITE_PROTECT_NO); 34

//

单片机课程设计

禁止写保护

WRITE_DS1302(WRITE_DS1302_SECOND,Tim_red_tab[6]); //秒 WRITE_DS1302(WRITE_DS1302_MINUTE,Tim_red_tab[5]); //分 WRITE_DS1302(WRITE_DS1302_HOUR,Tim_red_tab[4]); //小时 WRITE_DS1302(WRITE_DS1302_DAY,Tim_red_tab[2]); //日期 WRITE_DS1302(WRITE_DS1302_MONTH,Tim_red_tab[1]); //月份 WRITE_DS1302(WRITE_DS1302_WEEK,Tim_red_tab[3]); //星期 WRITE_DS1302(WRITE_DS1302_YEAR,Tim_red_tab[0]); //年

WRITE_DS1302(DS1302_WRITE_PROTECT,DS1302_WRITE_PROTECT_OFF); //允许写保护

}

switch(SET_TIM_FLAG)

{ case 1:TIM_DAT=READ_DS1302(READ_DS1302_YEAR); break;

case 2:TIM_DAT=READ_DS1302(READ_DS1302_MONTH); break; case 3:TIM_DAT=READ_DS1302(READ_DS1302_DAY); break; case 4:TIM_DAT=READ_DS1302(READ_DS1302_WEEK); break; case 5:TIM_DAT=READ_DS1302(READ_DS1302_HOUR); break; case 6:TIM_DAT=READ_DS1302(READ_DS1302_MINUTE); break; case 7:TIM_DAT=READ_DS1302(READ_DS1302_SECOND); break; default: break; } } break;

case KEY_ADD_NUM:

switch(SET_TIM_FLAG) {case 1:

if(TIM_DAT<99) TIM_DAT++;

Tim_red_tab[0]=TIM_DAT; break;

case 2:

if(TIM_DAT<12) TIM_DAT++;

Tim_red_tab[1]=TIM_DAT; break;

case 3:

if(TIM_DAT<31) TIM_DAT++;

Tim_red_tab[2]=TIM_DAT; break; case 4:

if(TIM_DAT<6) TIM_DAT++;

35

单片机课程设计

Tim_red_tab[3]=TIM_DAT; break;

case 5:

if(TIM_DAT<23) TIM_DAT++;

Tim_red_tab[4]=TIM_DAT; break;

case 6:

if(TIM_DAT<59) TIM_DAT++;

Tim_red_tab[5]=TIM_DAT; break; case 7:

if(TIM_DAT<59) TIM_DAT++;

Tim_red_tab[6]=TIM_DAT; break;

default:

switch(SET_TIMING_FLAG) {

case 1:

if(Timing_hour<23) Timing_hour++; break;

case 2: if(Timing_min<59) Timing_min++; break; case 3:

if(Timing_on>0) Timing_on=0; else

Timing_on=1; break; } break; } break;

case KEY_MIN_NUM:

switch(SET_TIM_FLAG) {

case 1:

if(TIM_DAT>0) TIM_DAT--;

Tim_red_tab[0]=TIM_DAT;

36

单片机课程设计

break;

case 2:

if(TIM_DAT>1) TIM_DAT--;

Tim_red_tab[1]=TIM_DAT; break;

case 3:

if(TIM_DAT>1) TIM_DAT--;

Tim_red_tab[2]=TIM_DAT; break;

case 4:

if(TIM_DAT>0) TIM_DAT--;

Tim_red_tab[3]=TIM_DAT; break; case 5:

if(TIM_DAT>0) TIM_DAT--;

Tim_red_tab[4]=TIM_DAT; break;

case 6:

if(TIM_DAT>0) TIM_DAT--;

Tim_red_tab[5]=TIM_DAT; break; case 7:

if(TIM_DAT>0) TIM_DAT--;

Tim_red_tab[6]=TIM_DAT; break;

default:

switch(SET_TIMING_FLAG) {

case 1:

if(Timing_hour>0) Timing_hour--; break;

case 2: if(Timing_min>0) Timing_min--; break; case 3:

37


创设报告-多功能电子时钟(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高校节能监管平台建设现状及未来的发展趋势

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

马上注册会员

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