标题: 单片机矩阵按键程序问题 [打印本页]

作者: hxy52zero    时间: 2024-10-28 20:52
标题: 单片机矩阵按键程序问题
[attach]331772[/attach]这两个函数是控制晋中51实验板的矩阵按键的,但是左边的jiance函数在执行下面的主函数时无论按什么键都是4个重复的数字,
而右边的MatrixKey函数就可以(例如:按下1显示0001,再按下2显示0012.....)
下面是主函数,那个压缩包里面就是源文件

有人可以帮忙看看吗?
搞一下午了




新建文件夹.zip

11.74 KB, 下载次数: 11


作者: qinlu123    时间: 2024-10-29 08:03
不行得话你直接用我的程序算了,验证好多年了稳定可靠功能多
作者: hxy52zero    时间: 2024-10-29 09:35
qinlu123 发表于 2024-10-29 08:03
不行得话你直接用我的程序算了,验证好多年了稳定可靠功能多

其实我就是想知道是什么原因导致的

作者: glinfei    时间: 2024-10-29 10:30
我没看全啊,就是想问问这个函数 int jiance() 为啥返回INT 型数据
作者: qinlu123    时间: 2024-10-29 10:36
hxy52zero 发表于 2024-10-29 09:35
其实我就是想知道是什么原因导致的

你是咋理解^这个运算符的,你这个矩阵键盘扫描算法t1和t2应该是或的关系为啥要用异或呢
作者: qinlu123    时间: 2024-10-29 10:52
用异或也是可以的在这里效果和或一样。你的8个IO都加上拉电阻了吗
作者: hxy52zero    时间: 2024-10-29 11:16
glinfei 发表于 2024-10-29 10:30
我没看全啊,就是想问问这个函数 int jiance() 为啥返回INT 型数据

给它定义的不是int吗?
作者: lkc8210    时间: 2024-10-29 11:30
4个重复的数字是按什么键?出现哪4个?
作者: hxy52zero    时间: 2024-10-29 11:40
qinlu123 发表于 2024-10-29 10:36
你是咋理解^这个运算符的,你这个矩阵键盘扫描算法t1和t2应该是或的关系为啥要用异或呢

开始是用的或,也检查了几遍,但是行不通,然后用异或就行得通了,所以用的异或
作者: hxy52zero    时间: 2024-10-29 11:52
qinlu123 发表于 2024-10-29 10:52
用异或也是可以的在这里效果和或一样。你的8个IO都加上拉电阻了吗

都加上了,我看的原理图
作者: hxy52zero    时间: 2024-10-29 15:04
lkc8210 发表于 2024-10-29 11:30
4个重复的数字是按什么键?出现哪4个?

就是按什么键,这个键对应的数字重复4次
作者: lkc8210    时间: 2024-10-29 15:36
hxy52zero 发表于 2024-10-29 15:04
就是按什么键,这个键对应的数字重复4次

因为你没有松手检测啊,MatrixKey()有while(P1_x==0);


作者: qinlu123    时间: 2024-10-29 16:59
lkc8210 发表于 2024-10-29 15:36
因为你没有松手检测啊,MatrixKey()有while(P1_x==0);

按道理将他这程序按键一直按下可以检测到的,我上学那会也这么做过行得通
作者: hxy52zero    时间: 2024-10-29 17:00
lkc8210 发表于 2024-10-29 15:36
因为你没有松手检测啊,MatrixKey()有while(P1_x==0);

原来是这样,等下去试试




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1