小弟用proteus仿真单片机的串口通信单片机接收不了信号,如下程序,目的是当电脑向单片机输入1时做点事

#include<REG52.H>sbitfu=P1^2;sbitok=P1^1;bitFlag;unsignedintReData,SenData;voidmain(v... #include <REG52.H>
sbit fu=P1^2;
sbit ok=P1^1;
bit Flag;
unsigned int ReData,SenData;

void main (void)
{

SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; //定时器工作方式2
PCON= 0x00;
TH1 = 0xFD; //baud reload value 9600、数据位8、停止位1。效验位无 (11.0592)
TL1 = 0xFD;
TR1 = 1;
ES = 1; //开串口中断
EA = 1; // 开总中断

while(1)
{

if (Flag==1)
{
Flag=0;
if(SenData==1)
{
fu=0;
}

}

}

}

void ser_int (void) interrupt 4 using 1
{

if(RI==1) //RI接受中断标志
{
RI=0; //清除RI接受中断标志
ReData=SBUF; //SUBF接受/发送缓冲器
SenData=ReData;
Flag=1;
ok=~ok;
}
}
展开
 我来答
迪凯特科技(北京)有限公司_ 2025-01-03
展开全部
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。 通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配:...
jianghe706
2012-02-10 · TA获得超过5145个赞
知道大有可为答主
回答量:2213
采纳率:77%
帮助的人:845万
展开全部

PROTEUS图中加入串口COMPIM.或者用虚拟终端输入数据,我的图是用PIC单片机做的异步串行通信.

更多追问追答
追问
我有虚拟串口的软件,发现这个虚拟开了一次就可以了,虚拟串口显示 com口是有接收到数据的,换了一个一定正确的proteus电路图后,要什么截图,立刻接,在线等
追答
你的图太小看不清,虚拟终端的接收脚要接串口的发送脚,虚拟终端的发送脚接串口的接收脚.
迪凯特科技(北京)有限公司_
2025-01-03 广告
程序逻辑混乱,出现不确定现象,测试结果时好时坏。理顺一下程序思路,保证采集按键、发送、接收数据、显示为一个完整的周期跟后面其他的操作没有关系.你可以联系迪凯特问问,他家挺好的,下边有链接。... 点击进入详情页
本回答由迪凯特科技(北京)有限公司_提供
百度网友6003d951
2012-02-10 · TA获得超过1026个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:190万
展开全部
proteus中模拟串口不能和电脑通信,只能和proteus中的终端通信
追问
可以吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式