直流电机间歇启停
#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++; } }