我总是认为串口和独立按键有冲突

2019-03-24 18:22发布

我设计了一块板子,有8只LED,三个按钮,一个串口,目的是按钮和串口结合,使LED亮,
LED1=P0^0,
LED2=P0^1,
LED3=P0^2,
LED4=P0^3,
LED5=P0^4,
LED6=P0^5,
LED7=P0^6,
LED8=P0^8,
K4=P1^4,
K5=P1^5,
K6=P1^6,
主程序如下:
main()
{
    uart();                          //串口初始化
  LED1=LED2=LED3=LED4=K5;
   LED5=K6;

   if(uartacept()==0x22)           //串口接收0x22
  {
      if(K4==0)
      {   
         delay1ms(15);                //延时15ms
         if(K4==0)
         {
             LED6=LED7=LED8=0;
         }while(!K4);
      }
     else
    {
    LED1=0;
    delay1ms(500);
   LED1=1;
   LED2=0;
    delay1ms(500);
  LED2=1;
  LED3=0;
    delay1ms(500);
  LED3=1;
    }
}
}

程序运行无误,但是按按钮没有现象。只有串口收到0x22才会使LED1,LED2,LED3闪亮。按钮无反应。
如果不运行串口部分,则按K5,LED1,LED2,LED3,LED4亮。按K6,LED5亮。如果只运行部分,则也是只有串口收到0x22才会使LED1,LED2,LED3闪亮。按钮无反应。
为什么?用的是AT89S52. 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chenzhufly
1楼-- · 2019-03-24 22:13
 精彩回答 2  元偷偷看……
youluo
2楼-- · 2019-03-25 00:04
没反应是没检测到,因为程序在运行其他的,没运行到检测的那段程序,如果用IO中断检测的话你就知道游泳了
cheatsl
3楼-- · 2019-03-25 01:25
谢谢,我试试
Lunar12
4楼-- · 2019-03-25 03:52
 精彩回答 2  元偷偷看……

一周热门 更多>