|
這段程序哪里錯(cuò)了嗎?小車能跑但不能調(diào)速,還是我線接錯(cuò)了?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit pwm1=P2^0;
sbit pwm2=P2^1;
sbit I1=P2^2;
sbit I2=P2^3;
sbit I3=P2^4;
sbit I4=P2^5;
uchar a,t=0,s=20,n=20,pwm;
void init()
{
TMOD=0X21; //?????1???2
TL0 = 0xff; //??????
TH0 = 0xf7;
TR0 = 1; //???0???? //??????
TH1=0xfd ;
TL1=0xfd ; //???
TR1=1; //?????1
REN=1; // ????
SM0=0;
SM1=1; //?????????1
EA=1; // ???????
ES=1; // ????????
}
void main()
{
init();
while(1);
}
void tim0() interrupt 1
{
TR0=0;
TH0=0xff;
TL0=0xf7;
TR0=1;
t++;
if(t>=40)
{ t=0;}
if(t<=n)
{ pwm1=1;}
if(n<t<40)
{pwm1=0;}
if(t>=40)
{ t=0;}
if(t<=s)
{ pwm2=1;}
if(s<t<40)
{pwm2=0;}
}
void ser() interrupt 4
{
ES=0;
RI=0; //?????????0;
a=SBUF; //??????????a
switch(a)
{
case 65: I1=1,I2=0,I3=1,I4=0; break; // ????A ????
case 66: I1=0,I2=0,I3=1,I4=0; break; // ????B ????
case 67: I1=1,I2=0,I3=0,I4=0; break; // ????C ????
case 68: I1=0,I2=1,I3=0,I4=1; break; // ????D ????
case 69: n=s=10; break; //E
case 70: n=s=20; break; //F
case 71: n=s=30; break; //G
case 97: I1=I2=I3=I4=0; break; //????a ????
case 98: I1=I2=I3=I4=0; break; //????b ????
case 99: I1=I2=I3=I4=0; break; //????c ????
case 100: I1=I2=I3=I4=0; break; //????d ????
default: break;
}
ES=1;
}
|
|