Global Sources
电子工程专辑网站
首页 | 登录 | 现在注册  

大学实践课堂
学校和社会相距多远?即将踏入社会的你有什么样的感想和憧憬?其实这段距离或许与你的年龄、学识无关,真正决定跨距尺度的,是你“转型”期间的态度!电子工程专辑大学实践课堂专区给你一个畅想未来,积极“备战未来”的空间,在这里你可以畅谈未来的理想,可以向资深人士学习踏入社会的攻略,更可以和你的师兄师弟师姐师妹共同回忆大学那段青涩的时光!快来这里寻找你的机遇与灵感,在众人的智慧中绘出属于自己的精彩人生吧!
 


发表新主题 发表新主题 
收藏该主题... 收藏   打印这个帖子... 打印   关注该主题... 关注   推荐这个帖子... 推荐
楼主      问题: 关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-21 下午11:23

作者: HuWh
等级: 白银掌门
积分: 8770 分

发送消息

查看用户的所有发言

  对于51单片机的I/O口及外部拉电阻,常见到一些模糊认识。稍微总结一下,或许有点用处。
▲ P1, P2,P3口:对地有一个晶体管做的开关,对电源是内部有个集成电阻(大约几十K~200K前后),
  输出时,是由内部晶体管拉到0,或由内部上拉电阻拉到1。
    输入时,片内已有上拉,不存在输入悬空的可能。如果数据来自外面的OC门,片内上拉电阻就成了OC门的上拉。如果数据来自外面的非OC门,则片内上拉电阻已无用处了。
▲ P0口:片内对电源、对地各有一个晶体管做的开关,无上拉、下拉电阻。
    输出时,是由内部晶体管拉到0,或拉到1。
    输入时,会存在输入悬空的情况,但输入数据是靠外界器件来提供,故意拉上拉下均无意义。
    输入时分二种用法——总线方式或普通Input口方式,方式是由指令决定的,用MOV指令时是普通口,用MOVX指令时是总线口。
 
▲ 如果P0外部是接的OC门,为了避免输入悬空,应该用上拉电阻。
    如果P0外部是接的非OC门,则不必用上拉电阻。
    至于下拉,就不太合适了,因为不便于与OC门配合。
▲ 复位时,4个口自然是输出全1,不用人操心的。
▲ 关于上拉电阻的大小,
   上拉电阻的大小收制于对脉冲沿的时间要求,自然也跟负载电容有管。例如负载电容C=100p,希望RC<0.2uS,则R<2K。R太小会过于耗电(输出0时)。
▲P1,P2,P3口是否需要外部上拉电阻?
   内部上拉电阻大约几十K~200K前后(于产品型号厂家有关)。由上条可知,如果考虑到脉冲沿的要求,也可能需要加外部上拉电阻。
 

HuWh 编辑于 2008-1-14 上午9:38
鲜花 (
4
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 1 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-22 上午1:52

作者: PAN_M
等级: 黄金少侠
积分: 1565 分

发送消息

查看用户的所有发言

51单片机的I/O口中,P1、P2、P3内部都有上拉电阻,可以直接输出高电平和低电平,P0口内部没有上拉电阻,P0在作为I/O口时必须外接上拉电阻,才能输出高电平。I/O口外接上拉电阻后,当输出高电平时,外部负载可以通过上拉电阻获取更大的驱动电流,上拉电阻的数值可以根据负载所需的总驱动电流进行计算得到。如无特殊要求,一般可选用2K~10K欧姆的电阻。如果上拉电阻选得太小,当I/O口输出低电平时,会增加系统的功耗。

鲜花 (
1
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 2 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-22 上午8:42

作者: 流浪的尘
等级: 青铜少侠
积分: 852 分

发送消息

查看用户的所有发言

谢谢,完全明白了。 P0在不加上拉电阻时,无法输出高电平。

流浪的尘 编辑于 2007-8-22 上午8:46
鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 3 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-22 上午8:51

作者: 流浪的尘
等级: 青铜少侠
积分: 852 分

发送消息

查看用户的所有发言

所以正好解释了我以前的问题。
51的P0口,复位仍然是低电平,不是我的51损坏,也不是我的什么位配置不对。
而且我以前从书上摘的那句话也是很正确的,合理的解释了P0口。“P0口内部没有上拉电阻,这是它与其他I/O口的不同之处。。。。。”那么还有个问题,下拉时,若电阻很小会增大功耗,若不家下拉电阻,(P1~P3)会损坏么。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 4 楼      关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-21 下午11:23

作者: HuWh
等级: 白银掌门
积分: 8770 分

发送消息

查看用户的所有发言

  对于51单片机的I/O口及外部拉电阻,常见到一些模糊认识。稍微总结一下,或许有点用处。
▲ P1, P2,P3口:对地有一个晶体管做的开关,对电源是内部有个集成电阻(大约几十K~200K前后),
  输出时,是由内部晶体管拉到0,或由内部上拉电阻拉到1。
    输入时,片内已有上拉,不存在输入悬空的可能。如果数据来自外面的OC门,片内上拉电阻就成了OC门的上拉。如果数据来自外面的非OC门,则片内上拉电阻已无用处了。
▲ P0口:片内对电源、对地各有一个晶体管做的开关,无上拉、下拉电阻。
    输出时,是由内部晶体管拉到0,或拉到1。
    输入时,会存在输入悬空的情况,但输入数据是靠外界器件来提供,故意拉上拉下均无意义。
    输入时分二种用法——总线方式或普通Input口方式,方式是由指令决定的,用MOV指令时是普通口,用MOVX指令时是总线口。
 
▲ 如果P0外部是接的OC门,为了避免输入悬空,应该用上拉电阻。
    如果P0外部是接的非OC门,则不必用上拉电阻。
    至于下拉,就不太合适了,因为不便于与OC门配合。
▲ 复位时,4个口自然是输出全1,不用人操心的。
 
▲关于上拉电阻的大小,
   上拉电阻的大小收制于对脉冲沿的时间要求,自然也跟负载电容有管。例如负载电容C=100p,希望RC<0.2uS,则R<2K。R太小会过于耗电(输出0时)。
▲P1,P2,P3口是否需要外部上拉电阻?
   内部上拉电阻大约几十K~200K前后(与产品型号厂家有关)。由上条可知,如果考虑到脉冲沿的要求,也可能需要加外部上拉电阻。

HuWh 编辑于 2007-8-22 下午3:40
鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 5 楼      回复第2楼
发布时间: 2007-8-22 下午3:53

作者: HuWh
等级: 白银掌门
积分: 8770 分

发送消息

查看用户的所有发言

以下是引用 HuWh 在 2007-8-21 下午11:23 的发言
谢谢,完全明白了。 P0在不加上拉电阻时,无法输出高电平。
-----------------------
你仍然理解错了,而且是大错

HuWh 编辑于 2007-8-22 下午6:43
鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 6 楼      回复主题:回复第2楼
发布时间: 2007-8-23 下午1:53

作者: 流浪的尘
等级: 青铜少侠
积分: 852 分

发送消息

查看用户的所有发言

以下是引用 HuWh 在 2007-8-22 下午3:53 的发言

谢谢,完全明白了。 P0在不加上拉电阻时,无法输出高电平。
-----------------------
你仍然理解错了,而且是大错

我是针对我以前的问题,在上电单片机复位,P0悬空的情况下。P0不输出高电平吧。


鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 7 楼      回复主题:回复第2楼
发布时间: 2007-8-23 下午1:56

作者: 流浪的尘
等级: 青铜少侠
积分: 852 分

发送消息

查看用户的所有发言

如果复位时P0口也是1的话,那我的设计就不用该了。可是我测了3个89S52,复位时P0口都是0。
看来这个问题没解决。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 8 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-23 下午2:16

作者: HuWh
等级: 白银掌门
积分: 8770 分

发送消息

查看用户的所有发言

复位时P0口不是0,只能理解为是你外部有东西把它拉下去了,不找出这个东西,强行拉,只可能损坏器件

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 9 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-23 下午4:59

作者: 小李飞刀的刀
等级: 遁门入道
积分: 330 分

发送消息

查看用户的所有发言

路过路过,学点东西。。有大侠解答,我就说不上什么了,,哈哈。。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 10 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-23 下午5:14

作者: yuea
等级: 初入江湖
积分: 102 分

发送消息

查看用户的所有发言

谢谢,这回明白多了!

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 11 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-24 下午9:00

作者: 风雨断肠人
等级: 初入江湖
积分: 111 分

发送消息

查看用户的所有发言

路过也可以学到东西,多谢了

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 12 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-24 下午9:15

作者: PAN_M
等级: 黄金少侠
积分: 1565 分

发送消息

查看用户的所有发言

复位时P0口~P3口的锁存器输出都是FFH,用万用表测量时,由于P1~P3口内部都有上拉电阻,所以检测到的是“1”(高电平)。而P0口内部没有上拉电阻,内部上下两个晶体管都处于截止状态,输出为第三态(高阻态),万用表所检测到的对地电压应该是0V。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 13 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-24 下午9:16

作者: PAN_M
等级: 黄金少侠
积分: 1565 分

发送消息

查看用户的所有发言

复位时P0口~P3口的锁存器输出都是FFH,用万用表测量时,由于P1~P3口内部都有上拉电阻,所以检测到的是“1”(高电平)。而P0口内部没有上拉电阻,内部上下两个晶体管都处于截止状态,输出为第三态(高阻态),万用表所检测到的对地电压应该是0V。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 14 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-24 下午9:50

作者: 老兴
等级: 白银长老
积分: 4448 分

发送消息

查看用户的所有发言

51单片机复位时P0口是高阻状态,万用表所检测到的对地电压是0V,但是万用表检测对电源电压也是0V,所以非高电平也非地电平,如果复位期间一定要确定输出电平就要加电阻来控制。这个是51单片机设计之初用于总线方式的考虑,也应用的时候需要注意的问题。

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 15 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-25 上午11:50

作者: HuWh
等级: 白银掌门
积分: 8770 分

发送消息

查看用户的所有发言

完全被搅晕头了。
核实过了。也查过以前的例程,复位时P0寄存器是FF,但P0口的确是高阻状态。
如果想在上电后使其成为某需要的电平,是在上电初始化程序中实现的,对一个无效地址做了一个MOVX输出。
很多评估板上不是这种表现,因为经过了缓冲电路,所以很难发现这个现象。

HuWh 编辑于 2007-8-25 上午11:51
鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 16 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-26 上午10:59

作者: 爱吃肉的老鼠
等级: 初入江湖
积分: 159 分

发送消息

查看用户的所有发言

各位大侠的切磋解答了我许多疑问,谢谢

鲜花 (
0
)
臭鸡蛋 (
0
)
   回复该主题... 回复   引用这个帖子... 引用 
 
第 17 楼      回复主题:关于51单片机的I/O口及外部拉电阻
发布时间: 2007-8-26 上午11:06

作者: 爱吃肉的老鼠
等级: 初入江湖
积分: 159 分

发送消息

查看用户的所有发言