STC单片机的所有端口都有四种工作模式(见表2-6),各个端口处于同一种工作模式时的内部结构基本相同。下面介绍通用I/O端口的结构组成和工作原理。
1.准双向I/O口工作模式
单片机的每个I/O端口有8位,图2-10是准双向I/O端口的1位电路结构。单片机上电复位后,所有的I/O口都处于准双向I/O模式,可直接输入/输出数据。当输出“1”电平时,端口驱动能力很弱,允许外部将其下拉为“0”电平;当输出“0”电平时,端口驱动能力很强,I/O口线可吸收较大的灌电流。由于内部有锁存器,在数据输出时具有锁存功能,即在输出数据没有改变时,口线上的数据一直保持不变,但对输入数据不锁存。所以,外设输入数据必须保持到读取端口指令执行完为止,否则,数据将会丢失。
图2-10 准双向I/O口的位电路结构原理图
图2-10中,准双向I/O口带有一个施密特触发输入和一个干扰抑制电路,内部有3个上拉场效应管(T1、T2、T3),可适应不同的需要。其中T1为强上拉,拉电流达20mA;T2为极弱上拉,拉电流约30μA;T3为弱上拉,拉电流150~270uA,典型值为200μA。
当端口锁存器为“1”,且引脚上的信号也是“1”时,T2、T3导通提供口线基本驱动电流,使准双向口线输出“1”电平。若I/O口锁存器输出为“1”电平,但引脚上接入的外部信号是“0”电平,则I/O口引脚上信号被下拉为“0”电平,此时T3关断,T2保持导通状态,外接电路应提供较大的灌电流才能使引脚上的电平降到门槛电压以下(表现出低电平,一般要防止这种情况出现)。若I/O口锁存器输出为“1”电平,引脚外部悬空,则T2导通,上拉源T2会产生很小的上拉电流,把引脚上拉为“1”电平。
如果I/O口锁存器置“0”电平时,T1、T2、T3截止,T4导通,引脚输出低电平。如果I/O口锁存器由“0”跳变到“1”时,T1会瞬间导通2个时钟,使引脚迅速上拉到“1”电平。
当从I/O口引脚上读入数据时,必须先向端口存储器置“1”,使T4截止,才能正确地读入引脚信号。如果在输入之前,锁存器的数据为“0”电平,则T4导通,这样引脚上的电位将被钳位在“0”电平,使引脚上接入的“1”电平无法读入。
2.推挽输出工作模式
如图2-11所示是推挽输出模式下的I/O端口位电路结构。推挽输出工作模式下,I/O口的上拉是持续的“强上拉”,若输出高电平时,输出拉电流最大可达20mA;在输出低电平时,输出灌电流最大可达20mA。
(www.xing528.com)
图2-11 推挽输出I/O口的位电路结构原理图
同样的,当从I/O口引脚上读入数据时,必须先向端口存储器置“1”,使T2截止,才能保证读入引脚信号正确。
3.高阻输入工作模式
如图2-12所示是高阻输入模式下的I/O端口位电路结构。这种模式仅作输入模式,可直接从引脚读入数据,而不需要先对I/O口内部锁存器置“1”。
图2-12 高阻输入I/O口的位电路结构原理图
4.开漏I/O口工作模式
如图2-13所示是开漏模式下的I/O端口位电路结构。该模式下,端口的下拉电路结构与准双向口、推挽输出模式相同;端口的输入电路四种模式均一致,输出驱动无任何负载。当输出“0“时为低电平,输出”1“时相当于悬空。因此,使用开漏模式的I/O口,必须在外部接上拉电阻。
图2-13 开漏I/O口的位电路结构原理图
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。