延时开关、延时断开、延时关闭、循环开关、智能开关
单片机控制继电器工控开关,由本人多年设计所得,先贡献原理图如下:
主控芯片采用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