大多数现代微控制器都提供 I/O 端口,可以在程序执行期间改变这些端口的功能。当用作输出时,这些电路可以吸收或流出相当大的电流。本设计实例示出了用一个 I/O 管脚驱动双管脚、双色 led 的三种方法。图 1 是一个可能的方案,它使用外接反相器 IC1 来驱动一只红/绿双向 led,即D1。端口管脚的逻辑高电平输出使电流流过绿色(上方)LED,并将反相器输入电平拉高,于是驱动反相器输出端为低电平,从绿色 LED 吸入电流。端口管脚的逻辑低电平输出使反相器输出端为高电平,从而为红色(下方)LED提供电流,微控制器的输出端从红色 LED 吸入电流。
要关掉两只LED 时,可以重新配置微控制器的端口管脚,使之从输出转为输入或将管脚切换成三态,任何一态都能阻止微控制器的端口管脚吸入或流出电流。这种电路的主要缺点是不能控制每只LED的亮度,而是由电阻器R5