当前位置:文档之家› 单片机控制继电器

单片机控制继电器

题目是通过单片机来控制继电器从而达到通断电的效果,通过DC12V电压或者DC5V电压来控制AC220V的通断。

然后达到的效果是类似5s通5s断,之后每1s累加一次,即下一次6s通5s断,再下一次7s通,5s断...... 直至40s通,5s断,持续循环这样的
附有我画的一部分原理图,因为刚接触,想知道一个继电器能实现吗?然后就是通过c语言编程实现功能呢还是需要怎么搞原理图
bit flag_one=0; //第一次工作标记
uchar num1s=0; //1s计数器
uchar n=5; //总秒数计数器
void mast() //主控
{
if(flag_one==0) //如果第一次工作标记为0 这里是你要求的第一次5s开5s关
{
jk=1; //继电器吸合
num1s=0; //延时5s
while(num1s<n);
jk=0; //继电器关闭
num1s=0; //延时5s
while(num1s<n);
flag_one=1; //第一次工作标记置1 不再运行5s间隔的状态
n++; //总秒数计数器自加
}
jk=1; //继电器吸合
num1s=0; //延时5+n秒每次+1S
while(num1s<n);
n++; //总秒计数器自加
jk=0; //继电器关闭
num1s=0; //延时5s 你要求开时间每次+1S 关时间不变while(n<5);
//刚才没看见你最后一句话没写这段
if(n==40) //判断总次数如果总次数是40
{
flag_one=0; //第一次工作标记清零
n=5; //总秒数计数器置5
}
}
void Server_Time0() interrupt 1 //定时器服务程序
{
TH0 = xx; //重装定时初值1s
TL0 = xx; //重装定时初值1s
num1s++; //1s计数器自加
}
void main()
{
Init_Time(); //定时器初始化没给你写基础程序了
while(1)
{
mast(); //调用主控程序
}
}。

相关主题