615854698

触发开关、延时开关、智能开关、单片机控制开关

0
阅读(2948)

单片机控制继电器工控开关,由本人多年设计所得,先贡献原理图如下:

 

主控芯片采用STC15F104E,带触发功能。支持串口通信

芯片可编程,可实现多种功能,延时接通,延时断开,循环关闭和断开,带有触发端,可以支持出发延时痛断。

1、  延时断开,本程序是延时10秒断开、采用软件延时方式

2、  void Delay1s(uint s)           //12.000MHz

3、  {

4、   uchar m,n;

5、  for(m=s;m>0;m--)

6、  for(n=10;n>0;n--)

7、  Delay100ms();

8、  }

9、   

10、              /********************************************************************

11、                                          主函数义

12、              *********************************************************************/

13、              void main()

14、              {

15、              int i = 0;

16、               

17、              P33 = 1;

18、              for(i = 0; i < 334; i++)

19、              {

20、              Delay1s(10);

21、              }

22、              P33 = 0;

23、              while(1);

24、               

25、              }

 

 

 

 

 

第二种方案:采用定时器延时,延时接通

void t0(void) interrupt 1 using 0 //定时中断服务函数

{

         tcnt++; //每过250ust tcnt 加一

         if(tcnt==400) //计满400 次(1/10 秒)时

         {

                   tcnt=0; //重新再计

                   sec++;

                   if(sec==10) //定时10 秒,在从零开始计时

                   {

                            sec=0;

                            P33=!P33;  //取反 P3.3

                   }

         }

}

 

/********************************************************************

                            主函数

*********************************************************************/

void main()

{

         TMOD=0x02; //定时器工作在方式2

         TH0=0x06; //TH0 TL0 赋值

         TL0=0x06;

         TR0=1; //开始定时

         ET0=1;

         EA=1;

         sec=0;

         while(1)

         {

 

         }

}                

如果需要更长的时间,可以修改下延时参数既可。本程序是由个人编写而成,或有纰漏,请路过的大神多多指教,不胜感激!

如果有更好的方法,请联系QQ615854698;电话:13049863925