1、用一个I/O口控制2个单色指示灯。
由于单片机中的I/O口通常可设置为三种状态,即输出高电平、输出低电平和输入状态(高阻态)。利用这一点,可以很方便地用一个I/O口实现对2个指示灯的控制。其电路如右图所示。
当要使LED1亮时,I/O口可置为低电平。此时LED2无电流流过,不会亮。
当要使LED2亮时,I/O口可置为高电平。此时LED1无电流流过,不会亮。
若要LED1、LED2均不亮,可将I/O口置为高阻态,此时发光管被VD1旁路,也不会亮。
若要LED1、LED2一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,利用视觉暂留,使人眼感觉两个灯都为亮的状态。
2、用一个I/O口控制1个三色指示灯。
其电路如右图所示。
当要显示绿灯(LED1)亮时,I/O口可置为低电平。此时红灯(LED2)反向偏置,无电流流过,不会亮。
当要显示红灯(LED2)亮时,I/O口可置为高电平。此时绿灯(LED1)反向偏置,无电流流过,不会亮。
若要指示灯不亮,可将I/O口置为高阻态,此时两个发光管均无电流流过,也不会亮。
若要显示橙灯亮时,此时LED1、LED2要一起亮,则可以让I/O口在某一固定频率下以50%的占空比进行高低电平不停转换,利用视觉暂留,使人眼感觉到显示的是橙灯。
3、一个I/O口读取三种状态。
单片机应用中,有时需要让外部用跳线进行选择设置,单片机按跳线的状态来进行相应的控制操作。本例中可用一个I/O口检测出跳线连接的3种状态:高电平,低电平或者悬空(高阻态)。电路如右图所示。
检测低电平状态:I/O口为输入状态,直接读取引脚上的低电平。
检查高电平状态:I/O口为输入状态,直接读取引脚上的高电平。
检查高阻状态:I/O口设为输出态,输出高电平。然后设置I/O口为输入态,读取引脚状态,为高电平;再把I/O口设为输出态,输出低电平,读取引脚状态,为低电平。说明为高阻态。
4、利用单片机的时钟输出产生高电压。
大多数的单片机都会有个时钟输出脚,利用该脚可以产生一个高过VDD的输出电压值,在输出功率不大的场合,很实用。电路如下图所示。在未接负载情况下,最大输出电压可以达到2*VDD-2*Vd。注:Vd为二极管的导通压降。