比如要选择这个锁存器那么需要得到Y5C=1 -->Y7=0 WR=0
WR默认为0通过138译码器选中Y7(138译码器输出为0的有效)
138译码器输入口由P2高3位控制,但是我们写代码的时候只能控制这3位不能影响到其它口的状态(低5位状态保持不变),要不然会出错,由此需要用代码实现如下
代码(想要只控制高3位让低5位的状态保持主要是利用了//0和任意数相或状态不变//1和任意数相与状态不变)
如果想从选中Y5C改成Y6C,只需更改0xa0高3位(高三位分别对应CBA)
口诀:高3清零低位保持改|的数前3位(CBA选Yx)
公式:P2=(P2&0x1F)|0x(CBA0)0