51单片机串口中断程序问题,目的:在串口输入12点亮一盏灯.但是无法实现,请问我的程序哪里错了?
#include<reg51.h>sbitled=P2^2;voidmain(){SCON=0X50;TMOD=0X20;PCON=0X80;TH1=0XF3;TL1=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;
a=SBUF;
RI = 0;
SBUF=a;
if(a==12){
led=1;
}
while(!TI);
TI=0;
} 展开
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;
} 展开
1个回答
展开全部
#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;
}
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秒,到那个时间点亮灯该怎么设计
追答
定义一个数组,接收数据后比较就可以了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询