这是我编得程序:用80c52通过L298控制电机转速
下面是程序:
#include
#define uchar unsigned char
#define uint unsigned int
uchar Dat,time,percent;
sbit v1=P2^5;//v1,v2,v3,v4控制转速,p1p2其它口控制方向
sbit v2=P2^6;
sbit v3=P1^5;
sbit v4=P1^6;
void serials(void) interrupt 4 using 0{
if(RI)
{
Dat=SBUF;
P2=Dat;
P1=Dat;
RI=0;
SBUF=0x51;
}
else if(TI)
{
TI=0;
}
}
void setspeed(uchar x)
{
if(x>63)
if(x>126) percent=99;
else percent=60;
else if(x>31) percent=30;
else percent=1;
}
void pulse(void) interrupt 1 using 1
{
setspeed(Dat);
TH0=0xFD;
TL0=0xFD;
ET0=1;
if(time==percent) {v1=v2=v3=v4=0;time++;}
else if(time==100) {time=0;v1=v2=v3=v4=1;time++;}
}
void main()
{
P1=0;P2=0;
PT1=1;
PS=1;
IE=0X9a;
TMOD=0x22;
TL0=0xFD;TH0=0xFD;
TL1=0xFD;TH1=0xFD;
TCON=0x54;
SCON=0xd8;
PCON=0x00;
}