电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)

4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)_第1页
1/6
4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)_第2页
2/6
4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)_第3页
3/6
1 / 6 4× 4 矩阵键盘原理及其在单片机中的简单应用 基于Proteus 仿真 1、 4× 4 矩阵键盘的工作原理 如下图所示,4 × 4 矩阵键盘由4 条行线和4 条列线组成,行线接P3.0- P3.3,列线接P3.4- P3.7, 按键位于每条行线和列线的交叉点上。 2 / 6 按键的识别可采用行扫描法和线反转法,这里采用简单的线反转法,只需三步。 第一步,执行程序使X0~X3 均为低电平,此时读取各列线Y0~Y3 的状态即可知道是否有键按下。当无键按下时,各行线与各列线相互断开,各列线仍保持为高电平;当有键按下时,则相应的行线与列线通过该按键相连,该列线就变为低电平,此时读取Y0Y1Y2Y3 的状态,得到列码。 第二步,执行程序使Y0~Y3 均为低电平,当有键按下时,X0~X3 中有一条行线为低电平,其余行线为高电平,读取X0X1X2X3 的状态,得到行码。 第三步,将第一步得到的列码和第二步得到的行码拼合成被按键的位置码,即Y0Y1Y2Y3X0X1X2X3(因为行线和列线各有一条为低电平,其余为高电平,所以位置码低四位和高四位分别只有一位低电平,其余为高电平)。 也就是说,当某个键按下时,该键两端所对应的行线和列线为低电平,其余行线和列线为高电平。比如,当0 键按下时,行线X0 和列线Y0 为低电平,其余行列线为高电平,于是可以得到0键的位置码Y0Y1Y2Y3X0X1X2X3 为01110111,即0X77。当5 键按下时,行线X1 和列线Y1 为低电平,其余行列线为高电平,于是可得到5 键的位置码Y0Y1Y2Y3X0X1X2X3 为10111011,即0XBB。全部矩阵键盘的位置码如下: 2、4×4 矩阵键盘在单片机的简单应用举例(一) 如下图所示,运行程序时,按下任一按键,数码管会显示它在矩阵键盘上的序号 0~F,并且蜂鸣器发出声音,模拟按键的声音。此处采用线反转法识别按键。 C 程序如下: 3 / 6 #include #define uchar unsigned char #define uint unsigned int sbit buzzer=P1^0; uchar code dis[]= //0~9,A~F 的共阳显示代码 {0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0X88,0X83, 0XC6,0XA1,0X86,0X8E}; uchar code tab[]= //矩阵键盘按键位置码 { 0x77,0xb7,0xd7,0xe7, 0x7b,0xbb,0xdb,0xeb, 0x7d,0xbd,0xdd,0xed, 0x7e,0xbe,0xde,0xee }; void delay(uint x) //延时函数 {uchar i; while(x--) for(i=0;i<120;i++); } uchar scan() //矩阵键盘扫描函数,得到按键号,采用线反...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

4×4矩阵键盘原理及其在单片机中的简单应用(基Proteus仿真)

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部