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条回答
yy888
2020-02-08 15:15
【29楼】 cowboy

的确是,你的理解是正确的,程序我未细看。向你致歉。

不过,P3 ^= (P3 ^ a) & 0x0f; 写法还有一个问题,假如其输出直接驱动晶体管(利用其内部上拉电阻),那么,不管其输出是 0 还是 1 , 读入均是 0 (三极管基极对发射极电压为 0.65V) , 这种写法 P3 ^= (P3 ^ a) & 0x0f; 可能要出错,还是【30楼】 shinehjx 的写法  
        P3 &= a | 0x0F;               // 先改变要变低的位  
        P3 |= a & 0xF0;               // 再改变要变高的位  
来的保险。

我没仔细分析,以上意见仅供参考。

一周热门 更多>