单片机向电脑主机上的串口调试软件发送字符串 怎么发不了啊 ?那位朋友可以帮忙看看吗?下面的程序出现乱

#include<reg51.h>#defineucharunsignedcharucharcodeTable[]="Howareyou?\n";//发送的字符串ucha... #include<reg51.h>
#define uchar unsigned char

uchar code Table[]="How are you ?\n "; //发送的字符串
uchar *Send=&Table;

//-----------------------------------//
// Init
//-----------------------------------//
void Init(void)
{
SCON =0x50; //选择串口工作方式,打开接收允许
TMOD =0x20; //定时器1工作在方式2
TH1 =0xf3; //实现波特率9600(系统时钟11.0592MHZ)
TR1 =1; //启动定时器T1
EA=0;
}

//-----------------------------------//
// SendData
//-----------------------------------//
void SendData(uchar *q)
{
uchar i;
for(i=0;*q!='\0';i++)
{
SBUF=*q;
while(!TI);
TI=0;
q++;
}
q=0;
}
//-----------------------------------//
// Main
//-----------------------------------//
void main(void)
{
Init();
while(1)
{
SendData(Send); //发送数据
}
}
展开
 我来答
HWQ0757
2010-11-30 · TA获得超过639个赞
知道小有建树答主
回答量:310
采纳率:100%
帮助的人:323万
展开全部
您好:
我看了你的程序,首先,你只开了总中断,没有开放串口中断,应该在init函数里加入ES=1;此外,如果串口是模式1、晶振为11.0592MHz的话,定时器2工作在方式2,TH0和TL0初值应为0XFD,而不是0xf3。
暂时看到这些,你改一下再看看吧。希望可以帮到您。
thsumam
2010-12-01 · TA获得超过136个赞
知道小有建树答主
回答量:191
采纳率:100%
帮助的人:174万
展开全部
TH1 = 0xF3; 改为 TH1 = 0xFD; 即可! 其它的地方没有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式