标题: 单片机串口通信控制LCD灯,提问 [打印本页]

作者: sadkh    时间: 2020-5-13 14:12
标题: 单片机串口通信控制LCD灯,提问
为什么不关发送什么数据,两个灯都会同时亮,,没有按程序控制,小白求解!
程序如下:
#include <reg51.h>
#include <stdio.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
uchar i;
sbit LED1=P3^4;
sbit LED2=P3^3;
void UartInit(void)//初始化
{
   SCON  = 0x50;          // SCON: 模式 1, 8-bit UART, 使能接收  串行控制寄存器
    TMOD = 0x20;               // TMOD: timer 1, 模式 2, 8-bit 重装
   PCON = 0x00;           //波特率不加倍
    TH1   = 0xFD;               // TH1:  重装值 9600 波特率 晶振 11.0592MHz
   TL1 = TH1;                 //波特率9600
    TR1   = 1;                  // TR1:  timer 1 打开  启动T                       
    EA    = 1;                  //打开总中断
    ES    = 1;                  //打开串口中断

}
void UartISR(void) interrupt 4 //中断服务响应
{
uchar tempdata;
i=SBUF;
if(RI)
{
   switch(i)
  {
   case'1':LED1=1;LED2=0;break;
   case'2':LED1=0;LED2=1;break;
   default:LED1=1;LED2=1;break;
  }
  tempdata=SBUF;
  RI=0;
  SBUF=tempdata;
  }
  if(TI)
{TI=0;}
}
void main(void)
{
UartInit();
LED1=0;
LED2=0;
while(1);
}





作者: man1234567    时间: 2020-5-13 16:09
可能是在 default:LED1=1;LED2=1;break; 这里一起转




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1