電腦和單片機通訊時,由電腦輸入到單片機的字符信息,能否直接調用,用于單片機的條件判斷
我用電腦輸入的信息做判斷,控制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;}
}
|