🌹作者简介: @鹤辞 ,喜欢玩弄单片机,嵌入式,PCB制作,电路设计等等,希望自己的学习经历经验能够对你们有启发
🌹前期回顾:单片机之中断系统篇_@鹤辞的博客-优快云博客
🌹努力目标:突破1000粉丝
🌹支持鹤辞:点赞👍,留言👏, 关注💖,收藏🤞
51单片机独立按键
按键的基本原理
按键右端接GND,左边接到单片机的IO口,同时接了一个上拉电阻,当按键未按下时,P2.0为高电平(学过模电的人都应该知道为什么吧)当按键按下时,相当于P2.0口与GND相连为 低电平。
按键的消抖(重点)
可以从上图看到,断开和闭合之间有一些毛刺现象,这样,当我们按键按下时,我们无法判别此时P2.0口到底是高电平还是低电平,所以,这是我们要解决的问。
通常按键消抖有两种方式:
1,软件消抖(简易,省资源,常用)
利用延时程序代码进行消除抖动的一种方式。
2,硬件消抖
主要利用锁存器来实现按键消抖的一种方式。
3,利用protues实现模拟
代码多种编写:
第一种编写:
#include <reg52.h>
sbit key=P2^0;
unsigned char smg[]={0x3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F};
bit falg=0;
unsigned char num=0;
void key_scan()
{
if(key==0&&falg==0)
{
falg=1;
}
if(key==1&&falg==1)
{
num++; falg=0;
}
}
void smg_display()
{
P3=smg[num];
if(num==10)
num=0;
}
int main()
{
while(1)
{
key_scan();
smg_display();
}
}
第二种编写:
void key()
{
if(key_1==0)
{
Delay10ms();
if(key_1==0)
led=~led;
}
while(!key_1);
}
❀❀❀下期:矩阵键盘多种编写
文章制作不易,感谢你的喜欢!点赞👍,留言👏, 关注💖,收藏🤞
下期再见吧🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍🐱🏍