#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbit IN11=P1^4;
sbit IN22=P1^5;
sbit IN33=P1^6;
sbit IN44=P1^7;
sbit LED=P0^0;
uchar pwm,push,push1,shu,flag,flagg,butt[5]=0,j;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
IN1=0;
IN2=0;
TMOD=0X21;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
TH1=0xfd;
TL1=0xfd;
TR0=1;
ET0=1;
TR1=1;
REN=1;
SM0=0;
SM1=1;
ES=1;
EA=1;
pwm=0;
push=12;
push1=15;
j=0;
flagg=0;
}
void time1() interrupt 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
pwm++;
if(pwm<=push)
LED=1;
else
LED=0;
if(pwm<=push1)
LED=1;
else
LED=0;
if(pwm>=200)
pwm=0;
}
void ser() interrupt 4
{
ES=0;
if(RI==1)
{
RI=0;
shu=SBUF;
if((shu==0x4f)&&(j==0))
{
butt[j]=shu;
flag=1;
}
else if(flag==1)
{
j++;
butt[j]=shu;
if(j>=2)
{
j=0;
flag=0;
flagg=1;
}
}
ES=1;
}
}
void qian()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
IN11=1;
IN22=0;
IN33=1;
IN44=0;
}
void hou()
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
IN11=0;
IN22=1;
IN33=0;
IN44=1;
}
void zuo()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
IN11=0;
IN22=1;
IN33=0;
IN44=1;
}
void you()
{
IN1=0;
IN2=1;
IN3=0;
IN4=1;
IN11=1;
IN22=0;
IN33=1;
IN44=0;
}
void ting()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
IN11=0;
IN22=0;
IN33=0;
IN44=0;
}
void main()
{
init();
while(1)
{
if(flagg==1)
{
flagg=0;
if((butt[0]==0x4f)&&(butt[1]==0x4e))
{
switch(butt[2])
{
case 0x41:qian();break;
case 0x42:hou();break;
case 0x43:zuo();break;
case 0x44:you();break;
case 0x45:ting();break;
case 0x31:LED=0;break;
case 0x32:LED=1;break;
}
}
}
}
} |