单片机控制继电器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(); //调用主控程序 } }