电脑和单片机通讯时,由电脑输入到单片机的字符信息,能否直接调用,用于单片机的条件判断
我用电脑输入的信息做判断,控制LED灯,结果LED灯没变化。
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit led0=P0^0;
sbit led1=P0^1;
u8 recv;
u8 controller;
void UsartInit() //串口初始化
{ SCON=0X50;
TMOD=0x20; //0010000,选择工作方式2
PCON=0X80;
TH1=0XF3; //波特率4800,SMOD=1(倍频)
TL1=0XF3;
ES=1;
TR1=1;
EA=1;
}
void main()
{
UsartInit();
while(1);
}
void Usart() interrupt 4
{
recv=SBUF; //电脑发送的信息进入单片机缓冲器
controller=recv;
RI=0; //接收中断标志位清零
SBUF=recv; //将接收到的数据重新发送回电脑
while(!TI); //TI发送中断标志位,TI=1,发送中断申请通过TI发送中断
TI=0; //发送中断清零
if(controller==0)
{led0=~led0;}
else if(controller==1)
{led1=~led1;}
}
|