51微控制器第二彈---獨立鍵盤
阿新 • • 發佈:2019-01-08
今天學獨立鍵盤模組。。
原理圖如下:
可以看到微控制器上有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--); }