摇摇棒画面自己跳转
时间:10-02
整理:3721RD
点击:
接通电源后两个画面总是自己跳转。把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;
#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;
把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;
}
网上好多这个的帖子呢 搜下有的是。
我做了一个,感觉视觉效果不好啊,画面看着不清楚
{谢谢分享:12:}
学习了
了解了解