求个用L298控制直流电机加减速的89c51单片机C程序

来源:百度知道 编辑:UC知道 时间:2024/06/02 21:59:05
毕业设计用

#include<reg51.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit en1=P3^0; /* L298的Enable A */
sbit s1=P3^2; /* L298的Input 1 */
sbit s2=P3^3; /* L298的Input 2 */
uchar t=0; /* 中断计数器 */
uchar m1=0; /* 电机1速度值 */
uchar tmp1; /* 电机当前速度值 */

/* 电机控制函数 index-电机号(1,2); speed-电机速度(-100—100) */
void motor(uchar index, char speed)
{
if(speed>=-100 && speed<=100)
{
if(index==1) /* 电机1的处理 */
{
m1=abs(speed); /* 取速度的绝对值 */
if(speed<0) /* 速度值为负则反转 */
{
s1=0;
s2=1;
}
else /* 不为负数则正转 */
{
s1=1;
s2=0;
}
}

}
}

void delay(uint j) /* 简易延时函数 */
{
for(j;j>0;j--);
}

void main()
{
uchar i;
TMOD=0x02; /* 设定T0的工作模式为2 */
TH0=0x9B; /* 装入定时器的初值 */
TL0=0x9B;
EA=1; /* 开中断 */
ET0=1; /* 定时器0允许中