|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 damengshu 于 2021-12-24 15:37 编辑 % l9 [- C% a b" j+ |
/ J0 j5 N9 Y: L
传统51单片机IO接口只可以作为标准双向IO接口,如果用其来驱动LED只能用灌电流的方式或是用三极管外扩驱动电路。$ |+ X3 j. H' I4 g! b! {
灌电流方式:LED正极接VCC,负极接IO口。IO为高电平是LED两极电平相同,没有电流,LED熄灭;IO为低电平时,电流从VCC流入IO,LED点亮。但是当你吧LED正极接在IO接口,负极接GND时,将IO接口置于高电平,LED会亮,但因为IO接口上拉能力不足而使亮度不理想,可以用下面介绍的方式解决这个问题。/ |, h. q% }' H5 B" f/ a5 F$ F
0 v& g1 j/ f( Z& W; d) _4 m% z1 ^ D/ F7 K6 K" S
推挽工作方式:LED正负极分别接在两个IO口上,然后设置正极IO接口为推挽输出,负极IO接口为标准双向灌电流输入。推挽方式具有强上拉能力,可以实现高电平驱动LED。
6 O& S1 ~7 @ K! g2 T8 \
+ d- A! x! O% O' C, w- l5 K8 i' k) A9 g
IO口的四种使用方法
* P" H6 D" D# @/ u1 L& _* b从I/O口的特性上看,标准51的P0口在作为I/O口使用时,是开漏结构,在实际应用中通常要添加上拉电阻p1、P2、P3都是准双向I/O,内部有上拉电阻,既可作为输入又可以作为输出。而LPC900系列单片机的I/O口特性有一定的不同,它们可以被配置成4种不同的工作模式:准双向I/O、推挽输出、高阻输入、开漏。
: U% l6 s; [4 _ T/ ^& M$ a准双向I/O模式与标准51相比,虽然在内部结构上是不同的,但在用法上类同,比如要作为输入时都必须先写“1”置成高电平,然后才能去读引脚的电平状态。!!!!!为什么是这样子?见下面分析。
4 I) X5 t5 w" Q: a2 ^9 a$ o! H# y# W4 V! J6 j2 }1 \4 }
1 ~4 @! g6 a% y' r1 B) ]9 X推挽输出的特点是不论输出高电平还是低电平都能驱动较大的电流,比如输出高电平时可以直接点亮LED(要串联几百欧限流电阻),而在准双向I/O模式下很难办到。* {; D' G" g8 M E( i. d* [
, c, Q8 T1 Q% ?5 y5 ^
3 P P8 ] p$ m7 h6 @; K& i高阻输入模式的特点是只能作为输入使用,但是可以获得比较高的输入阻抗,这在模拟比较器和ADC应用中是必需的。/ K4 x/ S6 y# _5 ^% M) U
( i U9 Q1 D/ H# s
2 @: W* ]& L4 v# f0 ?/ w* V( }开漏模式与准双向模式相似,但是没有内部上拉电阻。开漏模式的优点是电气兼容性好,外部上拉电阻接3V电源,就能和3V逻辑器件接口,如果上拉电阻接5V电源,又可以与5V逻辑器件接口。此外,开漏模式还可以方便地实现“线与”逻辑功能。0 ]3 q8 Y) j9 f1 v. b8 S/ @
6 c, M4 }+ @$ }1 R5 R
; {5 U7 @' I0 v8 x3 ^* y+ Z对于上面疑问的解释,有这样一个资料:
! l8 A$ F- k" f高阻态这是一个数字电路里常见的术语,指的是电路的一种输出状态,既不是高电平也不是低电平,如果高阻态再输入下一级电路的话,对下级电路无任何影响,和没接一样,如果用万用表测的话有可能是高电平也有可能是低电平,随它后面接的东西定。
) |3 `, O5 {% g' g, p* `
0 H, }* V5 s( @* a' t6 }' |& `; w; W; i" C4 M5 u
电路分析时高阻态可做开路理解。你可以把它看作输出(输入)电阻非常大。他的极限可以认为悬空。
8 ~4 ]7 x) y' {" L; B/ J/ W+ k, ^# K" l( G3 H2 L5 M+ B
- y3 o% }9 Y1 L% W1 y
高阻态的典型应用:$ F- o% a) k; U
1、在总线连接的结构上。总线上挂有多个设备,设备与总线以高阻的形式连接。这样在设备不占用总线时自动释放总线,以方便其他设备获得总线的使用权。
# K1 m% F" `3 }* h2、大部分单片机I/O使用时都可以设置为高阻输入,如凌阳,AVR等等。高阻输入可以认为输入电阻是无穷大的,认为I/O对前级影响极小,而且不产生电流(不衰减),而且在一定程度上也增加了芯片的抗电压冲击能力。
! Z2 }5 U, C+ ^
' L, X* V8 U( K' r |
|