矩阵按键扫描函数---线路不管怎样接,此函数可适用,可做底层函数

这是一个适用于3*8或8*8矩阵按键的扫描函数,能够灵活适应不同的线路连接。通过列扫描和行数据检测,当有按键按下时,返回对应的按键编码,无按键按下则返回0。
摘要由CSDN通过智能技术生成

//此按键数为3*8, 可支持8*8

#include<reg51.h>

#define COM(x1,x2,x3,x4,x5,x6,x7,x8) ((x1&0xff)|((x2&0xff)<<1)|((x3&0xff)<<2)|((x4&0xff)<<3)|((x5&0xff)<<4)|((x6&0xff)<<5)|((x7&0xff)<<6)|((x8&0xff)<<7))    //编成一个字节数据
#define ROW_NUM  3  //矩阵列数

sbit Gate1 = P3^2; //按键控制端口1(列扫描)共8*3列
sbit Gate2 = P3^3; //按键控制端口2(列扫描)
sbit Gate3 = P3^4; //按键控制端口3(列扫描)
sbit Dial_KeyOne   = P0^6;//表盘按键1                      矩阵不管怎样接,只改变这里的定义
sbit Dial_KeyTwo   = P2^6;//表盘按键2
sbit Dial_KeyThree = P2^7;//表盘按键3
sbit Dial_KeyFour  = P2^5;//表盘按键4
sbit Dial_KeyFine  = P2^4;//表盘按键5
sbit Dial_KeySix   = P2^3;//表盘按键6
sbit Dial_KeySeven = P2^0;//表盘按键7
sbit Dial_KeyEight = P3^0;//表盘按键8


/
//矩阵按键扫描,有按键按下,返回
//相应按键编码,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值