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时无反应。两条线都接恒导通的三态门,结果也是这样。
请问为什么加入导通的三态门会使单片机串口不能正常接收?万分感谢! 展开
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时无反应。两条线都接恒导通的三态门,结果也是这样。
请问为什么加入导通的三态门会使单片机串口不能正常接收?万分感谢! 展开
深圳市兴威帆电子技术有限公司
2023-08-24 广告
2023-08-24 广告
实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各...
点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询