找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1115|回复: 1
收起左侧

单片机串口通信控制LCD灯,提问

[复制链接]
ID:536458 发表于 2020-5-13 14:12 | 显示全部楼层 |阅读模式
为什么不关发送什么数据,两个灯都会同时亮,,没有按程序控制,小白求解!
程序如下:
#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);
}
1589350109(1).jpg
1589350291(1).jpg


回复

使用道具 举报

ID:584814 发表于 2020-5-13 16:09 | 显示全部楼层
可能是在 default:LED1=1;LED2=1;break; 这里一起转
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表