找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 398|回复: 9
收起左侧

请教单片机P0和P2端口问题

[复制链接]
ID:97678 发表于 2025-6-14 14:45 | 显示全部楼层 |阅读模式
1.0 .7z (5.18 KB, 下载次数: 0) P0 和 P2 管脚有什么不同。相同的配置,P2的8个脚都可以点亮LED,但是,P0 的8脚不能点亮LED, 为什么原因?
回复

使用道具 举报

ID:517951 发表于 2025-6-14 17:47 | 显示全部楼层
51单片机的P0端口是准双向口, 驱动LED时需要灌电流方式驱动. STC的51单片机可以配置IO为推挽方式, 驱动能力更强一些.
回复

使用道具 举报

ID:879809 发表于 2025-6-14 17:57 | 显示全部楼层
P0默认没有上拉,你用高电平电灯不行,只能用低电平。
回复

使用道具 举报

ID:1109793 发表于 2025-6-14 18:22 | 显示全部楼层
P0没有上拉?都不发电路图
回复

使用道具 举报

ID:1114752 发表于 2025-6-14 19:54 | 显示全部楼层
比如说51单片机,没记错的话,p0是无上拉电阻的,所以给高电平的话是高阻态,不能直接点亮,需要外界电阻,而p2端口是自带上拉电阻的,给高电平可以直接点亮
回复

使用道具 举报

ID:1144680 发表于 2025-6-14 20:16 | 显示全部楼层
无图无真相。
回复

使用道具 举报

ID:1064915 发表于 2025-6-15 08:26 | 显示全部楼层

究竟什么是上拉电阻?它有何作用呢?简而言之,上拉电阻是一种电阻元件。在作为输入使用时,它能够将输入端的电位拉高;若输入为低电平状态,则上拉电阻能提供必要的电流源。因此,当P0口作为输入端且处于高阻抗状态时,通过外接上拉电阻可以确保其有效工作。
1.png 2.png


由图2可见,每个P0口都包含以下元件:一个锁存器,两个三态输入缓冲器以及一个输出驱动电路。在访问外部存储器时,P0口扮演着双向角色的关键部分。当P0口输出地址/数据信息时,CPU内部的法控制电平“1”会激活与门,同时通过模拟开关MUX将地址/数据信息经反相器和T1接通。这里,我们称上面的场效应晶体管FET为T1,下面的场效应管FET为T2。


输出的地址/数据信息既会通过与门驱动T1,也会通过反相器驱动T2,从而构成一个推拉输出电路。当P0口作为外部扩展存储器的数据地址总线时,其操作方式如下:


若地址数据信息为“0”,则信号会使T1截止而T2导通。经过反相器的作用,T2接收到的信号变为“1”,根据场效应晶体管的特性,T2导通后,其上下N极导通,发射极接地信号为“0”,这使得P0口相当于接收到了“0”信号。


若地址数据信息输入为“1”,则信号会使T2截止而T1导通。在T1导通状态下,其上下N极导通,使得VCC与P0相同,从而输出高电平,即“1”信号。


当从P0口输入信号时,信号会通过引脚和输入缓冲器进入内部总线。


此外,当P0口作为一般I/O口使用时,其操作方式也有所不同:


CPU内部发布控制信号“0”,该信号会封锁与门并使T1截止。同时,模拟开关MUX将锁存器的非Q端与T2端的栅极接通。


在P0口作为输出时,由于非Q端和T2的倒相作用,内部总线上的信息与到达P0口上的信息是同相的。只要写脉冲加到锁存器的CL端,内部总线上的信息就会出现在P0的引脚上。


需要注意的是,由于此时T2为漏极开路输出,因此需要外接上拉电阻以确保正常工作。
当P0口作为输入时,由于信号同时作用于T2和下方的三态缓冲器,若我们刚刚输出的信号为“0”,即锁存器数据为“0”,则经过非Q反相后驱动T2导通,从而将P0引脚信号钳制在“0”电平,导致无法读入“1”信号。为了避免这种情况,我们需要在输入信号前,先向锁存器的Q端写入“1”,使非Q端为“0”,从而切断T2的导通,这就是准双向口的运作原理。但在访问外部存储器时,CPU会自动向锁存器Q写入“1”,因此对于用户而言,P0口在作为数据/地址总线时,实际上是一个真正的双向口。接下来,我们进一步探讨为何需要上拉电阻。
3.png
由于P0口内部未配备上拉电阻,其驱动能力依赖于外部电路,因此在多数情况下,为确保P0口能正常工作,需要外接上拉电阻。当P0口用于驱动PNP管子时,低电平有效,此时无需上拉电阻;而驱动NPN管子时,则需要上拉电阻来确保后端导通。


简而言之,上拉电阻的作用是将不确定的信号钳位在高电平,同时起到限流作用。它从电源高电平引出,接到输出端。对于OC或OD输出,上拉电阻是必需的,否则无法输出高电平。此外,若输出电流较大导致电平降低,上拉电阻可以提供额外的电流分量,提高电平。


在51系列单片机中,P0口作为通用I/O口使用时,内部输出电路为OD,必须外接上拉电阻才能输出高电平;而PPP3口内部已具备上拉电阻,因此无需额外接上。但请注意,在某些情况下(如需减小压降),仍需适当添加上拉电阻以确保电路正常工作。


回复

使用道具 举报

ID:1110477 发表于 2025-6-15 09:31 | 显示全部楼层
查一下,P0口是否连接了上拉排阴
回复

使用道具 举报

ID:584814 发表于 2025-6-16 09:44 | 显示全部楼层
如果没异样,楼上皆正解。
51的P0一般是没有拉电阻的,可以看各试验板原理图,只有P0加电阻。
回复

使用道具 举报

ID:996773 发表于 2025-6-16 11:22 | 显示全部楼层
p0当然也能点亮,原因就是楼主不发图,喜欢让别人猜谜语啊,大家互相猜,都一起嘴嗨就能解决问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表