问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
#include <REGX52.H>
sbit ENA=P1^0;
sbit ENB=P1^5;
sbit IN1=P0^1;
sbit IN2=P0^2;
sbit IN3=P0^3;
sbit IN4=P0^4;
unsigned char Duty_cycle_A; //Õ¼¿Õ±È
unsigned char Duty_cycle_B;
unsigned char T0Count;
void advance() //Ç°½ø
{
IN1=1;
IN2=0;
IN3=0;
IN4=1;
}
void back() //ºóÍË
{
IN1=0;
IN2=1;
IN3=1;
IN4=0;
}
void right() //ÓÒת
{
IN1=0;
IN2=0;
IN3=0;
IN4=1;
}
void left() //×óת
{
IN1=1;
IN2=0;
IN3=0;
IN4=0;
}
void Timer0Init() //100΢Ãë
{
TMOD = 0x01;
TL0 = 0xA4;
TH0 = 0xFF;
TR0 = 1;
ET0=1;
EA=1;
}
void main()
{
Timer0Init(); ¡//ÆôÓüÆʱÆ÷
while(1)
{
Duty_cycle_A=1; //pwm=0
Duty_cycle_B=1;
// left();
// back();
// right();
advance(); //С³µÇ°½ø
}
}
void Timer0_Routine() interrupt 1
{
TR0=0;
TL0 = 0xA4;
TH0 = 0xFF;
TR0=1;
T0Count++;
if(T0Count<Duty_cycle_A)
{
ENA=1;
}
else
{
ENA=0;
}
if(T0Count<Duty_cycle_B)
{
ENB=1;
}
else
{
ENB=0;
}
if(T0Count>=100)
{
T0Count=0;
}
}
大家帮我看看这段编程有什么问题吗,特别是计时器这段,我在main函数中调用计时器来控制小车的转速,但我把占空比设置为0了,小车还是转速很快,无论设置为多少小车的转速都没有改变,我猜测是定时器函数没有被使用,但错在哪里完全不知道。