按键控制液晶屏1602的显示

2019-07-18 10:38发布

请问怎么去用按键去控制液晶1602的显示呢,就是按一下按键,可以显示另外一个界面。我用while()语句检测按键,检测到了就显示,可是还是只显示我之前显示的界面。这是要怎么实现呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
武力戡乱
1楼-- · 2019-07-18 12:29
程序结构有问题。
按键只是做了一次检测。亲,你没有编程经验吧。把按键检测做到while中去。 最佳答案
武力戡乱
2楼-- · 2019-07-18 12:29
不是特别明白你的意思,正常在写一遍就会覆盖。
蒲公英不止流浪
3楼-- · 2019-07-18 13:36
武力戡乱 发表于 2016-4-16 21:33
不是特别明白你的意思,正常在写一遍就会覆盖。

这是我主程序的
void main()
{
       
        sys_init();
        DISP_TEMP();
        key();
    while(1);
按键程序:
void key(void)
{
        s0=s1=s2=0;
  if(k0==0)
  {
                delay_1ms(20);         // 延时20ms,跳过抖动期
                if(k0==0)
                {
                        s0=1;
                        DISP_ALARM();
                }
                delay_1ms(500);        // 延时500ms                  
  }
可是仿真一直出现的是DISP_TEMP()的,按键按下后DISP_ALARM()显示不出来。
蒲公英不止流浪
4楼-- · 2019-07-18 16:08
武力戡乱 发表于 2016-4-16 21:33
不是特别明白你的意思,正常在写一遍就会覆盖。

嗯嗯,谢谢亲可以啦。我还有一个小问题。。我一共有4个C文件,分为主程序和按键的,为什么我把按键扫描写在主程序上就不能实现DISP_ALARM();功能呢?
void main()
{
       
        sys_init();
        while(1)
        {
        DISP_TEMP();
//        key_scan();
        delay_1ms(500);
        if(s0==1)
        { s0=1;
        delay_1ms(100);
        DISP_ALARM();
        delay_1ms(100);
        }
        }
武力戡乱
5楼-- · 2019-07-18 20:12
蒲公英不止流浪 发表于 2016-4-17 20:21
嗯嗯,谢谢亲可以啦。我还有一个小问题。。我一共有4个C文件,分为主程序和按键的,为什么我把按键扫描写在主程序上就不能实现DISP_ALARM();功能呢?
void main()
{

按键延时大?
按键做外部中断吧。这样好点!
dmdz2015
6楼-- · 2019-07-18 20:40
路过学习。。。。。。。。。。

一周热门 更多>