多功能电子时钟设计 - 图文(8)

2019-03-16 20:59

}

void disp_strstowatch3(void) { LcdEn=0; LCD_Write(LCD_COMMAND,0x38); //8位数据端口,一般指令 LCD_Write(LCD_COMMAND,0x38); LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 GotoXY(0,1); Print(\ GotoXY(0, 0); Print(stop_watch_temp3); GotoXY(1, 1); Print(stop_watch_value); stopwatch_flag=1; Delay1ms(200); }

void outkey() //跳出调整模式,返回默认显示 { uchar Second;

if(out==0) { mdelay(8); count=0; hide_sec=0,hide_min=0,hide_hour=0,hide_day=0,hide_week=0,hide_month=0,hide_year=0; Second=Read1302(DS1302_SECOND); Write1302(0x8e,0x00); //写入允许 Write1302(0x80,Second&0x7f); Write1302(0x8E,0x80); //禁止写入 done=0; while(out==0); settime_flag=0; }

第 36 页 共 50 页

电子系统设计报告

LCD_Write(LCD_COMMAND,0x38);

LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标 GotoXY(0,1); Print(\GotoXY(0, 0);

Print(stop_watch_temp2); GotoXY(1, 1);

Print(stop_watch_value); stopwatch_flag=1; Delay1ms(200);

电子系统设计报告

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////// void Upkey()//升序按键 { Up=1; if(Up==0) { mdelay(8); switch(count) {case 1:

temp=((Read1302(DS1302_SECOND)&0x70)>>4)*10 + (Read1302(DS1302_SECOND)&0x0F); //读取秒数 temp=temp+1; //秒数加1

up_flag=1; //数据调整后更新标志 if(temp>59) //超过59秒,清零 temp=0; break; case 2:

temp=((Read1302(DS1302_MINUTE)&0x70)>>4)*10 + (Read1302(DS1302_MINUTE)&0x0F); //读取分数 temp=temp+1; //分数加1 up_flag=1; if(temp>59) //超过59分,清零 temp=0; break; case 3:

temp=((Read1302(DS1302_HOUR)&0x70)>>4)*10 + (Read1302(DS1302_HOUR)&0x0F); //读取小时数 temp=temp+1; //小时数加1 up_flag=1; if(temp>23) //超过23小时,清零 temp=0; break; case 5:

temp=((Read1302(DS1302_DAY)&0x70)>>4)*10 + (Read1302(DS1302_DAY)&0x0F); //读取日数 temp=temp+1; //日数加1 up_flag=1; if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==1||((Read1302(DS1302_MONTH)&0x70)>>4)*10

第 37 页 共 50 页

电子系统设计报告

+

(Read1302(DS1302_MONTH)&0x0F)==3||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==5||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==7||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==8||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==10||((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==12) { if(temp>31) temp=1; } if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==4||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==6||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==9||((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==11) { if(temp>30) temp=1; } if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==2) { if(temp>28) temp=1; } break; case 6:

temp=((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F); //读取月数 temp=temp+1; //月数加1 up_flag=1; if(temp>12) temp=1; break; case 7:

第 38 页 共 50 页

电子系统设计报告

temp=((Read1302(DS1302_YEAR)&0x70)>>4)*10 + (Read1302(DS1302_YEAR)&0x0F); //读取年数 temp=temp+1; //年数加1 up_flag=1; if(temp>99) temp=0; break; default:break; } while(Up==0); } }

//////////////////////////////////////////////////////////////////////////////////////////////////////////// void Downkey()//降序按键 { Down=1; if(Down==0) { mdelay(8); switch(count) {case 1:

temp=((Read1302(DS1302_SECOND)&0x70)>>4)*10 + (Read1302(DS1302_SECOND)&0x0F); //读取秒数 temp=temp-1; //秒数减1 down_flag=1; //数据调整后更新标志 if(temp==0x7f) //小于0秒,返回59秒 temp=59; break; case 2:

temp=((Read1302(DS1302_MINUTE)&0x70)>>4)*10 + (Read1302(DS1302_MINUTE)&0x0F); //读取分数 temp=temp-1; //分数减1 down_flag=1; if(temp<0) temp=59; //小于0秒,返回59秒 break; case 3:

temp=((Read1302(DS1302_HOUR)&0x70)>>4)*10 + (Read1302(DS1302_HOUR)&0x0F);

第 39 页 共 50 页

电子系统设计报告

//读取小时数 temp=temp-1; //小时数减1 down_flag=1; if(temp<0) temp=23; break; case 5:

temp=((Read1302(DS1302_DAY)&0x70)>>4)*10 + (Read1302(DS1302_DAY)&0x0F); //读取日数 temp=temp-1; //日数减1 down_flag=1; if(temp<1) { if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==1||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==3||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==5||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==7||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==8||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==10||((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==12) temp=31; if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==4||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==6||((Read1302(DS1302_MONTH)&0x70)>>4)*10 +

(Read1302(DS1302_MONTH)&0x0F)==9||((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==11) temp=30; if(((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F)==2) temp=28; } break; case 6:

temp=((Read1302(DS1302_MONTH)&0x70)>>4)*10 + (Read1302(DS1302_MONTH)&0x0F); //读取月数

第 40 页 共 50 页


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

下一篇:广元市循环经济产业园区发展规划(2009 - 2015)

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

马上注册会员

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