矩阵式键盘程序设计
矩阵式键盘程序设计
(1)定义字型码表和10ms延时程序设计。4X4矩阵键盘的16个键分别对应0~9、A~F十六个字符,由于数码管显示使用共阴极LED数码管,所以字型码采用共阴极字型码。定义字型码表和软件去抖的10ms延时程序如下:
#include
/*定义0~9,A~F十六个字符的字型码表*/ unsigned char table[]=
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; /*10ms延时程序*/
void delay10ms(void) {
unsigned char i,j; for(i=20;i>0;i--)
for(j=248;j>0;j--); }
(2)矩阵式键盘主程序设计。4X4矩阵键盘的各行接P0口的P0.0~P0.3,矩阵键盘的各列接P0口的P0.4~P0.7,P1口的P1.0~P1.7接数码管的各段。矩阵式键盘主程序如下:
void main() {
char k=0;
unsigned char tmp,key; P1=0x00;
P0=0x0f; // P0口低四位做输入口,先输出全1 tmp=P0; while(1) {
while(tmp==0x0f) //循环判断是否有键按下 {
P0=0x0f; //所有列输出低电平
tmp=P0; //读行信号 }
delay10ms(); //延时10ms去抖
P0=0x0f; //所有列输出低电平 tmp=P0; //再次读键盘状态
if(tmp==0x0f) continue; //如果无键按下则认为是按键抖动,重新扫描键盘 key=scan_key( ); //有键按下,调用键盘扫描程序,并把键值送key while(k!=-1)
{delay10ms();k=scan_key();}
P1=table[key]; //查表或字型编码送P1口,数码管显示闭合按键的编码 }
(3)矩阵式键盘扫描程序设计
unsigned char scan_key(void) //键盘扫描子程序 {
unsigned char n,scan,col,rol,tmp;
bit flag=0; //设有键按下标志位 scan=0xef;
P0=0x0f; //P0口低四位做输入口,先输出全1 for(n=0;n<4;n++) //循环扫描4列,从0列开始 {
P0=scan; //逐列送出低电平 tmp=~P0; //读行值,并取反 tmp=tmp&0x0f;
col=n; //保存列号到col flag=1;
/*判断哪一行有键按下,并保存行号到rol*/ if(tmp==0x01)
{ rol=0; break;} //第0行有键按下 else if(tmp==0x02)
{ rol=1; break;} //第1行有键按下 else if(tmp==0x04)
{ rol=2; break;} //第2行有键按下 else if(tmp==0x08)
{ rol=3; break;} //第3行有键按下 else
flag=0;
scan=(scan<<1)+1; }
if(flag==0)
return -1; else
return(rol*4+col); }
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




