【文件属性】:
文件名称:电机的双向转动
文件大小:34KB
文件格式:PDSPRJ
更新时间:2021-05-06 03:00:39
电机
#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
}