没完成计算器的抓紧时间;这段时间,做一个电机控制电路,51单片机,5个按键(正转,反转,加速,减速,停止),L298驱动直流电机,protues仿真@全体成员
问题:
一开始用那个电机MOTOR_DC不能马上反转,先得慢慢正转到0,再开始反转。然后换了一个电机MOTOR就好了。
一开始设置电机停止没用,ENA=0 1 没用。
想用数码管显示速度,但是不太行。。而且数码管用P0引脚不亮。。。
void Timer0_init()//100us
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x01; //设置定时器模式
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
ET0=1;
EA=1;
TR0=1;
}
void Timer0() interrupt 1
{
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
Counter++;
Counter%=100;
if(Counter<Compare)//如果小于占空比
{
IN1=1;
}
else
{
IN1=0;
}
}
void main()
{
ENA=1;
IN1=0;
IN2=0;//一开始让电机停止
Timer0_init();
Compare=50;
while(1)
{
if(k0==0)//正转
{
delay(100);
while(!k0);
IN1=1;
IN2=0;
}
else if(k1==0)//反转
{
delay(100);
while(!k1);
IN1=0;
IN2=1;
}
else if(k2==0)//加速
{
delay(100);
while(!k2);
Compare=Compare+10;
}
else if(k3==0)//减速
{
delay(100);
while(!k3);
Compare=Compare-10;
}
if(k4==0)//停止
{
delay(100);
while(!k4);
ENA=0;
TR0=0;
IN1=0;
IN2=0;
}
}
}