
51单片机按键控制液晶时间增加
参照郭天祥写的,但这一处讲的略快,可以使光标定位到某个时间,但按键无法增加,程序如下。voidkeyscan(){keyout=0;//让矩阵按键变成独立按键if(k1=...
参照郭天祥写的,但这一处讲的略快,可以使光标定位到某个时间,但按键无法增加,程序如下。
void keyscan()
{
keyout=0;//让矩阵按键变成独立按键
if(k1==0)//选择要暂停的地方,是分、秒、还是时
{
delay(5);
if(k1==0)
{
while(!k1);
k1num++;//记录按键次数
if(k1num==1)
{
TR0=0;
write_cmd(0xc0+11);//秒地址
write_cmd(0x0f);//闪烁
}
if(k1num==2)
{
write_cmd(0xc0+8);//分地址
}
if(k1num==3)
{
write_cmd(0xc0+5);//时
}
if(k1num==4)
{
k1num=0;
write_cmd(0x0c);//无光标无闪烁
TR0=1;//归零,继续运行
}
}
}
if(k1num!=0)//判断是否有暂停了
{
if(k2==0)//增加键按下
{
delay(5);
if(k2==0)
{
while(!k2);
if(k1num==1)//秒增加
{
miao++;
if(miao==60)
{
miao=0;
write_sfm(10,miao);//运算显示函数
write_cmd(0x80+0x40+10);
}
}
if(k1num==2)//分增加,没写
{
}
if(k1num==3)//时增加,没写
{
}
}
}
}
} 展开
void keyscan()
{
keyout=0;//让矩阵按键变成独立按键
if(k1==0)//选择要暂停的地方,是分、秒、还是时
{
delay(5);
if(k1==0)
{
while(!k1);
k1num++;//记录按键次数
if(k1num==1)
{
TR0=0;
write_cmd(0xc0+11);//秒地址
write_cmd(0x0f);//闪烁
}
if(k1num==2)
{
write_cmd(0xc0+8);//分地址
}
if(k1num==3)
{
write_cmd(0xc0+5);//时
}
if(k1num==4)
{
k1num=0;
write_cmd(0x0c);//无光标无闪烁
TR0=1;//归零,继续运行
}
}
}
if(k1num!=0)//判断是否有暂停了
{
if(k2==0)//增加键按下
{
delay(5);
if(k2==0)
{
while(!k2);
if(k1num==1)//秒增加
{
miao++;
if(miao==60)
{
miao=0;
write_sfm(10,miao);//运算显示函数
write_cmd(0x80+0x40+10);
}
}
if(k1num==2)//分增加,没写
{
}
if(k1num==3)//时增加,没写
{
}
}
}
}
} 展开
2个回答
展开全部
if(miao==60)
{
miao=0;
write_sfm(10,miao);//运算显示函数
write_cmd(0x80+0x40+10);
}
此处应去掉大括号 。 有大括号的话只有你按到60才会看到数字变了
{
miao=0;
write_sfm(10,miao);//运算显示函数
write_cmd(0x80+0x40+10);
}
此处应去掉大括号 。 有大括号的话只有你按到60才会看到数字变了

2023-06-12 广告
单片机复位电路原理通常包括以下几个主要步骤:1. 电平检测:单片机复位电路需要检测一个关键参数,即控制器的复位引脚是否处于高电平(2V)。如果复位引脚没有高电平,复位电路就会启动一个复位过程来清除单片机内部的错误状态并将其恢复到正常状态。2...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
试试看.....
if(k1num==2)//分增加,没写
{
fen++;
if(fen==60)
fen=0;
write_sfm(7,fen);//分的显示
write_cmd(0x80+0x40+7);
}
if(k1num==3)//时增加,没写
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);//时的显示
write_cmd(0x80+0x40+4);
}
if(k1num==2)//分增加,没写
{
fen++;
if(fen==60)
fen=0;
write_sfm(7,fen);//分的显示
write_cmd(0x80+0x40+7);
}
if(k1num==3)//时增加,没写
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);//时的显示
write_cmd(0x80+0x40+4);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询