首页 > 碎碎念 > 51单片机第四天
作者:ghostry 发布时间:2016-07-30 浏览: 2642
转载注明出处: https://blog.ghostry.cn/tucao/722.html今天学习的是键盘扫描。
首先我们要注意的是按键按下并不是很理想的数字波形,而是在按下和抬起的瞬间会有抖动。
首先是独立键盘,很简单,先给io口写个1,然后再进行读取。如果变成0了,说明按键按下了。
这时候可以让数码管显示一个数字。每按一次进行数字加1,加到9就清零。然后为了去掉抖动,在按下和抬起的处理位置进行延时。
很简单的一个例子,结合数码管的静态显示。
然后是矩阵键盘,教程接的是4x4的键盘,用P3的高四位和低四位进行交叉得到一个12按键的键盘。
然后通过快速的分别检测来确定按下了哪个键。方法是先给低4位分别清零,让P3读取的数值和0b11110000进行位与,这样可以过滤掉低四位的状态只看高四位的,如果与完还是0b11110000说明没有按下键。如果高四位哪个变0了,就说明低四位清零的口和高四位变0口的交叉点的按键被按下了。我们可以用switch来根据与后的值给一个变量赋值。让不同按键分别标识不同数字。然后用数码管显示出来。这里也要注意抖动的问题。另外还要注意循环退出问题。
有了这个呢,应该就可以做计算器了。
下一篇: 51单片机第五天