电路仿真软件详谈(25),电路仿真软件proteus在51单片机实现串口连接

电路仿真软件十分重要,对于电路仿真软件,大家或多或少有所了解。对于电路仿真软件,小编在往期文章中做过诸多介绍。如果你对电路仿真软件有莫大兴趣,可以翻阅系列文章。本文针对电路仿真软件的介绍,主要在于介绍如何使用电路仿真软件proteus在51单片机中进行串口连接。如果你对本文即将探讨的内容感兴趣,不妨继续往下阅读哦。

串口的理论知识小编便不再赘述,网上多的是。51单片机的串口,有4种方式,分别为方式0,方式1,方式2,方式3.由于小编的目的,使用串口主要是为了和电脑进行通信,所以主要使用方式1(事实上小编也只学了方式1,其他方式等用到的时候再学吧)。

串口的方式1,其波特率与定时器T1相关,公式如下:

方式1波特率 = (2SMOD×32)/(T1溢出率)

SMOD是一个寄存器,一般小编们就取0了

T1的溢出率,即每秒T1计数满几次(相关知识可以看看前面笔记的记录)

正是因为如上的公式,所以设置TH1和TL1的初值,就能控制方式1的波特率了。不过一般波特率是固定的那么几种,像2400,4800和9600等,要用的时候查一下初值就成了。

由于用的是Proteus来模拟串口(小编的笔记本电脑根本没串口),所以需要一个虚拟串口的软件。推荐使用的是Visual Serial Port Driver,用起来非常的简单,直接点击Add Pair就成了,会自动增加一对串口,模拟的时候,分别连接这两个端口就成。添加好后,可以把这个程序关闭,端口仍旧可以使用。

要说一下的是,这软件是一个收费软件(能免费使用14天),所以,如果只想学习一下串口的话,小编们就自私一下吧,不购买了,直接使用一个控制软件时间的软件(比如Run As Date),让程序以为时间一直没变,就能一直试用了……

要试验一下Proteus是否可以进行串口连接,可以直接打开安装目录下的\SAMPLES\Interactive SimulaTIon\COMPIM Demo,设置好波特率等参数后,使用“串口调试助手”,向Proteus发送数据,看看能否接收到。

运行后的效果:

如果像上图一样,在“助手”中输入数据,可以在Proteus的虚拟终端中接收到,说明可以进行串口的仿真了。如果不能接收,则需要检查一下,波特率等参数是否设置的一致,特别是串口,要设置的“成双成对”,如从“串口助手”的COM1发送到Proteus的COM2。

开始进入实际编码,小编希望写一个上位机程序,来控制单片机,单片机很简单,就是从P2口,接8个LED灯,而上位机程序则可以控制灯的亮或者暗,原理图如下:

实物做的时候,由于电脑的串口和单片机的串口电平不同,需要使用MAX232芯片做电平转换,但是这里是模拟,就不加芯片了,同样能正常运行。加上虚拟终端,是为了直接看到接收到的数据,方便调试。

上位机程序如下图,使用C#编写,编程工具是VS 2008,因为用的是最简单的语法,所以是基于.NET 2.0写的。

上位机写的特别简单,选择好端口后连接,然后控制单片机。可以做到控制任意灯的开和关,下面的控制则可以做到全开或全关,流水灯则是让单片机演示一次流水灯(演示期间不再接受上位机控制)。上位机的控制代码特别简单,就是给单片机发送一个8位的byte(这个花了小编很多时间,因为单片机上的char是8位的,小编自然而然的把C#上的char也当成是8位了,结果就是发给单片机的时候会出现错误,感谢群里大虾的热情帮助)。控制格式如下(最低位为第0位):

数据位从高位检查起,所以如果第7位为1 ,则后面几位不管设置成什么,都会是灯全开的效果。

单片机程序和上位机程序都写得很简单,里面有详细注释,应该一看就能明白了。演示效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值