为什么proteus仿真串口通讯时在虚拟终端显示00(十六进制)

上面是电路图源代码如下:#include"reg51.h"unsignedinti;voidinit(void){SCON=0x50;//设置串口工作模式为1,允许接收,... 上面是电路图
源代码如下:
#include"reg51.h" unsigned int i; void init(void){ SCON=0x50;//设置串口工作模式为1,允许接收, TI=0;//发送中断标志位清零 EA=0;//禁止所有中断 TMOD=0x20;//设置定时器T1工作方式为2,即8位重装模式; TH0=0xFD; PCON=0x00; TL0=0xFD; i=1; TR1=1;//启动计时器1; } void delay(){ i=9000; while(i--); } void main(void){ init(); while (1){ if (i==256) i=1; i++; SBUF=0x71; while (TI==0); TI=0; delay(); } }
波特率设置的是9600,程序里面设置的定时器1的初值0xfD,应该没有算错啊,那是哪里错了呢
展开
 我来答
lycdl
高粉答主

推荐于2018-04-21 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2万
采纳率:94%
帮助的人:4841万
展开全部
1、串口通信,控制波特率的是定时器T1,不是T0,所以下面的两行
TH0=0xFD;
TL0=0xFD;
应该改成
TH1=0xFD;
TL1=0xFD;
2、要双击单片机,将晶振频率改为11.0592M
3、为什么要串联一个电流表呢,想测电流吗,是测不出来的,要去掉。
4、为什么要连续发送SBUF=0x71; 这0x71是字母q,正确时,虚拟终端上连续显示字母q。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式