51单片机串口中断程序问题,目的:在串口输入12点亮一盏灯.但是无法实现,请问我的程序哪里错了?

#include<reg51.h>
sbit led=P2^2;
void main()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XF3;
TL1=0XF3;
ES=1;
EA=1;
TR1=1;

P2=0x00;
while(1) {

}
}

void Usart() interrupt 4
{
unsigned char a;

a=SBUF;
RI = 0;
SBUF=a;
if(a==12){
led=1;
}
while(!TI);
TI=0;
}

#include<reg51.h>
sbit led=P2^2;
void main()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XF3;
TL1=0XF3;
ES=1;
EA=1;
TR1=1;
P2=0x00;
while(1) ;
}

void Usart() interrupt 4
{
unsigned char a;
ES=0;
if(RI)
{
a=SBUF;
RI = 0;
if(a==12){
led=1;
}
SBUF=a;
while(!TI);
TI=0;
}
ES=1;
}追问

恩会了,如果我要在串口输入一个具体时间如12时00分00秒,到那个时间点亮灯该怎么设计

追答

定义一个数组,接收数据后比较就可以了。

追问

好这样

好谢谢

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答