您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > Proteus通过虚拟串口程序仿真51单片机串口的实现 -
本文所属标签:
为本文创立个标签吧:

Proteus通过虚拟串口程序仿真51单片机串口的实现 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]1.参考文章下载地址:http://download.csdn.net/source/19276242.虚拟串口3.串口调试助手4.Proteus 7.5 sp3实现方法1.参考文章(参考文章是从CSDN下载的一篇PDF文件)已经很详细的说明了怎么实现,我就不想啰嗦了,我

1.参考文章下载地址:http://download.csdn.net/source/1927624

本文引用地址: http://www.21ic.com/app/mcu/201807/782610.htm

2.虚拟串口

3.串口调试助手

4.Proteus 7.5 sp3

实现方法

1.参考文章(参考文章是从CSDN下载的一篇PDF文件)已经很详细的说明了怎么实现,我就不想啰嗦了,我只提供几个关键的截图和串口调试程序代码

如果参考文章打不开我提供参考文章的下载连接

2.提供Proteus的连线图如下:(值得注意的是单片机的RXD和TXD分别和串口的RXD和TXD一一对应相连,这和用Proteus的虚拟终端给串口输入信号时,单片机和串口的连接方式是不一样的,用Proteus的虚拟终端作为串口输入信号的时候单片机的RXD和串口的TXD相连,是交错连接的)

注意:1.51单片机的晶振频率我设置的是11.0592MHz,单片机载入的program file可以是HEX,也可以是BIN

2.SCMR表示单片机接收到的内容,SCMT代表单片机发送出去的内容

3.我的串口设置如下图(主要设置波特率,这里是9600)

4.我的虚拟串口程序的抓图如下

6.我串口调试工具的截图如下:

7.最后附上串口调试所使用到的程序代码(只写了输入调试的程序)

#include
void init();
void main()
{
init();
while(1)
{
while(!RI);//RI=1,判定为串口接收到了数据,RI要清零,
RI=0;//否则就会进入中断,如果没接收数据就一直在while循环
P1=SBUF;//如果介绍到数据就点亮第一个发光二极管

}
}
void init()
{
TMOD=0x20;//设置T1工作方式为方式2
TH1=0xfd;//给定时器高位装初值
TL1=0xfd;//给定时器低位装初值
TR1=1;//开定时器
//以上是设置波特率
SM0=0;//设置串口通讯方式为方式1
SM1=1;
REN=1;//串口是否接收数据的开关
}

8.最后提供一张调试成功的截图




              查看评论 回复



嵌入式交流网主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > Proteus通过虚拟串口程序仿真51单片机串口的实现 -
 

"Proteus通过虚拟串口程序仿真51单片机串口的实现 -"的相关文章

网站地图

围观()