找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

关于串口没有整明白的事儿

[复制链接]
admin 发表于 2012-9-2 11:01:22 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
#include <REGX51.H>
#define uchar unsigned char


uchar f;


void main()
{
TMOD=0x20; //T1工作方式2
TH1=TL1=0xfd;
SCON=0x50; //串口工作方式1,允许接收
TR1=1;
ES=1;
EA=1;
while(1)
{
if(RI)
{
RI=0;
SBUF=f;
while(!TI);
TI=0;
EA=1;
}
}
}


void uart_serve() interrupt 4
{
EA=0;
f=SBUF;
P1=f;
}


程序如上,我本意是想做串口数据收集,就是让单片机把处理过的信息发给PC;用这段程序调试了下串口,准备是先用电脑给单片机发送一数据(比如01),单片机接收到后送P1口显示,同时将改数据反发送给电脑;

实际通信结果是:

在发送区我发送 0 ;结果接收到的数据是 80

我又发送 1;结果接收到 81






SBUF 里面的数据怎么变了???

去掉单片机,短接数据发送和接收端口,这时发送 0 ;接收到 00 ;发送 1;接收到 01;硬件看来都正常;



那么程序有错在那里呢???难道是串口数据我还没有弄明白???
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 19:34 , Processed in 0.048585 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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