大神们,帮我看一下,串口通信中发送的数据与接收的数据怎么不一致?

2019-07-15 13:40发布

本帖最后由 lipengxiang1223 于 2016-6-10 22:17 编辑

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar disc[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
/*****n(ms)延时子程序*****/
void delayms(uint ms) //延时ms
{
uchar i;
while(ms--)
{
for(i=0;i<120;i++);
}
}
/*****主程序*****/
void main()
{
int i;
TMOD=0x20;//定时器1工作于8位自动重载模式, 用于产生波特率
TH1=0xFD; //波特率9600
TL1=0xFD;
SCON=0x50;//设定串行口工作方式
TR1=1; //启动定时器1
while(1)
{
for(i=0;i<16;i++)
{
SBUF=disc;
while(!ti);//等特数据传送
TI=0; //清除数据传送标志
delayms(500);   
}
}
}



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
chenwei6991627
1楼-- · 2019-07-16 11:27
这程序啊,仔细看看自己的程序吧
专叮AB型的蚊子
2楼-- · 2019-07-16 17:27
 精彩回答 2  元偷偷看……
人中狼
3楼-- · 2019-07-16 19:07
SBUF=disc;中,disc后面是不是应该是SBUF=disc[i];
田孛之
4楼-- · 2019-07-16 22:20
解决了么 老哥 我也是一样的问题 ...方便的话 能简单的说一下么
不知道又怎样
5楼-- · 2019-07-16 23:17
是你最高位置一了吧,是你选择的8N1的问题

一周热门 更多>