日常更新7!
单片机IO口的结构:
这里为了严谨,T1、T2是MOS管而非三极管,但功能和用法与三极管完全一样:T1为PNP型,T2为NPN型。三极管与MOS管的不同之处在于三极管靠电流导通,而MOS管靠电压导通。
准双向IO: 内部输出1经反向后为0,不导通,IO与上拉电阻相连,为高电平。 内部输出0经反向后为1,单通。IO导通到GND,为低电平。
开漏输出: 比如单片机的P0口,没有内部的上拉电阻,这时候要想正常的使用IO控制,就必须在外部加上拉电阻。如果不接,那么IO将处于不确定状态。
强推挽输出: 上拉电阻很小,或者直接没有上拉电阻,有着很强的输出输入电流的能力。 内部输出1,经反向为0,T1导通,IO为高电平; 内部输出0,经反向为 1,T1不导通,T2导通,接地,IO为低电平。
高阻态: 电平状态虽它后面接的东西而定,一般处于悬空状态,理论上电阻值无穷大。
如何设置IO口的状态: 可通过设置PXM1:PXM0的值:
PXM1:PXM0
0 0 准双向口(传统IO)
0 1 推挽输出(强上拉 ,电流可达20mA,尽量少用)
1 0 仅为输入(高阻)
1 1 开漏,如传统8051的P0口
例:C语言中直接赋值
P1M0 = 0xC0;
P1M1 = 0xA0;//P1.7开漏,P1.6高阻,P1.5强推挽输出,其他准双向IO口 上下拉电阻: - 上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻起到一个限流的作用,下拉就是下拉到低电平。
- 1、OC门要输出高电平,外部必须加上拉电阻。
- 2、加大普通IO口的驱动能力。
- 3、起到限流的作用。
- 4、抵抗电磁干扰。
上下拉电阻的选取原则: - 1、从降低功耗方面考虑应该足够大,因为电阻越大,电流越小。
- 2、从确保足够的引脚驱动能力考虑应该足够小,电阻越小,电流才能越大。
- 3、开漏输出时,过大的上拉电阻会导致信号上升沿变缓。
过大的上拉电阻会导致信号变缓。
完整的Word格式文档51黑下载地址:
|