C51中8位数据能组成一个字节吗,送小姨子咯

2020-02-04 09:26发布

还是用实例说明一下,
8段数码管,数据口分别是a,b,c,d,e,f,g,h  为了布线方便,并没有接在同一个IO口上
实际是这样对应的
a---p1.0
b---p1.1
c---p1.2
d---p1.7
e---p3.4
f---p3.5
g---p3.6
h---p3.7

请问送数据的时候该怎么送呢?
不能像以前接同一个IO口那样,直接 led_data = 0x80; 了

请赐教~

送上小姨子


@_@~~ (原文件名:9000_1248748811W5D5.jpg)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
65条回答
cowboy
2020-02-07 12:58
再次思考许工提及的问题,发现【18楼】的程序并不会出现错误。问题的关键聚集到这条指条,“XRL P3,A”,这是一个 读-修改-写 的过程,在执行这条指令时,首先读入P3,问题来了,这个“读”究竟是读入P3口的“输入状态”寄存器,还是读入P3口的“输出状态”寄存器呢?,如果是前者,那么程序就会引起错误,如果是后者,程序就能正常。我认为MCU内核中是以后者方式运作,即读入P3口的输出状态寄存器,为了验证这个观点,用Proteus仿真了一下,证实了这个想法。同理,“ANL P3,A” “ORL P3,A”这两条指令也符合这种情况,否则,想用“ANL P3,#0FH”来保持低4位输出状态不变的方法也不成立。

一周热门 更多>