微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 触发开关、延时开关、智能开关、单片机控制开关

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

时间:10-02 整理:3721RD 点击:

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


主控芯片采用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)

         {

         }

}                 

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

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


小编的开关哪里有卖的呢?

不错的资料,值得收藏

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top