一、GPIO口介绍
STC15W408AS单片机有14个I/O口。其所有I/O口均可由软件配置成4种类型。4种类型分别为:准双向口/弱上拉(标准8051输出模式)、推挽输出/强上拉、高阻输入(电流既不能流入也不能流出)或开漏输出功能。每个口由2个控制寄存器中的相应位控制每个引脚工作类型。STC15系列单片机的I/O口上电复位后为准双向口/弱上拉(传统8051的I/O口)模式。每个I/O口驱动能力均可达到20mA,但40-pin及40-pin以上单片机的整个芯片最大不要超过120mA,20-pin以上及32-pin以下(包括32-pin)单片机的整个芯片最大不要超过90mA。
P3口类似。
注意:
虽然每个I/O口在弱上拉(准双向口)/强推挽输出/开漏模式 是要加限流电阻,如1K,560Ω,472Ω等),在强推挽输出时能输出20mA的拉电流(也要加限流电阻),但整个芯片的工作电流推荐不要超过90m A, 即从MCU-VCC的电流建议不要超过90mA,从MCU-Gnd流出电流建议不要超过90mA,整体流入/流出电流都不要超过90mA。
二、GPIO工作模式
2.1 准双向口(弱上拉)输出配置
准双向口(弱上拉)输出类型可用作输出和输入功能而不需重新配置端口 为当端口输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,可吸收相当大的电流。准双向口有3个上拉晶体管适应不同的需要。
在3个上拉晶体管中,有1个上拉晶体管称为"弱上拉",当端口 为1时打开。此上拉提供基本驱动电流使准双向口输出为1。如果一个引脚输出为1而由外部装置下拉到低时,弱上拉关闭而"极弱上拉"维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压以下。对于5V单片机,"弱上拉"晶体管的电流约250uA;对于3.3V单片机,"弱上拉"晶体管的电流约150uA。
第2个上拉晶体管,称为"极弱上拉",当端口锁存为1时打开。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流将引脚上拉为高电平。对于5V单片机,"极弱上拉"晶体管的电流约18uA;对于3.3V单片机,"极弱上拉"晶体管的电流约5uA。
第3个上拉晶体管称为"强上拉"。当端口锁存器由0到1跳变时,这个上拉用来加快准双向口由逻辑0到逻辑1转换。当发生这种情况时,强上拉打开约2个时钟以使引脚能够迅速地上
拉到高电平。
准双向口(弱上拉) 输入如图示:
2.2 强推挽输出配置
强推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时
提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况。
强推挽引脚配置如图所示:
2.3 高阻输入(电流既不能输入也不能输出)配置
高阻输入口配置如下图所示:
输入口带有一个施密特触发输入以及一个干扰抑制电路。
2.4 开漏输出配置(若外加上拉电阻,也可读外部状态或输出高电平)
开漏模式既可读外部状态也可对外输出(高电平或低电平)。如要正确读取外部状态或需要对外输出高电平,需外加上拉电阻。
当端口锁存器为0时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出高电平配置方式必须有外部上拉,一般通过电阻外接到Vcc。如果外部有上拉电阻,开漏的I/O口还可读外部状态,即此时被配置为开漏模式的I/O口还可作为输入I/O口。这种方式的下拉与准双向口相同。输出端口配置如下图所示。
开漏端口带有一个施密特触发输入以及一个干扰抑制电路。