首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

80C51 读引脚与读端口解决思路

2012-03-02 
80C51 读引脚与读端口说明一下两者的区别,如何操作以实现相应功能,最好带例子,谢谢[解决办法]不知道你说的

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"这样的代码会是读寄存器.
前者通常是直接引用端口的值,后者引用端口值并会将修改了的值写回去.
[解决办法]

探讨
读引脚,即读引脚处的电平
读端口,即读取与引脚相连的寄存器内的值
书上说读引脚数据前要先写“1”,不是很懂,请举例。读端口的情况呢?谢谢

热点排行