程序修改

2019-08-01 16:22发布

当输入密码时,如果输入有误,当按下 删除键后,删除刚刚输入的密码,然后当再次按下数字键时,接着开始,程序如下,怎样修改呢?

void get_psw(void)  //输入密码
{
     unsigned char i;
    lcd_c_send(0xc0); //第二行显示“*”
     for (i=0;i<8 ;i++ )
       {
          keyscan();
         while (keynum>=11 && keynum<=15) //除0~10以外,(10为删除键)其他键值则不响应
          keyscan();
           {
                psw_mem[i]=keynum;   //键值送暂存区保存
                lcd_d_send(0x2a);     //*号
                delay1(20);        //短延时,才能显示最后一个“*”
           }
     }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
ousj
1楼-- · 2019-08-02 13:32
 精彩回答 2  元偷偷看……
栩栩如生
2楼-- · 2019-08-02 15:18
void get_psw(void)  //输入密码
{
     unsigned char i,j;
write_com(0x80+0x40);//指令指向第二行第一个
    lcd_c_send(0xc0); //第二行显示“*”
     for (i=0;i<8 ;i++ )
       {
          keyscan();
        write_com(0x80+0x40+j);//讲指针指到*号处写入密码
         psw_mem[i]=keynum;   //键值送暂存区保存
          while (keynum>=11 ) ;//除0~10以外,(10为删除键)其他键值则不响应  
            lcd_d_send(0x30+keynum);//这里用1602显示,0x30加上一个数显示在液晶上就是那个数
                lcd_d_send(0x2a);     //*号
                j++;
                delay1(20);        //短延时,才能显示最后一个“*”
     }
}
liuzaiy
3楼-- · 2019-08-02 16:06
这个不难,

每次输入后,所有字符刷新显示,删除键就是缓冲区的有效字符个数减一
yinxiangh
4楼-- · 2019-08-02 18:58
搞个缓冲,就好了啊
pengf
5楼-- · 2019-08-02 19:39
谢谢楼上所有高手的回帖,让我很受启发,有了灵感,已经解决了!程序如下:
void get_psw(void)  
{
     unsigned char i;
   lpp:
     lcd_c_send(0xc0); //第二行显示“*”

    for (i=0;i<8 ;i++ )
       {
          keyscan();
          while (keynum>=11 && keynum<=15)//除0~9以外,其他键值则不响应
          keyscan();
               {
          if(keynum!=10) //如果没按下删除键
          {
                    psw_mem[i]=keynum;          //键值送暂存区保存
             lcd_d_send(0x2a);     //*号
             delay1(20);        //短延时,才能显示最后一个“*”
         }
              else
              {
              lcd_c_send(0xc0);
             for (i=0;i<8 ;i++ )
             {
               lcd_d_send(0x20);
              lcd_d_send(0x10);
             }
                  goto lpp;
              }
         }
     }
}

程序虽然实现了删除功能,但是用了goto来调转,不知除了用goto向上跳转外,还能用什么方法向上跳转?
司徒老鹰
6楼-- · 2019-08-03 00:58
 精彩回答 2  元偷偷看……

一周热门 更多>