仿真电路中用PNP三极管8550或9012控制继电器,实现对照明设备L1的开关控制,程序初始关闭灯泡L1,按下K1时可点亮L1,再次按下时则关闭。仿真电路中使用光耦MOC3052及双向可控硅L6006L5/BTA06或BTA08控制L2,通过类似的程序实现了同样的功能。案例电路及运行效果如图3-11所示。
图3-11 继电器及双向可控硅控制照明设备
(一)控制电路
单片机RC4引脚连接PNP三极管8550/9012基极,输出低电平时三极管导通,继电器吸合,灯泡L1点亮。其中保护二极管D1用于避免三极管被断开继电器时的反向电动势击穿。RC5连接光耦MOC3052,输出低电平时引脚1、2(即A、C)导通,导致4、6(即MT1、MT2)导通,并控制可控硅BTA06导通,L2点亮。BTA06/BTA08被当作交流开关(或双向固态继电器)使用。
(二)控制程序设计
为增加可读性,源程序首先分别给出K1、K2按键操作定义:
上述两个语句还可以改写成:
判断按键操作时,要注意添加“消抖”语句。虽然在Proteus中仿真运行,即使没有延时消抖语句也很正常,但在实物电路中却不稳定,这一点要引起注意(此前有关案例中即略去了消抖代码)。
类似的,源程序中对继电器与双向可控硅也给出了定义:
前面的控制电路部分已经对本例的工作原理给出了说明,余下的开关控制代码设计就非常简单了,在分别检测到K1或K2按下时,执行下述语句即可分别切换继电器及光耦开关。
① 改用NPN型三极管(8050/9013)控制继电器,实现对外部直流电机的启停控制。
② 重新设计电路,通过按键及多个光耦与可控硅实现对多路外部设备的开关控制。