标题: 单片机独立键盘没反应 [打印本页]

作者: AnRan_    时间: 2022-2-18 22:33
标题: 单片机独立键盘没反应
我写的程序,想按下S2之后让八个led灯全部亮,但是现在按下S2之后没有任何反应,有没有人可以帮我看一下哪里的问题
  1. #include <reg52.h>
  2. #include <intrins.h>

  3. sbit key1=P3^0;
  4. sbit key2=P3^1;

  5. void delay(unsigned char z)//zms延时
  6. {
  7.         unsigned char i, j;
  8.         while(1)
  9.         {
  10.                 _nop_();
  11.                 i = 2;
  12.                 j = 199;
  13.                 do
  14.                 {
  15.                         while (--j);
  16.                 } while (--i);
  17.                 z--;
  18.         }
  19. }

  20. void main()
  21. {
  22.         while(1)
  23.         {
  24.                 if(key1==0)
  25.                 {       
  26.                         delay(20); //消抖
  27.                         if(key1==0)
  28.                         {
  29.                                 P1=0x00;       
  30.                         }       
  31.                         while(!key1) ;//松手检测               
  32.                 }
  33.         }
  34. }
复制代码


独立键盘.png (32.82 KB, 下载次数: 52)

独立键盘

独立键盘

流水灯.png (78.33 KB, 下载次数: 42)

流水灯

流水灯

作者: lkc8210    时间: 2022-2-18 23:28

void delay(unsigned char z)//zms延时
{
        unsigned char i, j;
        while(z)
        {
                _nop_();
                i = 2;
                j = 199;
                do
                {
                        while (--j);
                } while (--i);
                z--;
        }
}
作者: AnRan_    时间: 2022-2-19 08:54
lkc8210 发表于 2022-2-18 23:28
void delay(unsigned char z)//zms延时
{
        unsigned char i, j;

谢谢,我明白了
作者: szhuide    时间: 2022-2-20 22:38
延时函数的有问题,是1ms延时
作者: mimidog111    时间: 2022-2-23 10:36
延时函数时间太短了~




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1