通过软件来协调是可以实现的,但是这样子搞多麻烦啊!
已经有好几位给你提供了方案。
下面说一下针对本问题是咋通过软件实现的
1、P2.3置为1
2、P2.5产生脉冲,此脉冲作为74HC164的时钟输入。
3、P2.4根据需要产生数码管的数据。
4、
(1) 以上三步在操作的时候必然会关闭四个三极管,也即关闭位选,因此74HC164移位的时候不会影响数码管的显示,同时又能给数码管准备数据。
(2)以上三步在操作的时候只能使138出现这么几种情况,Y4 OR Y5 OR Y6 OR Y7有效。当然,到底谁有效跟P2.4的数据有关,反正只要P2.4的数据是变化的,就能遍历Y4 AND Y5 AND Y6 AND Y7,这说明了什么呢?不正是按键扫描的操作么。
5、P2.3置0,然后根据当前哪位数码管点亮来确定P2.5和P2.4的状态。