淘晶驰串口屏发送00给单片机点亮LED小灯不亮这是为什么,#include <REG52.H>
#include <intrins.h>
#include <absacc.h>
#include <stdio.h>
#include <math.h>
#include <string.h>
#define ulong unsigned long int
#include “uart.h”
#define uchar unsigned char
#define uint unsigned int
sbit led=P1^5;
unsigned char received_temp;
unsigned char b,flag;
void UART_Send_Byte(unsigned char mydata) // 发送一个字节
{
ES=0;
TI=0;
SBUF=mydata;
while(!TI);
TI=0;
ES=1;
}
void UART_Send_Str(char *s) //发送文本串
{
int i=0;
while(s[i]!=0)
{
UART_Send_Byte(s[i]);
i++;
}
}
void UART_Send_END(void) //发送结束符
{
UART_Send_Byte(0xFF);
UART_Send_Byte(0xFF);
UART_Send_Byte(0xFF);
}
void delay(uint z)
{
uint t1,y;
for(t1=z;t1>0;t1–)
for(y=110;y>0;y–);
}
void serial() interrupt 4
{
if(RI) //检测到串口接收中断
{
received_temp=SBUF;
flag=1;
RI=0;
}
}
void USART_init()
{
PCON|=0x00; //PCON的最高位SMOD=1时波特率加倍
TMOD=0x20; //时器1为方式2 初值自动装入 产生波特率
TH1 = 0xFD;
TL1 = TH1; //定时器初始为0XFd,晶振为11.0592MHz,本函数实际产生的波特率为9600bps 同上 f7
SCON=0x50; //串口设置为方式1,REN=1,允许接收
TR1=1; //启动定时器1
ES=1; //使能串口接收中断,
EA=1; //打开所有中断
}
void RxD_for_HMI()
{
if(received_temp==0)
{
led=0;
}
}
void main (void)
{
//单片机为 STC89C52
//晶振 11.0592
USART_init();
while(1)
{
RxD_for_HMI();
}
}
求大佬帮我看看程序串口屏通过串口助手见识过了确实发送了00
,电阻屏那里是弹起按钮那里写了printh 00用虚拟串口搞了com5和com6调试的时候用串口助手监视com6口确实能收到00但程序就是把oo赋值给led点亮小灯就是不行,有大佬由例子程序给我参考的吗,串口接收正确,判断函数也正常的话,那是不是led灯坏了,或者硬件电路接线有问题