要想彻底理解单片机P0口加上拉电阻的问题,必须要从P0端口的结构及工作原理入手。51系列单片机有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,共有32根端口线。这是针对最早的MCS-8051系列来说的,现在国内最新的STC公司生产的12系列、15系列的单片机对此有新的定义,读者可自行查阅相关资料进行了解。......
2023-11-17
单片机输出低电平时,将允许外部元器件向单片机引脚内灌入电流,这个电流称为“灌电流”,外部电路称为“灌电流负载”;单片机输出高电平时,则允许外部元器件从单片机的引脚拉出电流,这个电流称为“拉电流”,外部电路称为“拉电流负载”。这些电流一般是多少?最大限度是多少?这就是常见的单片机输出驱动能力的问题。早期的51系列单片机的带负载能力是很小的,P1~P3口,每个引脚可以带动3个TTL输入端,只有P0口的能力强,可以带动8个。但分析一下TTL的输入特性就可以发现,51单片机基本上没有驱动能力,它的引脚甚至不能带动LED进行正常发光。直到AT89C51单片机流行起来之后,单片机引脚的能力大为增强,可以直接带动LED发光了。
如图7-2所示,图中的D1、D2就可以不经其他驱动器件,直接由单片机的引脚控制发光显示。
从AT89C51单片机的PDF手册文件中可以看到,稳态输出时,“灌电流”的上限为:
即每个单个的引脚,输出低电平时,允许外部电路向引脚灌入的最大电流为10mA;每个8位的接口(P1、P2以及P3),允许向引脚灌入的总电流最大为15mA,而P0的能力强一些,允许向引脚灌入的最大总电流为26mA;全部的四个接口所允许的灌电流之和最大为71mA。而当这些引脚“输出高电平”时,单片机的“拉电流”能力竟然不到1mA。因此,单片机输出低电平时,驱动能力尚可,而输出高电平时,就没有输出电流的能力。
51单片机的这些特性,是源于引脚的内部结构,引脚内部结构图详见参考文献[2]。在芯片的内部,引脚和地之间,有个MOS管,所以引脚具有下拉的能力,输出低电平时,允许灌入10mA的电流;而引脚和正电源之间,有个几百千欧的“内部上拉电阻”,所以引脚在高电平时,能够输出的拉电流很小。但P0口的内部没有上拉电阻,所以P0口没有高电平输出电流的能力。
如图7-2所示,图中的D1是接在正电源和引脚之间的,属于灌电流负载,D1在单片机输出低电平时发光。这个发光的电流可以用电阻控制在10mA之内。图中的D2是接在引脚和地之间的,属于拉电流负载,D2应该在单片机输出高电平时发光。但是单片机此时几乎没有输出能力,必须采用外接“上拉电阻”的方法来提供D2所需的电流。(www.chuimin.cn)
图7-2 51单片机的I/O端口
从图7-2中可以看到,D2发光是由上拉电阻R2提供的电流,D2导通发光的电压约为2V,那么发光的电流就是(5-2)/1k,约为3mA。而当单片机输出低电平(0V),D2不发光时,R2这个上拉电阻两端的电压,比LED发光时还高,达到5V,其中的电流是5mA。LED不发光时,上拉电阻给出了更大的电流,并且这个大于正常发光的电流全部灌入单片机的引脚。如果在一个8位的接口,安装了8个1kΩ的上拉电阻,当单片机都输出低电平时,就有40mA的电流灌入这个8位的接口,如果四个8位接口,都加上1kΩ的上拉电阻,最大有可能出现32×5=160mA的电流,都流入到单片机中,这个数值已经超过了单片机手册上给出的上限。如果此时单片机工作不稳定,就是理所当然的了。而且这些电流都是在负载处于无效的状态下出现的,它们都是完全没有用处的电流,只是产生发热、耗电大、电池消耗快等后果。那么,把上拉电阻加大些,可以吗?显然不行,因为需要它为拉电流负载提供电流。对于LED,如果加大电阻,将使电流过小,发光暗淡,就失去发光二极管的作用了。
对于D1,是灌电流负载,单片机输出低电平时,R1、D1通路上会有灌电流;输出高电平时,那就什么电流都没有,此时不产生额外的耗电。
综上所述,“灌电流负载”是合理的;而“拉电流负载”和“上拉电阻”会产生很大的无效电流,这种电路不合理。
有关51单片机案例笔记的文章
要想彻底理解单片机P0口加上拉电阻的问题,必须要从P0端口的结构及工作原理入手。51系列单片机有4个双向的8位并行I/O端口,分别记作P0、P1、P2、P3,共有32根端口线。这是针对最早的MCS-8051系列来说的,现在国内最新的STC公司生产的12系列、15系列的单片机对此有新的定义,读者可自行查阅相关资料进行了解。......
2023-11-17
51单片机一般采用40引脚双列直插封装,图3-5为单片机引脚排列图。详细介绍参见3.1.1节。1)复位引脚RST:9引脚RST为单片机上电复位输入端,只要在该引脚上连续保持两个机器周期以上的高电平,单片机就可以实现复位操作。4):31引脚为访问程序存储器控制信号。......
2023-11-04
硬件设计一个嵌入式系统的硬件电路设计包括三部分内容:单片机芯片的选择、单片机系统扩展、系统配置。2)系统的扩展与外设配置的水平应充分满足应用系统当前的功能要求,并留有适当余地,便于以后进行功能的扩充。4)整个系统中相关的元器件要尽可能做到性能匹配。2)各功能程序实现模块化、系统化。4)运行状态实现标志化管理。软件抗干扰是计算机应用系统提高可靠性的有力措施。......
2023-10-28
AT89S51是单片机的一种型号,这种型号下有DIP、PLCC、TQFP等封装。DIP封装的芯片从芯片插座上插拔时应特别小心,以免损坏引脚。51单片机的DIP封装如图2-8所示。图2-8 51单片机的DIP封装a)器件外观 b)器件外观及尺寸图2-8 51单片机的DIP封装(续)c)电路符号 d)焊接剖面51单片机的PLCC封装如图2-9所示。4)芯片面积与封装面积之间的比值较小。......
2023-10-28
2)片外程序存储空间,简称片外ROM。C51的6种存储类型与存储空间的对应关系如表5-2所示。表5-2C51的存储类型与存储空间的对应关系表5-3C51的存储类型及其数据长度和值域当使用存储类型data、bdata定义常量和变量时,C51编译器会将它们定位在片内数据存储空间中,这个存储区根据单片机的型号不同,其长度也不同。整型变量var的存储类型是pdata,C51编译器将该变量定位在片外RAM中,并用指令MOVX@Ri访问。......
2023-11-17
单片机的发展过程分为以下几个发展阶段。第四代单片机:1983年以后是16位单片机和8位高性能单片机并行发展的时代。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。......
2023-11-04
“准”就是“基本上的意思”,也就是“准双向口”不是真正的双向口。双向与准双向,根本区别是双向包含高阻这个状态,而不在于是否需要先写1或者不写。而真正的双向I/O口,有方向控制寄存器,作为输入使用时输出部分被断开。......
2023-10-28
如上述C代码中,把延时函数的定义删除了,然后把延时函数的实现搬到main函数的上面,编译后程序代码减少到63个字节,减少了4个字节,如图6-5所示。图6-4 编译结果2图6-5 编译结果3省略函数形参函数带形参,是为了在函数调用时传递实参,不但可以避免重复代码出现,还可以通过传递不同的实参值多次调用函数且实现不同的函数功能,总体代码也会得到精简。......
2023-10-28
相关推荐