单片机C语言程序设计实训100例
上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);
            }
          }
        }