标题:
在按键计数时,为何我按一次键它计数几次
[打印本页]
作者:
君成
时间:
2016-5-14 19:50
标题:
在按键计数时,为何我按一次键它计数几次
请问我错在哪里,我也有加按键消抖处理
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit k0=P2^0;
uint i;
uchar code segcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar wei[]={0xef,0xdf,0xbf,0x7f};
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
if(k0==0)
{
delay(10);
while(1)
{
if(k0==0)
{
P2=wei[0];
P0=segcode[i];
delay(100);
}
i++;
if(i==9)i=0;
}
}
}
作者:
ahshmj
时间:
2016-5-14 20:13
可能,一是按键质量不好。二是消抖延时不够。适当加大延时试一试。
作者:
狂奔的菜鸟
时间:
2016-5-14 20:55
if(k0==0)
{
P2=wei[0];
P0=segcode[i];
delay(100);
while(k0==0)
{}
}
作者:
sxszpeng
时间:
2016-5-14 23:05
没加松手检测
作者:
lgjdqm
时间:
2016-5-15 15:25
把延时加长点
作者:
luoluoluo136
时间:
2016-5-16 14:25
抖动啊。。。你看看消抖处理。。。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1