电机的双向转动
#include #include #define uchar unsigned char #define unit unsigned int sbit EN1=P1^0; sbit EN2=P1^1; sbit F1=P1^2; sbit F2=P1^3; sbit F3=P1^4; sbit F4=P1^5; sbit S1=P2^0; sbit S2=P2^1; sbit S3=P2^2; sbit S4=P2^3; sbit S5=P2^4; uchar t=0; //中断计数器 uchar Cycle=100; //确定PWM周期 uchar speed2=50; //电动机速度值 /*T0初始化*/ T0_ini() { TMOD=0x02; TH0=0xA3; TL0=0xA3; EA=1; ET0=1; TR0=1; } /*电动机控制*/ void main() { EN1=1;EN2=1; //使能端有效 T0_ini(); //T0初始化 while(1) { if(S1==0){speed2=50;} //停 if(S2==0){speed2=60;} //加 if(S3==0){speed2=50;} //减 if(S4==0){speed2=60;} //正 if(S5==0){speed2=40;} //反 } } /*T0中断程序,产生PWM信号,控制电机*/ void timer0()interrupt 1 { if(t=Cycle)t=0; //1个PWM信号由100次中断产生 1个PWM周期为0.1ms*100=10ms } EA=1; ET0=1; TR0=1; } /*电动机控制*/ void main() { EN1=1;EN2=1; //使能端有效 T0_ini(); //T0初始化 while(1) { if(S1==0){speed2=50;} //停 if(S2==0){speed2=60;} //加 if(S3==0){speed2=50;} //减 if(S4==0){speed2=60;} //正 if(S5==0){speed2=40;} //反 } } /*T0中断程序,产生PWM信号,控制电机*/ void timer0()interrupt 1 { if(t=Cycle)t=0; //1个PWM信号由100次中断产生 1个PWM周期为0.1ms*100=10ms }
用户评论