当前位置: 代码迷 >> 单片机 >> 51单片机其次弹-独立键盘
  详细解决方案

51单片机其次弹-独立键盘

热度:200   发布时间:2016-04-28 14:48:33.0
51单片机第二弹---独立键盘

今天学独立键盘模块。。

原理图如下:

          

可以看到单片机上有4个按键,分别命名为K1,K2,K3,K4。。对应的IO分别为 P1,P0,P2,P3 

对应图如下。。

 

工作原理:

以K1为例,按下K1后,p3^1 接地(为0),反之松开手时为1. 首先检测P3^1是否为0,如果为0则要延时消抖(按下时会有一定的抖动)然后再执行命令,最后要检测是否松手,还是利用延时,没有松手就一直延时,当然也可以设置成长按一会就停止延时。

程序实现功能:

用独立键盘控制LED灯的移动。

源码:

#include <reg52.h>#include <intrins.h>#define GPIO_LED P2#define uint unsigned int#define uchar unsigned charsbit K1=P3^1;void Delay10ms();void main(){	uint m,n=0;	m=0xfe;//1111_1110 初始化	while(1)    {    	GPIO_LED=m;    	if(K1==0)		{			Delay10ms();//消抖			if(K1==0)			{				m=_crol_(m,1);			    while((n<50)&&(K1==0))//判断松手			    {					Delay10ms();					++n;			    }			    n=0;			}		}    }}void Delay10ms(){	uchar i=38,j=130;	while(i--)		while(j--);}


  相关解决方案