单片机控制继电器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目是通过单片机来控制继电器从而达到通断电的效果,通过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

jk=0; //继电器关闭

num1s=0; //延时5s

while(num1s

flag_one=1; //第一次工作标记置1 不再运行5s间隔的状态

n++; //总秒数计数器自加

}

jk=1; //继电器吸合

num1s=0; //延时5+n秒每次+1S

while(num1s

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(); //调用主控程序

}

}

相关文档
最新文档