8051单片机5x5键盘扫描程序
求大神帮忙写一个8051单片机5X5的矩阵键盘扫描程序(C语言),10个端口分别5个连接P1口和6个连接P0.3这样可以吗?...
求大神帮忙写一个8051单片机5X5的矩阵键盘扫描程序(C语言),10个端口分别5个连接P1口和6个连接P0.3这样可以吗?
展开
1个回答
展开全部
完全可以,主要是程序编制,和4*4键盘原理是一样的, 一个口的5根线作为输出,轮换有一根线输出低电平,另一个口5根线作为输入,通过读到的输入数据就可以知道哪个键按下
我认为编程比4*4键盘还简单,因4*4按键只占用一个端口如P0,输出数据和读取数据用的 都是它, 而5*5键盘用的是2个端口,输出和读取相互独立,互不影响
我认为编程比4*4键盘还简单,因4*4按键只占用一个端口如P0,输出数据和读取数据用的 都是它, 而5*5键盘用的是2个端口,输出和读取相互独立,互不影响
追答
P1的 5条数据线中每次只有一个输出0,接收方P2收到的5位数据(8位只取5位)若没有0,则没有任何按健按下,若有0,再判断哪1位是0,即可知道哪个按键按下
假设不考虑消抖:
P1=0xFE
i=P2
if(i!=oxFF)
SWITCH(i)
{ case .......key=...i有5个可能值}
P1=0xFD
if(i!=oxFF)
SWITCH(i)
{ case .......key=...i又有5个可能值}
.....
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询