我又仔细的想了一下,能实现但是比较麻烦.
我又仔细的想了一下,能实现但是比较麻烦. 用138的C作为LED显示和键盘扫描的开关. 当C=1时,键盘扫描与164的移位同时进行;当C=0时点亮其中一位LED. 当然这个时候的键盘扫描就需要修改了.需要根据移入164的数据与控制CLK的状态所组成的数据顺序进行键盘扫描的读取.而不是按照顺序读取. 让4位LED都点亮,这个过程就需要重复4遍.而在点亮每一位LED的时候,还需要注意当前138的A与B的值,并且注意先改变A与B的值最后改变C值, 同时要注意164的锁存值是在CLK的上升沿改变的,也就是138的A在选择哪位LED点亮的时候不能产生上升沿.即在串行操作164的时候,A的状态要停留在1上.这样就可以避免在选通LED的时候产生上升沿.
经过上面的处理,在主程序中进行循环,那么LED的显示就会产生视觉存留现象,就好像4个LED一起亮. |
|