电机PWM程序
#include<AT89X52.H> //包含51单片机头文件,内部有各种寄存器定义
#include<HJ-2WD_PWM.H> //包含HL-1蓝牙智能小车驱动IO口定义等函数
#define uchar unsigned char
#define uint unsigned int
unsigned char n,count;//距离标志位,0.5ms次数
uchar i;
void DelayUs2x(uchar t)
{
while(--t);
}
void DelayMs(uchar t)
{
while(t--)
{
//大致延时1mS
DelayUs2x(245);
DelayUs2x(245);
}
}
/*------------------------------------------------
定时器01初始化
//定时器1工作方式1 ,定时器0 电机PWM调速控制信号
------------------------------------------------*/
void Time1_Int() interrupt 3//
{
TH1=0xff;
TL1=0xa3;
count=(count+1);//0.5ms次数加1
count=count%40;//次数始终保持为40即保持周期为20ms
}
//主函数
void main(void)
{
TMOD=0X11;
TH0= 0XFc; //1ms定时
TL0= 0X18;
TR0= 1;
ET0= 1;
EA = 1; //开总中断
TH1=0xff;
TL1=0xa3;
ET1=1;
TR1= 1;
while(1) //无限循环
{
//run(); //调用PWM函数
push_val_left=10; //速度调节变量 0-20。。。0最小,20最大
//push_val_left=PWMSD;
Left_moto_go ; //左电机
}
}
|