糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 矩阵键盘_按键检测_按键次数检测

矩阵键盘_按键检测_按键次数检测

时间:2019-01-09 10:07:27

相关推荐

矩阵键盘_按键检测_按键次数检测

在进行矩阵按键检测的时候,对于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;}}

如果觉得《矩阵键盘_按键检测_按键次数检测》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。