51单片机,串口通信问题!
#include<reg51.h>#include<intrins.h>#include<stdio.h>#defineucharunsignedchar#defineu...
#include<reg51.h>#include<intrins.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit LED=P2^5;void init(){ TMOD=0X20; SCON=0X50; PCON=0X00; TH1=0XFD; TL1=0XFD; ES=1; EA=1; TR1=1;}void send(uchar x){ ES=0; SBUF=x; while(TI==0); TI=0; ES=1;}void main(){ init(); while(1);}void ser()interrupt 4{ uchar x; if(RI==1){ RI=0; x=SBUF; if(x=='A') LED=~LED; _nop_(); send(x);}}
这个程序实现的是:通过串口调试助手发一个数据,马上会在串口调试中显示该字符,当发送的是‘A’的时候,则LED置反,但是我仿真的时候,为什么得不到结果?请问大神,我这个程序哪里错了!!?? 展开
这个程序实现的是:通过串口调试助手发一个数据,马上会在串口调试中显示该字符,当发送的是‘A’的时候,则LED置反,但是我仿真的时候,为什么得不到结果?请问大神,我这个程序哪里错了!!?? 展开
4个回答
展开全部
我测试了 这程序没有问题
1,如果你没测好,估计是你的仿真串口设置不对,比如你的P1设置为com1,9600,n,8,1
则上位机要设置为com2,9600,n,8,1,
2,要对称设置端口,首先下个串口虚拟软件Virtual Serial Port Driver 6.0就可以
,虚拟出2个对称的串口才可以通讯
1,如果你没测好,估计是你的仿真串口设置不对,比如你的P1设置为com1,9600,n,8,1
则上位机要设置为com2,9600,n,8,1,
2,要对称设置端口,首先下个串口虚拟软件Virtual Serial Port Driver 6.0就可以
,虚拟出2个对称的串口才可以通讯
更多追问追答
展开全部
send(x);这个函数可以不要
发送的时候直接
SBUF = x;
}
if(TI==1)
{
TI=0;
}
发送的时候直接
SBUF = x;
}
if(TI==1)
{
TI=0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
肯定不行,和电脑接的话,需要加MAX232接口芯片才可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
串口实验必须用11.0592M晶振,否则会出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询