我用串口调试助手发送数据并让数码管显示,为什么没有反应?

#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodeled_table[]={... #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code led_table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0~F显示
void delay(uint i);
void display(uchar,uchar);
uchar shi,ge;
uchar rec;

void init_serial()//初始化程序
{
TCON=0x10;
TH1=0xff;//波特率19200
TL1=0xff;
SCON=0x50;
PCON=0x80;
EA=1;
ES=1;
TR1=1;
shi=0;ge=0;
}
void main()
{
init_serial();
while(1)
{
display(shi,ge);
}
}

void display(uchar shi,uchar ge)//显示程序
{
shi=rec/16;
ge=rec%16;
P2=0x00;
P0=led_table[shi];
delay(10);
P2=0x001;
P0=led_table[ge];
delay(10);
}

void T1_serial()interrupt 4
{
ES=0;//关闭串口中断
while(!RI)//等待接受完成
rec=SBUF;//将SBUF的数据读出并赋值给rec
RI=0;
ES=1;
}

void delay(uint i)
{
uint j;
for(;i>0;i--)
for(j=110;j>0;j--);
}
下载到单片机,数码管只显示00。用串口调试助手发送数据,与P3.0相连的LED灯有闪。
调试程序的话,SBUF始终是0X0A。
我是不是串口调试程序漏了什么没写,还是逻辑就错误了。
新学,已经纠结了俩小时了,没搞出来。还请大侠给指点一、二。谢谢。
展开
 我来答
做而论道
高能答主

2014-04-11 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
初始化定时器,应该有这一句:

TMOD = 0x20;

楼主遗漏了。
迪凯特科技(北京)有限公司
2023-07-28 广告
首先,获取单片机和串口屏的通信协议; 其次,在PC中编写串口通信软件,分别控制两个设备即可; 调试的时候,可以先用现有的串口助手类软件如串口调试助手,或者自定义协议功能的通信软件如格西烽火,测试和验证你定义的协议…... 点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式