80C51 读引脚与读端口
说明一下两者的区别,
如何操作以实现相应功能,最好带例子,谢谢
[解决办法]
不知道你说的端口和引脚是不是这个意思?
在80C51单片机中,会把P0,P1,P2当做端口, 每一个端口里面都对应了一些位,这些位最终就体现在一个一个的引脚上面了。对他们的操作其实也就是对端口和引脚的操作。
P0,P1等端口寄存器就当作一个变量可以了,随便操作,当然如果是其类型的单片机,可能包含方向寄存器之类的限制,这个跟具体的IC有关。
引脚其实对应的就是PO,P1等端口寄存器的位,有的寄存器可以位操作,有的不行,这个跟芯片关系很大,但是如果是51的话就没有什么问题。
当然读进来的数也就是0或者1。
如果要找例子的话,网上大把的是。
[解决办法]
不知道你问的是不是,IC pin 的状态, 对应的H or L
如用8051 的P1.1 为input i/o sensor, P1.2 为output LED ON/ OFF,
if(p1.1) //sensor H
{
P1.2 =1; //LEDOn =1;
}
else
{
P1.2 =0; //LEDOn =0;
}
[解决办法]
51是准双向IO口,所以读之前要先写1。
[解决办法]
一般认为,"读端口"有"读引脚"和"读寄存器"两类操作.
汇编语言的"mov A,P0"或C的"if (P0==0x55)..."这样的代码将会读引脚,
而"ANL P0,#0FEH"或C的"P0 &= 0xfe"这样的代码会是读寄存器.
前者通常是直接引用端口的值,后者引用端口值并会将修改了的值写回去.
[解决办法]