admin管理员组文章数量:1516870
矩阵键盘
在进行矩阵按键检测的时候,对于51单片机来说,由于IO输出电流较小,驱动能力不足,若用一个A号IO口去检测B号IO口,无论B口高电平还是低电平,A口皆是低电平;若A口置高,可用来检测B口的低电平。
IO.H文件
#ifndef _MATRIX_H_
#define _MATRIX_H_#include "STC15F2K60S2.h"
#include "delay.h"#define line0 P30
#define line1 P31
#define line2 P32
#define line3 P33
#define list0 P44
#define list1 P42
#define list2 P35
#define list3 P34extern bit flagSMGScreen;
extern bit numClear;
extern unsigned char num;
extern unsigned char countPress;void key_scan();#endif
.C文件
#include "matrix.h"bit flagSMGScreen=0; //界面转换标志
bit numClear; //清零按键
unsigned char num;
unsigned char countPress;void key_scan()
{ unsigned char temp;list0=1;list1=1;list2=1;list3=1; line0=0; line1=0; line2=0; line3=0;if(list0==0||list1==0||list2==0||list3==0){Delay5ms();if(list0==0||list1==0||list2==0||list3==0){list0=1;list1=1;list2=1;list3=1; line0=0; line1=0; line2=0; line3=0;if(list0==0) temp=1;if(list1==0) temp=2;if(list2==0) temp=3;if(list3==0) temp=4;list0=0;list1=0;list2=0;list3=0; line0=1; line1=1; line2=1; line3=1;if(line0==0) temp=temp-1;if(line1==0) temp=temp+3;if(line2==0) temp=temp+7;if(line3==0) temp=temp+11;}while(!line0 || !line1 || !line2 ||!line3) //若按键一直按下去则一直在该}else temp = 20; //while中循环switch(temp){case 0: temp=20; num=1; countPress++;break; //countPress可检测case 1: temp=20; num=2; countPress++;break; //按键按下的次数case 2: temp=20; num=3; countPress++;break; //num指某个按键代表的值case 3: break; //可任意修改case 4: temp=20; num=4; countPress++;break;case 5: temp=20; num=5; countPress++;break;case 6: temp=20; num=6; countPress++;break;case 7: break;case 8: temp=20; num=7; countPress++;break;case 9: temp=20; num=8; countPress++;break;case 10:temp=20; num=9; countPress++;break;case 11:break;case 12:temp=20; num=0; countPress++;break;case 13:temp=20; flagSMGScreen=~flagSMGScreen;countPress=0;break; case 14:temp=20; numClear=1;countPress--; break;default: break; }
}
本文标签: 矩阵键盘
版权声明:本文标题:矩阵键盘 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1687842651a148115.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论