void key_setup() //键盘调整函数
{
uchar ds[7];
//int Year,Month,Data,Week,Hour,Minute,Second;
key_scan(); //调用键盘扫描函数
if(key2 == 0)
{
key2 = 1;;;
if(key2 == 0) key2_state= 1; //判断key2是否按下
}
if(key2 == 1 && key2_state ==1) //如果key2按下又抬起
{
if(key1_mode == 1) //在 key1调整为模式1时,按下key2,年数值加1
{
ds[0] = Read_1302(0x8d);
ds[0]++;
gotoxy(1,6);
display_LCD_number(ds[0]);
Write_1302(0x8c,ds[0]); //将加过的年数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 2) //在 key1调整为模式2时,按下key2,月数值加1
{
ds[1] =Read_1302(0x89);
ds[1]++;
gotoxy(1,9);
display_LCD_number(ds[1]);
Write_1302(0x88,ds[1]); //将加过的月数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 3) //在 key1调整为模式3时,按下key2,日数值加1
{ //本段程序也可以用switch、case语句编程
ds[2] =Read_1302(0x87);
ds[2]++;
gotoxy(1,12);
display_LCD_number(ds[2]);
Write_1302(0x86,ds[2]); //将加过的年数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 4) //在 key1调整为模式4时,按下key2,星期数值加1
{
ds[3] =Read_1302(0x8b);
ds[3]++;
gotoxy(2,5);
display_LCD_number(ds[3]);
Write_1302(0x8c,ds[3]); //将加过的星期数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 5) //在 key1调整为模式5时,按下key2,小时数值加1
{
ds[4] =Read_1302(0x85);
ds[4]++;
gotoxy(2,8);
display_LCD_number(ds[4]);
Write_1302(0x84,ds[4]); //将加过的小时数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 6) //在 key1调整为模式6时,按下key2,分钟数值加1
{
ds[5] =Read_1302(0x83);
ds[5]++;
gotoxy(2,11);
display_LCD_number(ds[5]);
Write_1302(0x82,ds[5]); //将加过的分钟数写到1302的年位置;
key2_state = 0;
}
else if(key1_mode == 7) //在 key1调整为模式7时,按下key2,秒数值加1
{
ds[6] =Read_1302(0x81);
ds[6]++;
gotoxy(2,14);
display_LCD_number(ds[6]);
Write_1302(0x80,ds[6]); //将加过的秒数写到1302的年位置;
key2_state = 0;
}
}
if(key3 == 0)
{
key3 = 1;;;
if(key3 == 0)key3_state= 1; //判断key3是否按下
}
if(key3 == 1 && key3_state == 1) //如果key3按下又抬起
{
if(key1_mode == 1) //在 key1调整为模式1时,按下key2,年数值减1
{
ds[0] =Read_1302(0x8d);
ds[0]--;
gotoxy(1,6);
display_LCD_number(ds[0]);
Write_1302(0x8c,ds[0]); //将减过的年数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 2) //在 key1调整为模式2时,按下key2,月数值减1
{
ds[1] =Read_1302(0x89);
ds[1]--;
gotoxy(1,9);
display_LCD_number(ds[1]);
Write_1302(0x88,ds[1]); //将减过的月数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 3) //在 key1调整为模式3时,按下key2,日数值减1
{ //本段程序也可以用switch、case语句编程
ds[2] =Read_1302(0x87);
ds[2]--;
gotoxy(1,12);
display_LCD_number(ds[2]);
Write_1302(0x86,ds[2]); //将减过的年数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 4) //在 key1调整为模式4时,按下key2,星期数值减1
{
ds[3] =Read_1302(0x8b);
ds[3]--;
gotoxy(2,5);
display_LCD_number(ds[3]);
Write_1302(0x8c,ds[3]); //将减过的星期数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 5) //在 key1调整为模式5时,按下key2,小时数值减1
{
ds[4] =Read_1302(0x85);
ds[4]--;
gotoxy(2,8);
display_LCD_number(ds[4]);
Write_1302(0x84,ds[4]); //将减过的小时数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 6) //在 key1调整为模式6时,按下key2,分钟数值减1
{
ds[5] =Read_1302(0x83);
ds[5]--;
gotoxy(2,11);
display_LCD_number(ds[5]);
Write_1302(0x82,ds[5]); //将减过的分钟数写到1302的年位置;
key3_state = 0;
}
else if(key1_mode == 7) //在 key1调整为模式7时,按下key2,秒数值减1
{
ds[6] =Read_1302(0x81);
ds[6]--;
gotoxy(2,14);
display_LCD_number(ds[6]);
Write_1302(0x80,ds[6]); //将减过的秒数写到1302的年位置;
key3_state = 0;
}
}
}
/*************************************/
基于单片机的电子日历(1602显示)
需积分: 15 62 浏览量
2010-12-24
14:06:09
上传
评论
收藏 105KB RAR 举报
ying6375608
- 粉丝: 1
- 资源: 3
最新资源
- 基于CSS的响应式鲜花网站全屏效果设计源码
- 基于JavaScript的访客预约系统设计源码
- 基于Vue和ECharts的工作租房数据可视化系统设计源码
- 1040g0cg310ravpiu6ibg5pg00tsipsln3ju2d0g 2
- 基于Python的SAR图像去噪CNN-NLM设计源码
- redhat6升级到redhat7,过程redhat6.x-> redhat6.10->rehat7.9 主版本最高版本
- 基于Django的流程引擎设计源码
- 基于Node.js的Express框架与MySQL的后台管理系统设计源码
- 基于Java的Flink流批一体数据处理快速集成开发框架设计源码
- FirstFilterOrderCompare
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈