2020-02-04 09:10发布
唯诚hhw2 发表于 2012-4-18 14:53 有很多错误啊!首先要判断按键是否弹起才能有显示的操作,还有写密令和写数据函数要搞清楚。 ...
最多设置5个标签!
这是我想的按键切换的子程序,不知道有没有问题,请高手指定
- void keyscan()
- {
- char a,;
- if(key==0)
- {
- delay(5);
- if(key==0)
- while(1)
- {
- write_com(0x01);//清屏
- write_com(0x80);//第一行显示
- delay(10);
- for(a=0;a<16;a++)
- {
- write_date(table1[a]);
- delay(10);
- }
- write_com(0xc0);//第二行显示
- delay(10);
- for(a=0;a<16:a++)
- {
- write_date(table2[a]);
- delay(10);
- }
- if(key==0)
- break; //检测是否第二次按下,如果按下,跳出while循环;
- }
- }
- }
复制代码按键扫描模块里怎么还有显示,把按键处理的部分单独分开,可以再按键处理模块设置显示状态变量,在直接判断这个变量
while(1)
{
if (stat = KeyDown1) //按一次
{
ShowTime()
{
else //按第二次
{
ShowInfo()
}
Scankey() //这里面设置stat的值
}
Scankey()
{
if (按键按下) //
{
if (stat = KeyDown1) //上次按键为第一次
{
stat = KeyDown2 //这次改为第二次
}
else if (stat = KeyDown2) //上次按键为第二次
{
stat = KeyDown1 //这次改为第一次
}
}
}
写数据和写命令是之前定义了的,当中的那个显示撇开不说,就是最后那个break能不能跳出啊?
一周热门 更多>