仪器社区

51单片机控制继电器的程序看不太懂,希望大神在每句后面注解一下。

花半开最美Y 2015-05-16
#include #include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; ... #include #include #define uint unsigned int sbit a=P1^4;// sbit b=P2^3;// sbit c=P2^5;// sbit d=P2^7;// uint t; void Init_t0(void) //定时器初始化 { TMOD=0x01; TH0=0x4C;TL0=0x00; //50ms ET0=1; TR0=1; } void time0_server_(void)interrupt 1 { TH0=0x4C;TL0=0x00; t++; } void main() { Init_t0(); a=0;// b=0;// c=0;// d=0;// t = 0; EA = 1; while(1) //循环 { switch(t) { case 0: a = 1; b = c = d = 0; break; case 40: b = 1; a = c = d = 0; break; case 80: c = 1; a = b = d = 0; break; case 120: d = 1; a = b = c = 0; break; case 160: t=0; break; default: break; } } }
评论
全部评论
新航星洗涤设备
#include
#include
#define uint unsigned int
sbit a=P1^4;//a继电器控制端
sbit b=P2^3;//b继电器控制端
sbit c=P2^5;//c继电器控制端
sbit d=P2^7;//d继电器控制端
uint t;
void Init_t0(void) //定时器初始化
{
TMOD=0x01; //定时器0工作于方式1,16位定时器
TH0=0x4C;TL0=0x00; //定时时间50ms
ET0=1; //允许定时器0中断
TR0=1; //定时器0启动
}
void time0_server_(void)interrupt 1 //定时器0中断函数
{
TH0=0x4C;TL0=0x00; //定时时间50ms
t++; //t每50ms加1
}
void main() //主函数
{
Init_t0();
a=0; //初始化,所有继电器释放
b=0;//
c=0;//
d=0;//
t = 0; //计时器从0开始计时
EA = 1; //开启总中断
while(1) //循环
{
switch(t) //以t为参数的分支程序,t每50ms加1
{
case 0: //如果t=0(Z初2秒),继电器a吸合,其他释放
a = 1;
b = c = d = 0;
break;
case 40: //如果t=40(第二个2秒),继电器b吸合,其他释放
b = 1;
a = c = d = 0;
break;
case 80: //如果t=80(第三个2秒),继电器c吸合,其他释放
c = 1;
a = b = d = 0;
break;
case 120: //如果t=120(第四个2秒),继电器d吸合,其他释放
d = 1;
a = b = c = 0;
break;
case 160: //如果t=160(第四个2秒结束),t=0,重复Z初2秒情况
t=0;
break;
default: //如果t与上述数字都不想等,啥也不做,免得干扰继电器状态
break;

}
}
}
10 0 2017-09-27 0条评论 回复
初心暖哭i
需要给你写吗
20 0 2015-05-17 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论