#include<stc12c5a60s2.h>
#define uchar unsigned char
#define uint unsigned int
sbit PWM=P1^0;
sbit k0=P0^0;
sbit k1=P0^1;
sbit k2=P0^2;
uchar num,jd;
void mydelay(uint i)
{
uint j,k;
for(j=i;j>0;j--)
for(k=110;k>0;k--);
}
void Time0_int()
{
P1M1=0;
P1M0=0x01;
AUXR|=0X00;
TMOD=0x01;
TH0=0xfe;
TL0=0x33;
IE=0x82;
EA=1;
ET0=1;
TR0=1;
}
void key()
{
if(k0==0)
{ mydelay(10);
if(k0==0)
{
num=0;
jd=5; //+90度
while(k0==0);
}
}
if(k2==0)
{ mydelay(10);
if(k2==0)
{
num=0;
jd=3; //回中
while(k2==0);
}
}
if(k1==0)
{ mydelay(10);
if(k1==0)
{
num=0;
jd=1; //-90度
while(k1==0);
}
}
}
void main()
{ jd=3; // 开机转到中间
num=0;
Time0_int();
while(1)
{
key();
}
}
void T0_time()interrupt 1
{
TH0=0xfe;
TL0=0X33;
if(num<jd)
{PWM=1;
}
else
PWM=0;
num=(num+1);
num=num%40; |