80C51 读引脚与读端口

a62701255   2010-4-18 11:29 楼主
说明一下两者的区别,
如何操作以实现相应功能,最好带例子,谢谢

回复评论 (11)

请看datasheet
点赞  2010-4-18 11:59
读引脚和读端口,什么意思?
点赞  2010-4-18 13:54
读引脚和读端口,什么意思?
点赞  2010-4-18 13:54
不知道你说的端口和引脚是不是这个意思?

在80C51单片机中,会把P0,P1,P2当做端口, 每一个端口里面都对应了一些位,这些位最终就体现在一个一个的引脚上面了。对他们的操作其实也就是对端口和引脚的操作。

P0,P1等端口寄存器就当作一个变量可以了,随便操作,当然如果是其类型的单片机,可能包含方向寄存器之类的限制,这个跟具体的IC有关。

引脚其实对应的就是PO,P1等端口寄存器的位,有的寄存器可以位操作,有的不行,这个跟芯片关系很大,但是如果是51的话就没有什么问题。

当然读进来的数也就是0或者1。

如果要找例子的话,网上大把的是。
点赞  2010-4-18 17:21

不知道你问的是不是,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;
        }
点赞  2010-4-18 19:53
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢
点赞  2010-4-18 21:24
51是准双向IO口,所以读之前要先写1。
点赞  2010-4-18 22:30
一般认为,"读端口"有"读引脚"和"读寄存器"两类操作.

汇编语言的"mov A,P0"或C的"if (P0==0x55)..."这样的代码将会读引脚,
而"ANL P0,#0FEH"或C的"P0 &= 0xfe"这样的代码会是读寄存器.
前者通常是直接引用端口的值,后者引用端口值并会将修改了的值写回去.
点赞  2010-4-19 08:15
引用: 引用 6 楼 l888888h 的回复:
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢

看具体应用了!外部没有上拉电阻的需要先写1,如果有的话就不用了!
点赞  2010-4-19 08:15
引用: 引用 6 楼 l888888h 的回复:
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢
同意
点赞  2010-4-19 11:02
貌似有点没听懂啊,看书啊
点赞  2011-11-11 01:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复