|
#include <REGX52.H>
unsigned char speed;
sbit ENA=P1^0;
sbit PWM=P1^1;
sbit DIR=P1^2;
void kongzhi_Init()
{
TMOD|=0X11;
TH1=0XFE;
TL1=0X33;
TR1=1;
IE=0X8A;
EA=1;
ET0=1;
}
void KZ_Init()
{
EX0=1;
EA=1;
IT0=1;
IP=0x01;
PX0=1;
}
void delay(unsigned int a)
{
unsigned char b=0;
while(a--)
{
for(b=0;b<200;b++)
{
}
}
}
void main()
{
kongzhi_Init();
KZ_Init();
while(1)
{
while(1)
{
if(P3_1==0)
{
delay(10);
if(P3_1==0)
{
while(P3_1==0)
while(1)
{
DIR=1;
if(speed>0.1)
{
speed=0;
}
if(speed<1)
{
PWM=0;
}
else
{
PWM=1;
}
}
}
}
}
if(P3_3==0)
{
delay(10);
if(P3_3==0)
{
while(P3_3==0)
while(1)
{
DIR=0;
if(speed>0.1)
{
speed=0;
}
if(speed<1)
{
PWM=0;
}
else
{
PWM=1;
}
}
}
}
}
}
void Tlzd() interrupt 3 using 3
{
TH1=0XFE;
TL1=0X33;
speed++;
if(P3_0==0)
{
delay(50);
if(P3_0==0)
{
while(P3_0==0)
while(1)
{
PWM=1;
speed=0;
}
}
}
}
void KZ() interrupt 0 using 0
{
unsigned int b;
if(P3_2==0)
{
delay(10);
if(P3_2==0)
{
while(P3_2==0);
for(b=0;b<500;b++)
{
DIR=0;
if(speed>0.1)
{
speed=0;
}
if(speed<1)
{
PWM=0;
}
else
{
PWM=1;
}
}
}
}
}
|
|