找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

麻烦各位给小弟指点迷津。谢谢!

[复制链接]
admin 发表于 2012-9-2 10:04:24 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
这个按键检测的程序功能是按下功能选择键,所选位置光标闪烁;按下增加键时,LCD上显示的数增加,并将此数值写入DS1302中。这个程序的问题是功能键能正常工作,按下增加键时没反应。麻烦各位给小弟指点迷津。谢谢!


void keyscan(void )
{
uchar func_num;
P3=0xff;
//功能选择键,按下键时,所选位置光标闪烁
if(function==0)
{
delay(20);
if(function==0)
{

// WriteSet1302(0x81,0x80);//时钟暂停
flag=1;
func_num++;
while(!function);
if(func_num==1)
{
ReadValue = ReadSet1302(0x81); //从秒寄存器读数据
second=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F);//将读出数据转化
// WriteSet1302(0x81,0x80);//时钟暂停
write_com(0x80+0x40+10);
write_com(0x0f);
}
if(func_num==2)
{

ReadValue = ReadSet1302(0x83); //从分寄存器读
minute=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //将读出数据转化
// WriteSet1302(0x81,0x80);//时钟暂停
write_com(0x80+0x40+7);
write_com(0x0f);

}
if(func_num==3)
{

ReadValue = ReadSet1302(0x85); //从时寄存器读
hour=((ReadValue&0x70)>>4)*10 + (ReadValue&0x0F); //将读出数据转化
// WriteSet1302(0x81,0x80);//时钟暂停
write_com(0x80+0x40+4);
write_com(0x0f);

}
if(func_num==4)
{
func_num=0;
flag=0;
write_com(0x0c);
// WriteSet1302(0x81,0x00);//时钟开启
Set_DS1302(second,minute,hour,day,month,year,week);

}

}

//判断增加键是否按下
if(func_num!=0)
{
if(add==0)
{
delaynus(50);

if(add==0)
{
//add_num++;
while(!add);
if(func_num==1)
{

second++;
if(second==60)
second=0;
write_sfm(10,second);
write_com(0x80+0x40+10);

}
if(func_num==2)
{

minute++;
if(minute==60)
minute=0;

write_sfm(7,minute);
write_com(0x80+0x40+7);


}
if(func_num==3)
{

hour++;
if(hour==24)
hour=0;
write_sfm(4,hour);
write_com(0x80+0x40+4);

}





}
}

}


}

}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-31 03:26 , Processed in 0.055616 second(s), 11 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表