1. 程式人生 > >51微控制器第二彈---獨立鍵盤

51微控制器第二彈---獨立鍵盤

今天學獨立鍵盤模組。。

原理圖如下:

          

可以看到微控制器上有4個按鍵,分別命名為K1,K2,K3,K4。。對應的IO分別為 P3.1,P3.0,P3.2,P3.3 

對應圖如下。。

 

工作原理:

以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 char
sbit 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--);
}