#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void Uartlnit();
unsigned char flag,i,a=0x00,b=0xff;
typedef unsigned int u16; //?????????????????????
typedef unsigned char u8;
#define led P1 //??P1??????led,???????????led????P1??
void delayms(u16);
void delayms(uint); //????????????????
void Uartlnit()
{
while(1)
{
u8 i;
led=0x00; //??????? ???????з????????
delayms(1000); //??????? ???1000ms
led=0xff; //??????? ??????з????????
delayms(1000);
}
SM0=0; //??????? ?洢?????
SM1=1; //??????? ??????????????1
TMOD=0X20; //??????? ?趨?????1?8λ?????????
REN=1; //??????? ??????????????
TR1=1; //??????? ????????1
TH1=0XFD;
TL1=0XFD; //??????? ?趨?????????????????9600bps
EA=1; //??????? ????ж????
ES=1; //??????? ?????ж????
}
void main()
{
Uartlnit();
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=a;
led=0x00;
while(!TI);
TI=0;
}
flag=0;
SBUF=a;
led=a;
while(!TI);
TI=0;
ES=1;
}
else if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=b;
led=0xff;
while(!TI);
TI=0;
}
flag=0;
SBUF=b;
led=b;
while(!TI);
TI=0;
ES=1;
}
else
{
led=0x00;
delayms(1000); //??????? ???1000ms
led=0xff;
}
}
}
void ser() interrupt 4 //??????? ???崮???ж?
{
RI=0;
P1=SBUF;
a=SBUF;
b=SBUF;
flag=1;
}
void delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--) //??????? i=x???????x????
for(j=114;j>0;j--);
}
这是我的,不知道哪里出问题了,能帮我看看嘛,谢谢。
|