单片机系统虚拟仿真方法
2012-10-17于明军
于明军
(赤峰学院 物理与电子信息工程学院,内蒙古 赤峰 024000)
单片机系统虚拟仿真方法
于明军
(赤峰学院 物理与电子信息工程学院,内蒙古 赤峰 024000)
在缺乏单片机实验设备的情况下,利用软件构建单片机系统,并对程序和电路的进行联合调试,是一种方便可行的方法.本文以数字时钟系统的搭建和仿真调试为例,介绍了仿真软件Proteus在单片机系统仿真中的使用,并详细阐述了KeilC51软件和Proteus软件的联合调试方法,为单片机系统的开发与调试提供了一种纯软件的方法.
单片机;虚拟仿真;联合调试
1 引言
单片机系统的开发包含硬件电路设计、软件设计和系统调试三个部分.通常的开发步骤是首先搭建实物电路或制作PCB实验板,然后编写软件程序,最后利用仿真器进行软硬件联合调试,直至系统完成.在缺乏实验设备和条件的情况下,利用软件构建单片机系统并调试是一种很好的选择.
Labcenter electronics公司的EDA工具软件Proteus是目前最好的模拟单片机外围器件的工具,它可以仿真51系列、AVR、PIC等常用的MCU及其外围电路,如LCD、RAM、ROM、键盘、马达、LED、A/D、D/A,部分 SPI、IIC器件等.它包含几十个元件库和大量虚拟仪器,集电路设计、仿真调试、电路板制作于一体,但该软件并不仿真MCU本身,而是将编译好的程序解析成单片机引脚电平信号从而控制其外围器件.
Kei l软件公司开发的KeilC51 uVision3是国内流行的单片机软件开发平台,其仿真方法有纯软件仿真(simulator)和基于驱动文件和硬件仿真平台的硬件仿真(emulator)两种.前者可以利用软件模拟程序运行过程,通过单步、连续、断点等方式对程序进行调试,缺点是不能看到实验现象,只能通过对内部存储器和寄存器进行观察而判断程序正确与否.后者将计算机与硬件仿真器连接,也可进行单步、连续、断点等方式调试,利用仿真器模拟单片机驱动目标系统,可实时观察现象,直观真实并可以调试硬件目标系统.
2 在Proteus中构建单片机系统
该电子时钟系统由AT89C52单片机、LCD1602液晶显示模块、日历时钟芯片DS1302、10K上拉电阻、晶振、电池和若干电阻电容构成,电路如图1所示.
在该软件中绘制原理图与其他软件相似,主要有以下两步:
2.1 将所需元件从库中装进器件栏(DEVICES):左键单击窗口左侧的元器件工具栏的component按钮,接着再点击窗口左侧的元器件选择区的Pick Divices按钮,弹出 Pick Devices窗口(图 2),搜索关键字如“AT89C52”找到器件,双击该器件即可加载到左侧的器件栏中,加载其它元器件和以上过程一样.
图2
2.2 在绘图区绘制原理图;将已经找到的器件放到绘图区,布置好各个元器件相对位置,用鼠标左键点击器件引脚连线即可.
图3
3 KeilC51软件和Proteus软件的联合调试方法
硬件电路设计完成后,在KeilC51软件中编写软件程序,调试通过后生成HEX文件,对Proteus中硬件电路的调试有两种方法,一种是利用Proteus单独调试,只需将HEX文件加载到电路图中的单片机中,运行Proteus程序观察实验现象,如与设计不符,通过分析现象修改KeilC51中的程序重新编译生成HEX文件,再运行仿真,如此往复直到软硬件调试正确.此方法类似于单片机实验板的在线下载,没有仿真器的调试情况;另一种方式是KeilC51软件和Proteus软件的联合调试,类似于带仿真器的实验板调试的情况.
任何仿真器与KeilC51软件联调都需要由一个驱动文件,并将其信息写入Keil的配置文件,Keil软件才能识别.在此我们详细说明其设置方法:
(1)Keil与Proteus联调,首先必须将proteus安装目录下VDM51.dll文件复制到Keil安装目录的C51BIN目录中.
(2)修改keil安装目录下Tools.ini文件.用记事本(其它的编辑软件也可以,如Ultra Edit)打开Keil根目录下的TOOLS.INI文件,在[C51]栏目下加入TDRV3=BINVDM51.DLL ("ProteusVSM Monitor-51 Driver"),其中“TDRV3”中的“3”要根据实际情况写,不要和原来的重复,括号中的文字为提示文字,可随意改写.
(3)在proteus的debug菜单中选中use remote debug monitor.在keil中编写MCU的程序.进入KEIL的 project菜单 option for target'工程名 '.在DEBUG选项中右栏上部的下拉菜选中Proteus VSM Monitor-51 Driver.
(4)在进入seting,如果同一台机IP名为127.0.0.1,如不是同一台机则填另一台的IP地址端口号一定为8000.
软件设置好后,运行Keil与Proteus软件,可以在Keil软件中使用单步、连续、断点等方式调试,于此同时Proteus软件中将相应的显示程序执行效果,达到软硬件联合调试的效果.如图4所示.
图4
4 结论
本文介绍了利用KeilC51软件和Proteus软件对单片机系统进行虚拟仿真的方法,可以实现部分硬件仿真的功能.大大简化了实际单片机系统开发过程中硬件电路制作、测试的过程,是一种便捷、低成本的开发方法.而在缺少实验条件的情况下,也是一种很好的单片机系统开发手段.
〔1〕许超,吴新杰,张丹.基于 Proteus和 Keil的单片机课程教学改革[J].辽宁大学学报(自然科学版),2011(1).
〔2〕吴凌燕.基于Proteus的单片机仿真设计[J].仪表技术,2011(7).
〔3〕陈龙,张亚君.Proteus仿真软件在单片机实验教学中的应用[J].实验技术与管理,2009(8).
〔4〕陈昶.电子仿真软件在单片机电路仿真中的应用[J].山西科技,2009(2).
〔5〕王玮,曹会宁.Proteus仿真软件在单片机一体化教学中的应用[J].机电产品开发与创新,2009(5).
TP273
A
1673-260X(2012)04-0032-02