摇摇棒画面自己跳转

2019-07-16 04:54发布

接通电源后两个画面总是自己跳转。。。把p3.0的那根线断掉 仍然自己跳转 下面是主函数和开头端口定义。。将主函数中去抖动判断里的pic++去掉则不会跳转 也就是没有给key信号 pic++也是执行的 求大神帮忙解释一下啊。。。。。。。。。



#include<reg52.h>   //52单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义
#define uchar unsigned char
#define uint  unsigned int
sbit KEY=P3^0;
void display1(void);
void display2(void);



void main(void)       //入口函数
{
EA=1;   //首先开启总中断
EX0=1;    //开启外部中断 0
IT0=1;
KEY=1;        //设置成下降沿触发,0为低电平触发
while(1)     //主程序中只检测按键
{
   if(KEY==1)     //画面切换键按下
   {
    delay(10000);     //按键去抖
    if(KEY==1)
     pic++;
   }
   if(pic==2)
    pic=0;
  }

ky=0;
clip_image001.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lovezjf234
1楼-- · 2019-07-16 07:48
把key==1改为key==0;还有按键去抖动不需要延时那么长,在按键最后加一句while(key==0);
yin188103
2楼-- · 2019-07-16 10:41
怎么做的
zhouchaozinc
3楼-- · 2019-07-16 10:59
lovezjf234 发表于 2012-8-10 16:10
把key==1改为key==0;还有按键去抖动不需要延时那么长,在按键最后加一句while(key==0); ...

“while(KEY==0);”是防止按键时间过长跳两次的么?下面是我改的。。。貌似是比较正常了。。。

while(1)     //主程序中只检测按键
{
   if(!KEY)     //画面切换键按下
   {
    delay(8000);     //按键去抖
    if(!KEY)
     pic++;
   P0=0x00;    //这5行我加的显示切换成功的提示
   P2=0x00;
   delay(5000);
   P0=0xff;
   P2=0xff;
   while(KEY==0);  //这个是加这里么?
   }
   if(pic>3)
    pic=0;
      
  }
zhouchaozinc
4楼-- · 2019-07-16 14:41
 精彩回答 2  元偷偷看……
yin188103
5楼-- · 2019-07-16 17:54
我做了一个,感觉视觉效果不好啊,画面看着不清楚
粪斗青年
6楼-- · 2019-07-16 19:53
{谢谢分享:12:}{:12:}

一周热门 更多>