历史上的今天
今天是:2025年01月25日(星期六)
2021年01月25日 | 51单片机IO口的输入输出方式
2021-01-25 来源:eefocus
简介:传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路。
灌电流方式:LED正极接VCC,负极接IO口。IO为高电平是LED两极电平相同,没有电流,LED熄灭;IO为低电平时,电流从VCC流入IO,LED点亮。但是当你吧LED正极接在IO接口,负极接GND时,将IO接口置于高电平,LED会亮,但因为IO接口上拉能力不足而使亮度不理想,可以用下面介绍的方式解决这个问题。
推挽工作方式:LED正负极分别接在两个IO口上,然后设置正极IO接口为推挽输出,负极IO接口为标准双向灌电流输入。推挽方式具有强上拉能力,可以实现高电平驱动LED。
IO口的四种使用方法
从I/O口的特性上看,标准51的P0口在作为I/O口使用时,是开漏结构,在实际应用中通常要添加上拉电阻;P1、P2、P3都是准双向I/O,内部有上拉电阻,既可作为输入又可以作为输出。而LPC900系列单片机的I/O口特性有一定的不同,它们可以被配置成4种不同的工作模式:准双向I/O、推挽输出、高阻输入、开漏。
准双向I/O模式与标准51相比,虽然在内部结构上是不同的,但在用法上类同,比如要作为输入时都必须先写“1”置成高电平,然后才能去读引脚的电平状态。!!!!!为什么是这样子?见下面图解分析。
推挽输出的特点是不论输出高电平还是低电平都能驱动较大的电流,比如输出高电平时可以直接点亮LED(要串联几百欧限流电阻),而在准双向I/O模式下很难办到。
高阻输入模式的特点是只能作为输入使用,但是可以获得比较高的输入阻抗,这在模拟比较器和ADC应用中是必需的。
开漏模式与准双向模式相似,但是没有内部上拉电阻。开漏模式的优点是电气兼容性好,外部上拉电阻接3V电源,就能和3V逻辑器件接口,如果上拉电阻接5V电源,又可以与5V逻辑器件接口。此外,开漏模式还可以方便地实现“线与”逻辑功能。
对于上面疑问的解释,有这样一个资料:

高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。
电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。他的极限可以认为悬空。
高阻态的典型应用:
1、在总线连接的结构上。总线上挂有多个设备,设备与总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。
2、大部分单片机I/O使用时都可以设置为高阻输入,如凌阳,AVR等等。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。
上一篇:利用51单片机设计闪烁灯
下一篇:基于51单片机的舵机控制
史海拾趣
|
《ARM Linux入门与实践》一书当中,关于触摸屏的那一节有几个地方不理解。 该程序的说明是:“代码并没有使用S3C2410A中的触摸屏控制器,而是通过直接控制FPIO的4个晶体管的导通和截止” P220: void Wait_Touch(void) { XMON_O ...… 查看全部问答> |
|
上次提交的原理图,由于美信没有提供MAX17005B充电管理芯片,导致无法进行下去。为此,重新在美信网站溜达一圈,按照以下原则,确定该次芯片选型和原理图设计。 1。 芯片没有停产,可以继续使用,美信提供样品。 2。 封装不能是QFN ...… 查看全部问答> |
|
组建一个简单的工业以太网,一台x86工控机当服务器,用网线联一台工业以太网交换机,交换机再连一台PLC,PLC 连接底层设备。 假设服务器上我装的就是普通的windows XP操作系统,上面运行我的工控软件。 请问我这个算是工业以太网吗?工业以太网不 ...… 查看全部问答> |
|
近来忙着家事,有一段时间没有上来了,今天顺着2011-1-11,这么多棍棍的日子,上来溜达一下。 看到自从夏老师到网站上来座镇解答FPGA的相关问题,网站上FPGA的热情洋溢,很有气氛,觉得这里有蛮多朋友 ...… 查看全部问答> |
|
请问能否仅通过430的串口往里面烧写程序? 谢谢! 搜了一下,有很多卖BSL的,除了需要TXD、RXD外,还需要一些别的脚。 有没有这么一种软件?当430的串口与计算机串口通过MAX232之类的芯片一接,在电脑上运行这个软件,直接就把程序烧进去了。… 查看全部问答> |
|
如题,我最近在学习LPC1114,照着51编写了一个LPC1114控制18b20的程序,可是怎样都不能成功,希望那个大仙能分享下自己的成功的程序,在此谢谢啦… 查看全部问答> |
|
是这样的,我是用串行方式写的代码,上电后发现显示中文字符会乱码。英文和数字则显示正常,不知道怎么回事 [ 本帖最后由 冷板凳 于 2012-9-25 15:50 编辑 ]… 查看全部问答> |




