单片机P2端口,我用矩阵键盘编写的调时程式出现乱码
发布网友
发布时间:2023-05-28 00:21
我来回答
共2个回答
热心网友
时间:2024-12-01 20:05
我就搞不懂了,K1按下后,P2=0x7F(0b0111 1111),3×3键盘所在 P20~P25全是1,它是怎么识别后面的 K2、K3的。
这程序,大量使用delay ,不闪烁就见鬼了。
这程序,没有松手检测,不乱加就见鬼了。
从TR0=~TR0可以看出,LZ已经会定时器了。会定时器,还在使用Delay,就有点“活该”的味道了。
如果你从网上某某视频学的,建议你删了那些个视频,真的害人不浅。
如果你是纯粹自己乱想做的,建议你改变一下编程思维。
1、延时不是靠delay来做的。单片机中,与时间有关的东西,是定时器。应该采用定时器计时的方法作为时间标准。
2、可救的是,LZ对按键,还没使用while(K==0)。按键是否按下、是否松手,不需要死等,只要记录按键状态即可判断。从无到有,即为按下,从有到无,即为松手。
3、51单片机只能识别低电平,不能识别高电平。单片机识别高电平,其实是通过识别,不是低电平来认为是高电平的。让键盘扫描端口=1,只会让单片机无法识别按键。
热心网友
时间:2024-12-01 20:05
矩阵键盘仿真实例,实例按键用了P1口,P0&P2是数码管显示,
可以P2&P1对换试试(只要P1换成P2,P2换成P1就可以了,电路也要对换哦)。