说明一下两者的区别,
如何操作以实现相应功能,最好带例子,谢谢
不知道你说的端口和引脚是不是这个意思?
在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;
}
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢
一般认为,"读端口"有"读引脚"和"读寄存器"两类操作.
汇编语言的"mov A,P0"或C的"if (P0==0x55)..."这样的代码将会读引脚,
而"ANL P0,#0FEH"或C的"P0 &= 0xfe"这样的代码会是读寄存器.
前者通常是直接引用端口的值,后者引用端口值并会将修改了的值写回去.
引用: 引用 6 楼 l888888h 的回复:
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢
看具体应用了!外部没有上拉电阻的需要先写1,如果有的话就不用了!