2020-02-01 16:22发布
prince2010 发表于 2013-1-7 17:54 谢谢,能不能举个例子说明?
mcu_lover 发表于 2013-1-7 18:20 sbit testport = P1^0;
最多设置5个标签!
sbit testport = P1^0;
CY &= testport;
CY里面存放的就是P1^0端口的锁存器值。
呵呵,谢谢您,我试了一下,好像还是读引脚。
另外,如果单片机让某IO口输出1,但外部电路将引脚拉低,那么对应的SFR状态是保持1,还是变为0?锁存器状态又会如何?
51单片机上电复位之后,端口锁存器值为1,这个时候是可以直接读取外部引脚状态的。
如果某个既存在输入又存在输出,即端口复用的情况。如很多人在扫描数码管时候,还用来读取按键值。在这种情况下就有必要分清楚读引脚还是锁存器。
在复用的情况下,如果要知道上次输出的值(即端口锁存器的值),需要用逻辑指令去读取端口状态。如果要知道当前IO口的值,则先将端口锁存器的值保存起来。然后将端口锁存器置1,再读引脚,此时读到的就是外部真实值。
一周热门 更多>