电子万年台历的设计制作(7)

2019-02-20 23:45

皖西学院 学生课程设计项目

Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; } hide_hour++; if(hide_hour>3) hide_hour=0;

show_time();

}while(count==4);break;

//count=4,调整星期

case 4:do

{ hide_hour=0;

outkey(); Upkey(); Downkey();

if(up_flag==1||down_flag==1) { Write1302(0x8e,0x00); //写入允许 Write1302(0x8a,temp); //写入新的星期数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; } hide_week++; if(hide_week>3) hide_week=0;

show_time();

}while(count==5);break;

//count=5,调整日

case 5:do

{ hide_week=0;

outkey(); Upkey(); Downkey();

if(up_flag==1||down_flag==1)

31

皖西学院 学生课程设计项目

{ Write1302(0x8e,0x00); //写入允许 Write1302(0x86,temp); //写入新的日数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; } hide_day++; if(hide_day>3) hide_day=0;

show_time();

}while(count==6);break;

//count=6,调整月

case 6:do

{ hide_day=0;

outkey(); Upkey(); Downkey();

if(up_flag==1||down_flag==1) { Write1302(0x8e,0x00); //写入允许 Write1302(0x88,temp); //写入新的月数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; } hide_month++; if(hide_month>3) hide_month=0;

show_time();

}while(count==7);break;

//count=7,调整年

case 7:do

{ hide_month=0;

outkey(); Upkey();

32

皖西学院 学生课程设计项目

Downkey();

if(up_flag==1||down_flag==1) {Write1302(0x8e,0x00); //写入允许 Write1302(0x8c,temp); //写入新的年数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; } hide_year++; if(hide_year>3) hide_year=0;

show_time(); }

while(count==8);break;

case 8: count=0;hide_year=0; //count8, 跳出调整模式,返回默认显示状态 Second=Read1302(DS1302_SECOND); Write1302(0x8e,0x00); //写入允许 Write1302(0x80,Second&0x7f);

Write1302(0x8E,0x80); //禁止写入

done=0;

break; //count=7,开启中断,标志位置0并退出 default:break;}}

void show_time() //液晶显示程序

{ DS1302_GetTime(&CurrentTime); //获取时钟芯片的时间数据 TimeToStr(&CurrentTime); //时间数据转换液晶字符 DateToStr(&CurrentTime); //日期数据转换液晶字符 ReadTemp(); //开启温度采集程序 temp_to_str(); //温度数据转换成液晶字符 GotoXY(12,1); //液晶字符显示位置 Print(TempBuffer); //显示温度 GotoXY(0,1);

Print(CurrentTime.TimeString); //显示时间

33

皖西学院 学生课程设计项目

GotoXY(0,0);

Print(CurrentTime.DateString); //显示日期 GotoXY(15,0);

Print(week_value); //显示星期 GotoXY(11,0);

Print(\//在液晶上显示 字母 week Delay1ms(400); //扫描延时 } main()

{ flag=1; //时钟停止标志 LCD_Initial(); //液晶初始化 Init_DS18B20( ) ; //DS18B20初始化 Initial_DS1302(); //时钟芯片初始化 up_flag=0; down_flag=0;

done=0; //进入默认液晶显示 wireless_1=0; wireless_2=0; wireless_3=0; wireless_4=0; while(1)

{ while(done==1)

keydone(); //进入调整模式

while(done==0)

{ show_time(); //液晶显示数据 flag=0;

Setkey();

//扫描各功能键 } 34

}}


电子万年台历的设计制作(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:鲁班算量技巧培训教材

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

马上注册会员

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