资讯详情

51单片机学习之5-独立按键和矩阵键盘

14

的原理

键盘分编码键盘(例如电脑键盘)和非编码键盘(自己用程序去识别)。

非编码键盘分:独立式非编码键盘(独立按键)、行列式非编码键盘(4*4阵列键盘)

独立键盘的电路图。

因为51单片机的IO口不是双向口而是准双向口,要让IO口具备输入功能,必须将IO口置1,置1之后当按键按下时IO口的电平会被拉低,即被置0。当检测到IO口为0时即可判断该按键已经按下。按键按下时会有一个抖动的过程(弹片会抖动),由于单片机检测IO口速度非常快,超过弹片抖动的频率,所以当单片机检测到IO口为0时需延时一小段时间再检测IO是否为0,如果仍为0就确认该按钮被按下。因为IO口里面有上拉,所以当松开按钮时,IO口又被拉高。

例程:

#include<reg52.h>

#defineuintunsignedint

#defineucharunsignedchar

sbitKey=P3^4; //按键

sbitLed=P1^0; //Led

voiddelay(uintz);

/********主函数********/

voidmain()

{

while(1)

{

if(!Key)

{

delay(10); //消抖操作

if(!Key)

Led=0; //按下时Led

else

Led=1;

}

}

}

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台