• 博客(0)
  • 资源 (1)

空空如也

电机的双向转动

#include<reg52.h> #include<math.h> #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<speed2){F3=1;F4=0;} // 产生电动机2的PWM信号,控制转速方向 else{F3=0;F4=1;} t++; if(t>=Cycle)t=0; //1个PWM信号由100次中断产生 1个PWM周期为0.1ms*100=10ms }

2018-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除