微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 单片机按键开关控制流水灯在protues问题

单片机按键开关控制流水灯在protues问题

时间:10-02 整理:3721RD 点击:
矩阵键盘的都做了,可是这独立键盘的就是不行,不是说反应迟钝是按了许久一点反应都没,我做的是通过按键控制流水灯。这是我画的图有错吗?
以下是我的代码,代码都换了好几套,这个是现在的,是哪没注意到吗?又做过的给点资料谢谢,困扰很久了。
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar  recenty_key;
uchar led_data=0xfe;
void delay(uint xms)
{
         uint i,j;
                 for(i=xms;i>0;i--)
                    for(j=115;j>0;j--);
}
void scanfkey()
{
    if(P3!=recenty_key)
        {
                   if(P3&0x10==0)
                        {
                                           P1=0x00;
                                   delay(1000);
                                }
                       else if(P3&0x20==0)
                           {
                                      P1=0xff;
                                         delay(1000);
                           }
                           else if(P3&0x40==0)
                           {
                                      led_data=_crol_(led_data,1);
                                 P1=led_data;
                                 delay(1000);
                           }
                           else if(P3&0x80==0)
                           {
                                          led_data=_crol_(led_data,1);
                                  P1=led_data;
                                  delay(1000);
                           }
        }
}
void main()
{
     recenty_key=0xff;
         while(1)
         {
                scanfkey();
         }
             
}


请注意& 和 == 的优先级。

请注意按键扫描逻辑,逻辑不通。

谢谢,看来以前其他方式也是代码有问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top