c51--独立按键
独立按键控制LED亮灭
1、观看引脚图,看到K1、2、3、4都是连接在GND上,所以P30等接收到低电平就是按下了按键。

2、思路整理:按下给一个值,放开给一个值
#include void main()
{P2 = 0xFF;//初始化LEDwhile(1){if(P31==0)//检测是否按下{P2_0 = 0;//点亮}if(P31==1)//检测是否放开{P2_0 = 1;//关闭}}
}
独立按键控制LED状态
1、思路整理:按一下取反值
2、直接开写:
先用软件延时函数生成一个20ms的函数用于按键消抖,注意系统频率和指令集别选错了

创建main文件,代码如下:
#include void Delay20ms() //@11.0592MHz
{unsigned char i, j;i = 36;j = 217;do{while (--j);} while (--i);
}void main()
{P2=0xFE;//先点亮一个LEDwhile(1){if(P31==0)//检测是否按下{Delay20ms();//消抖while(P3_1==0);//按键按下然后放开才生效Delay20ms();//消抖P2_0 = ~P2_0;//反转LED}}
}
独立按键控制LED的二进制显示
思路整理:利用自增符号,由于灯是低电平亮,所以自增后取反
#include void Delay20ms() //@11.0592MHz
{unsigned char i, j;i = 36;j = 217;do{while (--j);} while (--i);
}unsigned char Num;
void main()
{P2=0xFF;//初始化while(1){if(P31==0)//检测是否按下{Delay20ms();//消抖while(P3_1==0);//按键按下然后放开才生效Delay20ms();//消抖Num++;P2 = ~Num;}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
