#include <reg52.h>
#define u16 unsigned int
#define u8 unsigned char
// 电机开关管脚
sbit moto = P1^0;
u16 k;
// 延迟函数,1ms
void delay1ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);
}
// 电机启动Xs
void motoOnXs(u16 x)
{
u16 j = 1000*x;
while(j>0)
{
moto = 1;
delay1ms();
j--;
}
}
// 电机停止Xs
void motoOffXs(u16 x)
{
moto = 0;
for(k=0; k<1000*x; k++)
{
delay1ms();
}
}
// 主函数
void main()
{
// 电机停止2s,启动5s为一个周期不断循环
while(1)
{
u16 flag;
if(flag % 2 == 0)
{
// 电机停止2s
motoOffXs(1.5);
}
else
{
// 电机启动5s
motoOnXs(1);
}
// 改变变量的值
flag++;
}
}