51单片机怎么在矩阵按键扫描时保证数码管不受影响

51单片机怎么在矩阵按键扫描时保证数码管显示不受影响,每次我按下矩阵时,数码管就会黑掉,应该是我的扫描函数中在按下时有停顿,导致数码管的扫描暂停了

根据你的描述 我分析你可能存在以下问题:

  • 你的矩阵扫描中存在阻塞,比如按下后就停止扫描,并且等待你的按钮弹起。
  • 你矩阵按钮串联的电阻过小,导致掉电。

解决方案 :

  • 如果你矩阵扫描存在阻塞,可能是因为你需要记录长按的时长。可以添加 3 个全局变量 分别为 按钮状态 , 按下时间· , 抬起时间 。这样子就不需要堵塞住来记入按下按钮的时间了。
  • 如果是因为掉电的话,只需要在矩阵按钮上串联上更大的电阻即可。

$$\color{red}{有问题的话可以再问我,望采纳}$$

可以考虑这样,显示的数据定义为一个全局变量,在定时器中断里执行刷新,每次定时器中断切换一位的显示。按键就按普通的写,执行玩按键的检测后,更新全局显示变量。

  1. 确保按键扫描延时不过长;
  2. 仔细检查代码中的按下键时候的处理机制

最简单的方法,将数码管扫描丢定时器里