请问下这个程序有错么?为什么送到串口显示错误呢?

2019-07-15 14:15发布

#include<REG52.H>        
#include<math.h>      
#include<stdio.h>
#define uchar unsigned char
#define uint unsigned int
void start()
{         TMOD = 0x20;//定时器1工作方式2自动装初值
    SCON = 0x50;//方式1允许接收
    TH1 = 0xFD;//波特率为9600的初值
    TL1 = TH1;
    PCON = 0x00;//电源管理寄存器
    EA = 1;//开总中断
    ES = 1;//开串口中断
    TR1 = 1;//开始计数
}       
void send(uchar a)
{SBUF=a;
while(!ti)
TI=0;
}
void main()
{start();
send(123);
}
就是送个123呀,结果却显示错误

16进制也不是123呀 16进制也不是123呀
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
米兰霸气
1楼-- · 2019-07-15 18:16
 精彩回答 2  元偷偷看……
你太人才了
2楼-- · 2019-07-15 22:42
米兰霸气 发表于 2016-04-25 23:16
while(!ti)后面请记住加分号。

点个赞
13164183084
3楼-- · 2019-07-15 23:59
数据类型不对吧,send函数发送的是uchar型而send(123)实参类型不对
流心1
4楼-- · 2019-07-16 05:24
13164183084 发表于 2016-04-27 11:43
数据类型不对吧,send函数发送的是uchar型而send(123)实参类型不对

有道理
电小龙
5楼-- · 2019-07-16 05:51
你的while(!Ti)的后面要加分号吧
电小龙
6楼-- · 2019-07-16 11:27
 精彩回答 2  元偷偷看……

一周热门 更多>