单片机的I/O口在其应用中起着重要的作用,IYO口的分类和配置是每个初学者都应清楚了解和正确使用的。本文介绍单片机的I/0口配置方式,并以MSP430F169单片机为例加以说明。
常规的单片机I/O口配置根据其内部结构,通过设置控制字产生以下四种配置:
1.准双向口输入输出配置
准双向口具有输出和输入功能,结构如图1所示。
当I/0口输出为高电平时,其驱动能力很弱,外部负载很容易将其拉至低电平。当I/OH输出为低时,其驱动能力很强,可吸收相当大的电流。准双向口有三个上拉晶体管,一个“极弱上拉”,当端口锁存为逻辑“1”时打开;当端口悬空时,该“极弱上拉”将端口上拉为高电平。第二个上拉晶体管为“弱”上拉,当端口寄存器为l且管脚本身也为l时打开,此上拉提供的电流使准双向口输出为“l”。如果一个管脚输出为“1”而由外部装置拉到低时,弱上拉关闭而“极弱上拉”维持开状态,为了把这个管脚强拉为低,外部装置必须有足够的灌电流能力,使管脚上的电压降到门槛电压以下。第三个上拉晶体管称为“强上拉”。当端口锁存器由“0”跳变到“1”时,这个上拉用来加快准双向口由逻辑0到逻辑l的转换速度。准双向口作为输入端时具有一个施密特触发器,用于抑制输入抖动和干扰。
准双向口用于输入时可外接对地按键,如图2所示。当按键松开时,准双向口内部通过极弱晶体管将端口拉为高电平。作输出时不应外接对地LED,如图3,因其驱动能力很弱,LED发光二极管发光会很弱。如果将LED改接电源端,因准双向口输出为低时可以吸收20mA的电流,故对LED有很强的驱动能力。
2.开漏输出配置
当端口锁存器为“0”时,开漏输出关闭所有的上拉晶体管而仅驱动下拉晶体管。作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到VDD。此时不会产生灌电流。这种方式的下拉与准双向口相同。开漏输出配置如图4所示。
使用I/O口的开漏方式时,若不接上拉电阻,则可以输出高阻或低电平两种状态。这种方式可用于三极管驱动电路或外围其他器件,以达到降低功耗的目的。图5为开漏方式驱动LED电路,当I/O口输出高电平时,发光二极管点亮;反之,发光二极管熄灭。
3.推挽输出配置
推挽输出配置的下拉结构与开漏输出及准双向口相同,具有较强的拉电流能力。不同的是当锁存器为“l”时,提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况,因其支持强上拉输出,所以图3所示的IZD发光二极管可以用推挽输出IYO口的强上拉功能直接驱动。