目录
一、引言
新近发现用Proteus配Keil for C51编译器调试UART串口收发通讯,发送没有问题,接收总是有问题,输入RXD的波形、波特率以及串口配置都是对的,但AT89C51就是不接收数据,RI不置位,也不能进入串口中断4程序,同样的程序移到Keil μVision5里,调试就妥妥的,收发自如,网上也看了别人的帖子和文章,大都是用Proteus自带的Virtual Termimal看到收到调试助手借助虚拟串口发的数据,但并不代表AT89C51真真收到了数据,拿网上贴出来的程序测试,也同样不能进入接收中断程序,RI不置位,严重怀疑Proteus的AT89C51模块有小问题,有同样问题或解决了该问题的高手,请回帖讨论。这里只实例介绍一下Keil仿真AT89C51串口收发数据的详细过程,相互学习,共同进步。
二、所用软件
1、串口调试工具
SSCOM是一款很不错的串口调试软件,收发数据行云流水不卡顿,就是界面略显花哨,不过还是要感谢开发者,不停地迭代更新,给大家带来的惊喜连连,在这里就顺带声援支持一下。
2、虚拟串口软件
Virtual Serial Port Driver 是由 Electronic Team 开发的软件包,其功能如同 Windows机器上的虚拟 COM 端口仿真器。 该软件可以创建虚拟 COM 端口,能使用虚拟零调制解调器电缆成对连接,所创建的每个虚拟串口都将与串行应用程序进行通信,就好像它们是实际物理端口一样。
3、Keil μVision5
Keil C51编译器自1988年引入市场以来成为事实上的行业标准,并支持超过500种8051变种。Keil公司在2005年被ARM收购,通过这次收购,Keil将能更好地向高速发展的32位微控制器市场提供完整的解决方案,同时继续在μVision环境下支持8051和C16x编译器。
三、软件设置
1、串口调试助手软件设置
SSCOM在本例中设置:1)9600波特率,10位一帧,0起始位+8位数据+1停止位,无校验;2)加时间戳和分包显示,分包以大于等于一段完整的收发数据为宜;3)视程序设计定时重复发送数据给Keil中预设的虚拟串口。
2、虚拟串口软件设置
VSPD设置分3步:1)选好配对虚拟串口;2)点击添加虚拟串口对;3)生成配对好的虚拟串口对,一发一收,就像实际连接在一起的串口鸳鸯对。
3、Keil C51设置
A、调试(.ini)文件建立
1)先在Keil项目文件夹目录下面建立一个“.ini”文件,第一行写入指定AT89C51侧的虚拟串口号,并配置好串口(如波特率9600等信息);2)第二行指定AT89C51侧的虚拟串口输入输出(本例为COM1),写好后保存文件(本例起名为debug_C51.ini)。两行语句模式如下:
MODE COMx baudrate, parity, databits, stopbits
ASSIGN COMx <SIN> SOUT
B、Debug调试引入虚拟串口设置
1)点击μVision5的魔法棒;2)在Debug页面把上面A步建立好的debug_C51.ini添加进来。