电子万年历时间可调节Word格式.docx
- 文档编号:15911902
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:20
- 大小:48.43KB
电子万年历时间可调节Word格式.docx
《电子万年历时间可调节Word格式.docx》由会员分享,可在线阅读,更多相关《电子万年历时间可调节Word格式.docx(20页珍藏版)》请在冰豆网上搜索。
sbitkey4=P3^7;
TEMPDATAm_TempData;
ucharm=0,m1=0,m2=0,m3=0,m4=0,m5=0,m6=0,m7=0,m8=0,m9=0,m10=0,m11=0,m12=0,m13=0;
unsignedcharcodedispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
unsignedcharcodepoint[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//带小数点数的代码
voiddisplay(ucharx);
voidxianshiwendu();
voidReadTime()
{
miao=BCD_Decimal(read_1302(0x81));
fen=BCD_Decimal(read_1302(0x83));
shi=BCD_Decimal(read_1302(0x85));
ri=BCD_Decimal(read_1302(0x87));
yue=BCD_Decimal(read_1302(0x89));
nian=BCD_Decimal(read_1302(0x8d));
week=BCD_Decimal(read_1302(0x8b))-1;
}
ucharkey1scan()
{
if(key1==0)//---------------key1为功能键(设置键)--------------------
{
delayms(10);
//延时,用于消抖动
if(key1==0)//延时后再次确认按键按下
m++;
if(m==14)m=1;
while
(1)
{display(m);
xianshiwendu();
if(key1==1)break;
}
}
}
if(key4==0)
if(key4==0)//延时后再次确认按键按下
m=0;
}
}
returnm;
}
voidkey2scan(ucharn)
if(n!
=0)//当key1按下以下。
再按以下键才有效(按键次数不等于零)
if(key2==0)//上调键
if(key2==0)
while
(1){display(m);
if(key2==1)break;
switch(n)
case1:
year1++;
if(year1==10)year1=0;
//设置键按动1次,调nian
break;
case2:
year2++;
if(year2==10)year2=0;
break;
case3:
nian1=nian/10;
nian1++;
if(nian1==10)nian1=0;
temp=nian1*16+(nian)%10;
//十进制转换成DS1302要求的DCB码
write_1302(0x8e,0x00);
//允许写,禁止写保护
write_1302(0x8c,temp);
//向DS1302内写年份寄存器8cH写入调整后的年份数据BCD码
write_1302(0x8e,0x80);
//打开写保护
break;
case4:
nian2=nian%10;
nian2++;
if(nian2==10)nian2=0;
temp=nian/10*16+nian2;
break;
case5:
yue1=yue/10;
yue1++;
if(yue1==2)yue1=0;
temp=yue1*16+(yue)%10;
write_1302(0x88,temp);
//向DS1302内写月份寄存器88H写入调整后的月份数据BCD码
case6:
yue2=yue%10;
yue2++;
if(yue/10==1){if(yue2==3)yue2=0;
}if(yue/10==0){if(yue2==10)yue2=0;
temp=yue/10*16+yue2;
case7:
ri1=ri/10;
ri1++;
if(yue==2){if(ri1==3)ri1=0;
}if(yue!
=2){if(ri1==4)ri1=0;
temp=ri1*16+(ri)%10;
write_1302(0x86,temp);
//向DS1302内写日期寄存器86H写入调整后的日期数据BCD码
case8:
ri2=ri%10;
ri2++;
if(ri2==10)ri2=0;
temp=(ri/10)/10*16+ri2;
case9:
shi1=shi/10;
shi1++;
if(shi1==3)shi1=0;
temp=shi1*16+(shi)%10;
write_1302(0x8e,0x00);
//允许写,禁止写保护
write_1302(0x84,temp);
//向DS1302内写小时寄存器84H写入调整后的小时数据BCD码
case10:
shi2=shi%10;
shi2++;
if(shi/10==2)
{
if(shi2==5)shi2=0;
}
elseif(shi2==10)shi2=0;
temp=shi/10*16+shi2;
case11:
fen1=fen/10;
fen1++;
if(fen1==6)fen1=0;
temp=fen1*16+(fen)%10;
write_1302(0x82,temp);
//向DS1302内写分寄存器82H写入调整后的分数据BCD码
case12:
fen2=fen%10;
fen2++;
if(fen2==10)fen2=0;
temp=fen/10*16+fen2;
case13:
week++;
if(week==8)week=1;
temp=(week)/10*16+(week)%10;
write_1302(0x8a,temp);
//向DS1302内写周寄存器8aH写入调整后的周数据BCD码
write_1302(0x8e,0x80);
}
voidkey3scan(ucharn)
if(key3==0)//上调键
if(key3==0)
if(key3==1)break;
{
case1:
year1--;
if(year1==(0-1))year1=9;
year2--;
if(year2==(0-1))year2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 万年历 时间 调节