标题:
单片机控制独立键盘相关程序问题
[打印本页]
作者:
1279095941
时间:
2020-10-10 14:46
标题:
单片机控制独立键盘相关程序问题
// 要求:按下key1时led电点亮,按下key2时熄灭
//问题;按下key1时能点亮led,但是按下key2时不能熄灭
#include<reg52.h>
sbit led=P1^0;
sbit key1=P3^0;
sbit key2=P3^2;
void delay(int x)
{
int y,z;
for(z=x;z>0;z--)
for(y=114;y>0;y--);
}
void main()
{
while(1)
{
if(key1==0)
{
delay(20);
if(key1==0)
led=0;
}
else if(key2==0)
{
delay(20);
if(key2==0)
led=0xff;
}
}
}
作者:
1224527279
时间:
2020-10-10 15:58
你这个LED是定义一个io口,相当于一个bit,最好不要给它赋值0xff,赋值为1即可。你再把else if换成if试试
作者:
13317970316
时间:
2020-10-11 23:27
把else去掉就行了应该
作者:
上进求学
时间:
2020-10-21 09:17
else去掉,最好在每次键盘按下后加个等待按键释放程序。
eg while(key1!=0)再写之后程序
作者:
一片一城
时间:
2020-10-21 11:49
#include<reg52.h>
sbit led=P1^1;
sbit key1=P3^4; //两个独立按键。
sbit key2=P3^5;
void delay(unsigned int z) //延时防抖函数。
{ while(--z); }
void main()
{
if(key1==0)
{ delay(200);
led=0;
}
if(key2==0)
{ delay(200);
led=1;
}
}
作者:
amandv
时间:
2020-10-21 19:35
sbit 结果只有0和1
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1