51单片机矩阵键盘与8051连接设计_第1页
51单片机矩阵键盘与8051连接设计_第2页
51单片机矩阵键盘与8051连接设计_第3页
51单片机矩阵键盘与8051连接设计_第4页
51单片机矩阵键盘与8051连接设计_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 单片机矩阵键盘与8051连接设计 众所周知,51单片机一般的键盘检测原理为非编码键盘检测,没有专门用来产生键编码号或键值的电路芯片;而我们使用的电脑键盘为编码键盘,通过编码电路芯片为每个按键产生一个编码号,可以通过串行总线把键值传输给电脑。在开展矩阵键盘检测时,书本或老师一般教的都是扫描检测,即一行一行地检测或者一列一列地检测,代码繁琐复杂,且缺点很多(例如执行效率较低)。 举例电路: 矩阵键盘与8051连接如上图所示,首先,令P3=0 x0f,检测P30、P31、P32、P33哪一行被按下,将此时P3的值存入存放器1。然后,令P3=0 xf0 | 存放器1,检

2、测P34、P35、P36、P37哪一列被按下,将此时P3的值存入存放器2。,把存放器1的值和存放器2的值组合起来即可得到矩阵键盘的编码。 代码如下: #includereg52.h unsigned char NUM=1; /* 特殊功能位定义 */ sbit L1=P00; sbit L2=P01; sbit L3=P02; sbit L4=P03; sbit L5=P04; sbit L6=P05; sbit L7=P06; sbit L8=P07; sbit DUAN=P26; sbit WEI=P27; /* 定时器0初始化函数 */ void init() EA=1; ET0=1;

3、TMOD=0X01; TH0=(65536-10000)/256; TL0=(65536-10000)%256; /* 中断服务函数 */ void TImer0()interrupt 1 TR0=0; /定时终止 TH0=(65536-10000)/256; /定时器0初值重装 TL0=(65536-10000)%256; NUM-; /* 矩阵键盘检测兼编码函数 */ unsigned char matrixkeyscan() unsigned char temp,reg1=0,reg2=0,key=0; /temp为临时变量,reg1为存放器1,reg2为存放器2,key为键盘编码号 P

4、3=0 x0f; temp=P3&0 x0f; if(temp!=0 x0f) /按键检测兼行坐标检测 TR0=1; / while(NUM); / 10ms去抖动延时 NUM=1; / temp=P3&0 x0f; if(temp!=0 x0f) /二次检测 reg1=temp; /把行坐标存入存放器1 P3=reg1|0 xf0; /关键,没有这句将导致整个函数出错 temp=P3&0 xf0; if(temp!=0 xf0) /检测列坐标 reg2=temp; /把列坐标存入存放器2 key=reg1|reg2; /将存放器1和存放器2开展按位或,作用是组合坐标,格式为八位二进制的“列坐

5、标行坐标” while(temp!=0 xf0) /等待按键释放 temp=P3&0 xf0; return key; /* 按键功能实现函数 */ void keyfuncTIon() unsigned char kvalue=0; kvalue=matrixkeyscan(); switch(kvalue) case 0 xee: L1=L1;/*按键01功能*/ break; case 0 xde: L2=L2;/*按键02功能*/ break; case 0 xbe: L3=L3;/*按键03功能*/ break; case 0 x7e: L4=L4;/*按键04功能*/ break;

6、 case 0 xed: L5=L5;/*按键05功能*/ break; case 0 xdd: L6=L6;/*按键06功能*/ break; case 0 xbd: L7=L7;/*按键07功能*/ break; case 0 x7d: L8=L8;/*按键08功能*/ break; case 0 xeb: /*按键09功能*/ break; case 0 xdb: /*按键10功能*/ break; case 0 xbb: /*按键11功能*/ break; case 0 x7b: /*按键12功能*/ break; case 0 xe7: /*按键13功能*/ break; case 0 xd7: /*按键14功能*/ break; case 0 xb7: /*按键15功能*/ break; case 0 x77: /*按键16功能*/ break; default:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论