【求助】按键显示数字,按下到弹起期间数码管变暗是什么原因

2019-07-15 16:24发布

P0接LED,P1接矩阵键盘
使用线反转法扫描
代码如下:

  1. uchar num = 0x10;    // 0x10 indicate character H
  2. void keyscan()
  3. {
  4.         uchar key = 0xff;    // no key pressed
  5.         uchar i;

  6.         P1 = 0x0f;
  7.         if(P1 != 0x0f)
  8.         {
  9.                 delay(10);
  10.                 if(P1 != 0x0f)
  11.                 {
  12.                         key = P1;
  13.                         P1 = 0xf0;
  14.                         key += P1;
  15.                 }
  16.         }
  17.         for(i=0;i<16;i++)        // if set i<17;then after release the key,LED will only show H
  18.         {
  19.                 if(key_code[i] == key)
  20.                 {
  21.                         num = i;
  22.                 }
  23.         }
  24. }

  25. void display()
  26. {
  27.         P0 = led_code[num];
  28.         delay(10);
  29.         P0 = 0x00;
  30. }

  31. void main()
  32. {
  33.         while(1)
  34.         {
  35.                 keyscan();
  36.                 display();
  37.         }
  38. }
复制代码



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。