
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.19 继电器控制照明设备
本例用继电器控制大功率照明设备,运行本例时,按下K1键可点亮灯,再次按下时则关闭灯。
本例电路及运行效果如图3-16所示。

图3-16 继电器控制照明设备
程序设计调试与实训:
本例用继电器控制外部大功率设备,程序中继电器控制定义在P2.4引脚上,每次按下K1键并释放时,对RELAY取反,当RELAY为0时,NPN三极管导通,继电器吸合,灯点亮,反之三极管截止,继电器断开,灯熄灭。
读者可改用PNP型三极管控制继电器,并实现对外部直流电动机的启/停控制。
源程序代码:
//----------------------------------------------------------------- // 名称: 继电器控制照明设备 //----------------------------------------------------------------- // 说明: 按下K1时灯点亮,再次按下时灯熄灭。 //----------------------------------------------------------------- #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit K1 = P1^0; sbit RELAY = P2^4; //----------------------------------------------------------------- // 延时 //----------------------------------------------------------------- void DelayMS(uint ms) { uchar t; while(ms--) for(t = 0; t < 120; t++); } //----------------------------------------------------------------- // 主程序 //----------------------------------------------------------------- void main() { P1 = 0xFF; RELAY = 1; while(1) { if ( K1 == 0) { while (K1 == 0); RELAY = ~RELAY; DelayMS(20); } } }