作为输入时,p0口处于悬浮状态,需要自己接上拉电阻,p0为 真正的双向口,
p1 p2 p3口做为输入时,内部已有上拉电阻,称p1 p2 p3 为准双向口
"准"就是"基本上"的意思.
P0口是双向指的是它被用作地址/数据端口时,只有在这个时候,P0口才处于两个开关管推挽状态,当两个开关管都关闭时,才会出现高阻状态.
当P0口用于一般I/O口时,内部接Vcc的那个开关管是与引脚(端口)脱离联系的,这个时候,只有拉地的那个开关管其作用,P0口作为输出,是必须外接上拉电阻的,不然就无法输出高电平;如果P0口作为输入,则必须先对端口写1,使拉地的开关管断开,这个时候,如果不接上拉电阻,则是高阻状态,就是一个双向口,如果接上拉电阻,则本身输出高电平,对输入信号的逻辑无影响(注意是对逻辑无影响,对实际参数有无影响我不确定,但是我认为是有的).
双向与准双向,根本原则是双向包含了高阻这个状态,而不在于是否需要先写1或者不写,P1~P3口因为有内部上拉电阻,因此无论如何不是双向;P0口内部无上拉电阻,在处于数据/地址功能时,自动完成3态的转换,是双向,处于一般I/O口时,如果不接外部上拉,而且先向端口写了1,那么就处于高阻状态,此时,它也是一个人为的双向口,这与它处于地址/数据功能时的自动双向有区别,以及与P1~P3处于输入时输出锁存器为1是有区别的。
I/O口工作类型设置
STC12C5412AD带有24个I/O引脚,它的I/O与传统的I/O不同,每个I/O口均可由软件设置成4种工作类型之一,使得功能口和通用I/O口复用。4种类型分别为:准双向口(标准8051输出模式)、推挽输出、仅为输入(高阻)和开漏输出功能。在对同一个I/O口进行操作前要选择其要实现的功能,这样大大地增强了端口的功能和灵活性。其中一些I/O口还可以与STC12C5410AD中的特殊模块相结合完成更为复杂的工作。如与捕获比较模块相结合可以实现串行通信,与A/D模块结合实现A/D转换等。此外,STC12C5410AD的I/O端口电气特性也十分突出,几乎所有的I/O口都有6mA的驱动能力,对于一般的液晶显示屏、蜂鸣器可以直接驱动而无需辅助电路。许多端口内部都集成了上拉电阻,可以方便地与外围器件相接。
● 准双向口输出配置
准双向口输出类型可用作输出和输入功能而不需重新配置口线输出状态。这是因为当口线输出为1时驱动能力很弱,允许外部装置将其拉低。当引脚输出为低时,它的驱动能力很强,刚一吸收相当大的电流。准双向口有3个上拉晶体管适应不同的需要。
在3个上拉晶体管中,有1个上拉晶体管称为“弱上拉”,当口线寄存器为1且引脚本身也为1时打开。此上拉提供基本驱动电流使准双向口输出为1。如果一个引脚输出为1而由外部装置下拉到低时,弱上拉关闭而“极弱上拉”维持开状态,为了把这个引脚强拉为低,外部装置必须有足够的灌电流能力使引脚上的电压降到门槛电压以下。
第2个上拉晶体管,称为“极弱上拉”,当口线锁存为1时打开。当引脚悬空时,这个极弱的上拉源产生很弱的上拉电流将引脚上拉为高电平。
第3个上拉晶体管称为“强上拉”。当口线锁存器跳变到1时,这个上拉用来加快准双向口由逻辑4到逻辑1转换。当发生这种情况时,强上拉打开约2个机器周期以使引脚能够迅速地上拉到高电平。
●推挽输出配置
推挽输出配置的下拉结构与开漏输出以及准双向口的下拉结构相同,但当锁存器为1时提供持续的强上拉。推挽模式一般用于需要更大驱动电流的情况。
●仅为输入(高阻)配置
仅为输入时,不提供吸入20mA电流的能力。.开漏输出配置当口线锁存器为0时,开漏输出关闭所有上拉晶体管。当作为一个逻辑输出时,这种配置方式必须有外部上拉,一般通过电阻外接到。这种方式的下拉与准双向口相同。开漏端口带有一个施密特触发输入以及一个干扰抑制电路。
4. AD模数转换寄存器
文章评论(0条评论)
登录后参与讨论