STC8单片机之深入理解输入/输出口的工作模式

作者 零一美 2024年01月20日 13:56 阅读 57

1、引言

STC8系列单片机的输入/输出口(英文是:Input/Output Interface,下文简称为:I/O口)有4种可以通过软件配置的工作模式。其分别是:准双向口、推挽输出、开漏输出和高阻输入这4种工作模式,或者称之为:I/O口的4种可配置电路结构。在学习和设计产品的过程中,该如何理解和使用这4种输入/输出口的工作模式呢?

2、准双向口工作模式

STC8系列单片机输入/输出口的准双向口工作模式内部电路结构如图1所示。虽然准双向口工作模式的内部电路结构看起来比较复杂,但是,在进行硬件电路设计和软件编程过程中,仅仅需要知道以下两个基本操作原理即可。

(1)当某个I/O口为输出口时,向端口锁存器写入“1”,该I/O口内部电路下面的MOSFET截止,上边的某个MOSFET导通,对外输出至端口引脚为高电平;向端口锁存器写入“0”,该I/O口内部电路下面的MOSFET导通,上边的某个MOSFET导通,对外输出至端口引脚为低电平。

(2)当某个I/O口作为输入口时,先向端口锁存器写入“1”,该I/O口内部电路下面的MOSFET截止,上边的某个MOSFET导通,端口引脚为高电平,处于输入状态。此时,当I/O口端口引脚为高电平时,读取到的I/O口状态为“1”;当I/O端口引脚为低电平时,读取到的I/O口状态为“0”。下次再读取该I/O口的输入状态时,按照上述操作方式进行读取即可。

在图1中所示“弱”、“极弱”和“强”的3只具备上拉作用的MOSFET是STC8系列单片机I/O准双向口工作模式特有的电路结构。其上拉有效的时机为:

(1)弱上拉MOSFET有效的时机:当某I/O端口锁存器和引脚都为“1”时,弱上拉MOSFET导通,给准双向口提供基本的驱动电流,使该I/O端口引脚输出为高电平。当该I/O端口引脚输入为低电平时,弱上拉MOSFET关闭,极弱上拉MOSFET导通。当弱上拉MOSFET有效导通时,如果单片机供电电压为DC 5V,那么,其导通电流约为250μA;如果单片机供电电压为DC 3.3V,那么,其导通电流约为150μA。由此可知:当STC8系列单片机采用DC 3.3V供电电压,I/O准双向口的功耗比较小。

(2)极弱上拉MOSFET有效的时机:当某I/O端口锁存器和引脚都为“1”或悬空,且对应引脚输入为低电平时,极弱上拉MOSFET导通,提供非常小的上拉导通电流用于维持该I/O端口引脚的高电平状态。当极弱上拉MOSFET有效导通时,如果单片机供电电压为DC 5V,那么,其导通电流约为18μA;如果单片机供电电压为DC 3.3V,那么,其导通电流约为5μA。由此可知:当STC8系列单片机采用DC 3.3V供电电压,I/O准双向口的功耗比较小。

(3)强上拉MOSFET有效的时机:当某I/O端口锁存器由“0”到“1”跳变时,在延时约2个CPU时钟后,快速的导通,使该I/O端口引脚迅速的处于高电平状态。

注意:通过以上对STC8系列单片机I/O准双向口工作模式和内部电路的分析,一直在提I/O准双向口3只上拉MOSFET的导通状态,没有讨论其截止状态,其实,为了保证I/O准双向口的正常工作,3只上拉MOSFET至少有一只要始终保持导通状态,具体是那一只导通,要根据以上3只上拉MOSFET有效的时机进行判断。

另外,从图1中可以看出:STC8系列单片机I/O准双向口输入电路由一个干扰抑制电路和施密特触发器组成,说明该系列单片机I/O口的输入接口抗干扰能力比较好。

3、推挽输出工作模式

STC8系列单片机输入/输出口的推挽输出工作模式内部电路结构如图2所示。该工作模式的内部电路结构与准双向口模式相仿,少了“弱”和“极弱”两只上拉MOSFET。对于同一个I/O口而言,图1和图2中的强上拉MOSFET,很有可能是同一只MOSFET,不过,其在准双向口和推挽输出模式下的有效导通时机和状态不同。在准双向口工作模式下,当I/O端口锁存器出现由“0”至“1”的跳变时,强上拉MOSFET用于快速的把端口引脚上拉至高电平,然后,由“弱”或“极弱”上拉MOSFET维持端口引脚的高电平状态(猜测:正常情况下,由于极弱上拉MOSFET导通电流最小,因此,一般是其导通维持端口引脚处于高电平状态)。在推挽输出工作模式下,当I/O端口锁存器为“1”时,强上拉MOSFET持续导通,其最大能提供20mA的拉电流。注意:虽然I/O口推挽输出工作模式能够提供最大20mA的拉电流,但是,通过STC8单片机VCC引脚的供电电流最大不能超过90mA。

I/O口推挽输出工作模式与准双向口工作模式除了以上不同之外,其输入内部电路与准双向口工作模式相同。在此不在详述。

图2 推挽输出工作模式

4、开漏输出工作模式

STC8系列单片机输入/输出口的开漏输出工作模式内部电路结构如图3所示。该工作模式与准双向口和推挽输出工作模式最大的不同是:其无上拉MOSFET,即在开漏输出工作模式,I/O端口引脚内部电路所接的所有上拉MOSFET都处于截止无效状态。该工作模式能够比较好的匹配外接不同工作电源电压的逻辑电路类外设(注意:一般不建议不同工作电源电压的逻辑电路芯片进行直接连接,如果I/O口的工作模式设置不对,那么,有可能导致单片机I/O端口承受过高电压而损坏)。由于开漏输出模式无片内上拉MOSFET,因此,必须在I/O端口引脚上外接上拉电阻,才能保证能够使该I/O口具备正常的输入和输出功能。在外接上拉电阻的情况下,其输入和输出功能详见准双向口工作模式下的说明。

图3 开漏输出模式

5、高阻输入工作模式

STC8系列单片机输入/输出口的高阻输入工作模式内部电路结构如图4所示。该工作模式仅有输入功能,而且其输入内部电路结构与以上3种工作模式相同,即:当I/O口配置为高阻输入工作模式时,没有片内上拉MOSFET、上拉电阻和下拉MOSFET,I/O端口引脚处于完全悬空状态。我觉得该工作模式最大好处是:把I/O口配置为高阻输入模式时,其消耗的输入电流主要有外置的上拉电阻确定,可以做的仅可能的低功耗,单片机自身I/O口处于高阻输入工作模式,消耗电流非常小。注意:当STC8系列单片机I/O口配置为高阻输入工作模式时,一定在对应I/O端口引脚上外置上拉电阻,保证I/O口输入电平的稳定。

图4 高阻输入模式

6、使用输入/输出口的经验

以上关于STC8系列单片机输入/输出口4种工作模式的描述,不需要死记硬背,仅仅需要理解或者了解其基本工作原理即可。当采用STC8系列单片机进行产品硬件设计时,一般需要注意以下事项和经验规则:

(1)一般在成本和印制电路板面积要求不是特别严格的情况下,为了保证单片机I/O端口引脚高低电平的可靠和稳定,通常在I/O端口引脚上外置4.7kΩ、5.1kΩ或10kΩ的上拉电阻(注意:上拉电阻越大,逻辑工作所需功耗越小,但是,其坏处是脉冲上升沿变得越缓慢,应根据实际情况进行调整)。

(2)对于成本和印制电路板面积特别受限的产品而言,可以有限的利用I/O口的推挽输出模式下拉电流大可以直接驱动外部负载和准双向口、推挽输出与开漏输出工作模式下灌电流大的特性节省成本和印制电路板面积,但是,这种方式仅限于玩具等商业消费类,且对可靠性和安全性无特殊要求的产品设计中。在工业、电力、测试测量、轨道交通等产品中,严禁使用。

(3)STC8系列单片机流入VCC供电引脚和流出GND接地引脚的最大电流不能超过90mA,否则,容易导致单片机工作异常或损坏。


发表评论