proteus仿真,虚拟终端+三态门+单片机 有错

我最近初学单片机,用proteus做了一个简单的虚拟终端+三态门+单片机的仿真,发现了以下问题,请求解释。KeiC代码,从串口循环输出a至g字母,如果接收到字母,P1等于... 我最近初学单片机,用proteus做了一个简单的虚拟终端+三态门+单片机的仿真,发现了以下问题,请求解释。
Kei C 代码,从串口循环输出a至g字母,如果接收到字母,P1等于16进制下该字母的ASCII码值。
#include <stdio.h>
#include <reg51.h>
unsigned char table[]={'a','b','c','d','e','f','g'};
void delay(unsigned int t)
{
unsigned int i,j;
for (i=0;i<t;i++)
for (j=0;j<1000;j++);
}
void main()
{
unsigned int i;
SCON=0x50;
TMOD=0x20;
TH1=0xfd;//9600bps@11.0592MHz
TL1=0xfd;
ES=1;
EA=1;
TR1=1;
while(1)
{
for (i=0;i<7;i++)
{
SBUF=table[i];
delay(100);
}
}
}
void SISR (void) interrupt 4
{
TI=0;
if(RI)
{
RI=0;
P1=SBUF;
}
}
最简单连接的电路图如下。

执行仿真,看到了循环输出的a-g字母,输入a,数码管显示了对应的ASCII码0x61

在单片机的TXD和虚拟终端的RXD间接入恒导通的三态门,如图

执行仿真,结果正确

在单片机的RXD和虚拟终端的TXD间接入恒导通的三态门,如图

执行仿真,发现可以正常循环输出a-g,但输入字母a时无反应。两条线都接恒导通的三态门,结果也是这样。

请问为什么加入导通的三态门会使单片机串口不能正常接收?万分感谢!
展开
 我来答
做而论道
高能答主

2014-07-12 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
RXD,是串行输入端,应该连接三态门的输出端。

TXD,是串行输出端,应该连接三态门的输入端。

插图的最后两张,三态门都接反了。

TTL 门电路的工作频率可达几兆至几十兆,并不会影响串口的工作速度。
深圳市兴威帆电子技术有限公司
2023-08-24 广告
实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各... 点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
yyh001123
2014-07-12 · TA获得超过1.4万个赞
知道大有可为答主
回答量:8341
采纳率:66%
帮助的人:6312万
展开全部
把下面的74LS126换个方向,TXD接2,RXD接3,试试看。

另外通讯之间,使用三态门电路不合适,速率高时,容易影响通讯。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式