
protues仿真,模拟串口与单片机怎么接。是不是rxd-rxd txd-txd。
如果用串口助手接收仿真单片机发送的字符'a',程序如何整。chara='2';voiddelay(intx){inty;for(;x>0;x--)for(y=110;y>...
如果用串口助手接收仿真单片机发送的字符'a',程序如何整。
char a='2';
void delay(int x)
{
int y;
for(;x>0;x--)
for(y=110;y>0;y--)
{
;
}
}
void main()
{
TMOD=0X20;
SCON=0X50;
TH1=0XFD;
TL1=0XFD;
PCON=0X80;
TR1=1;
EA=1;
ES=0;
SBUF=a;
while(1)
{
while(TI)
{
TI=0;
delay(800);
SBUF=a;
}
}
}
仿真结果是TXD有波形,当时串口助手接收区无显示。 波特率9600,虚拟串口连接
就是说 单片机能接收到,但是发送的数据, 串口助手无法接收,C#程序也无法接收。 展开
char a='2';
void delay(int x)
{
int y;
for(;x>0;x--)
for(y=110;y>0;y--)
{
;
}
}
void main()
{
TMOD=0X20;
SCON=0X50;
TH1=0XFD;
TL1=0XFD;
PCON=0X80;
TR1=1;
EA=1;
ES=0;
SBUF=a;
while(1)
{
while(TI)
{
TI=0;
delay(800);
SBUF=a;
}
}
}
仿真结果是TXD有波形,当时串口助手接收区无显示。 波特率9600,虚拟串口连接
就是说 单片机能接收到,但是发送的数据, 串口助手无法接收,C#程序也无法接收。 展开
4个回答
展开全部
程序里查询中断那个while语句括号里应该是非TI,即while(!TI){}
追问
当TI为1时,清零,再发送....
追答
你设置的PCON寄存器,SMOD为1,波特率增加一倍,你将波特率调整为19.2k试试
展开全部
不是rxd-rxd txd-txd, 是rxd--txd.
更多追问追答
追问
使用的是protues中的COMPIM。网上说COMPIM连接是RXD-RXD,不需要交叉
追答
不需要交叉,也是有的。
单片机能接收到,即表示串口助手发送正常,但是发送的数据, 串口助手无法接收,因此异常的是单片机发送。所以你要看RXD是否有波形,有则是串口助手故障,否则是单片机未发送。
请注意:通常要给单片机发送 回车信号后,才会真正发送数据的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-09
展开全部
rxd-txd
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |