单片机仿真虚拟仪器——UMPS

🏠 首页 《无线电》杂志 2004年 🔗 第12期 🔗 第34页 分类:电脑与单片机 🔗 关春花 🔗, 谢晖 🔗, 谢亮 🔗

从事单片机产品设计、开发等工作的人员,经常要对所编写的程序和设计的外围电路进行仿真和调试。以往的单片机设计仿真,常常是制作一块安装实际元器件的模拟实验板(甚至制作PCB),借助单片机仿真软件及相应的仿真器对目标模拟实验板进行试验和调试。UMPS集成开发环境(IDE)的出现,成功地解决了上述问题,把单片机开发人员从制作模拟实验板调试程序的苦恼中解放出来。

UMPS的特点

UMPS是Universal Microprocessor Program Simulator(通用微处理器程序仿真器)的缩写,它是法国Virtual Micro Design公司开发的一个单片机仿真集成环境。和大多数单片机仿真软件一样,UMPS具备编辑、编译、汇编、反汇编功能,同样也有全速执行、跟踪、单步、暂停、设置断点等调试功能,而且它还能够在线下载编程。UMPS支持很多公司不同型号的单片机(而且不断有新的被加入),如Microchip、达拉斯半导体公司、Intel、Atmel、Motorola、SGS Thomson、National Semiconductor、Samsung和Sunplus等公司生产的单片机,详细型号读者可以查看UMPS的帮助。

UMPS最强大和最显著的特点是:它拥有虚拟元器件和仪器仪表的可视图形“资源”(读者可以看看图1中列出部分虚拟硬件)。

图1
图1 🔍原图 (850×638)

正是因为UMPS拥有这些独特的器件“资源”,使得单片机外围电路的元器件和电路仿真用的测试仪器均可直接从屏幕上选取,这些可视的元器件、仪器“资源”同实际外形极为相似(例如发光二极管、七段数码管、键盘、按钮、录音机、I2C EEPROM、集成块……),用户特别容易学习和使用。

不但UMPS的虚拟元器件同实际工作状况相似,而且它的虚拟仪器也和实际的操作、观测相似。例如,利用虚拟数字逻辑分析仪可实时观测逻辑状态(见图2),利用虚拟ADC、DAC示波器可观测电压状态(见图3)等。

图2
图2 🔍原图 (465×268)
图3
图3 🔍原图 (441×361)

UMPS的使用方法

下面结合“单片机交通控制灯”的实例,讲解如何利用UMPS 1.88试用版,进行单片机应用开发仿真的基本操作和方法。

图4 是“单片机交通控制灯”的电路原理图,这里使用89C51单片机作为核心控制部件。一般情况下,由红、黄和绿三个发光二极管分别指示停、过渡和行三种状态;同时两个数码管根据预先规定的值,显示路口停、过渡和行三种状态倒计时的时间。

图4
图4 🔍原图 (838×529)

在该电路中,还增加了1个键盘、1个拨动开关和3个红色发光二极管,用来实现特殊功能。其中键盘用来设置通行时间,拨动开关用来模拟特殊车辆(如110、119、120等紧急车辆)。当拨动开关打开时,红、黄和绿3个发光二极管同时熄灭,而另外3个红色发光二极管一起发光,表示一般车辆全部暂时禁止通行,而特殊车辆可以通过。特殊车辆通过后关闭拨动开关,3个红色发光二极管熄灭,电路按照一般情况工作。

图5 是仿真“单片机交通控制灯”的UMPS工作环境,左上、左下和右下窗口分别是源程序文本编辑、CPU代码和CPU特殊功能寄存器窗口。右上窗口就是资源编辑窗口,也就是外围虚拟硬件电路窗口,用户可以直接在此窗口中仿真现实效果,例如利用鼠标按键、拨动开关,并可以直接观察到数码管倒计时和发光二极管的工作状况。

1.加载CPU

在UMPS中所仿真的CPU类型是由一个扩展名为CPL的文件描述的,所以在仿真之前首先要加载一个相应CPU的CPL文件。启动UMPS后,打开菜单Configure,执行命令Load CPU...,就弹出一个“Load a CPU file”对话框(如图6所示);在对话框的Files列表框中选择与本文实例对应的8031.CPL选项,单击OK按钮后,该单片机的CPL文件就被加载了。

2.编辑和编译源程序

打开菜单File,执行命令Save file as...,打开Save a text file对话框,在Filename文本框内键入扩展名为“.asm”的文件名,选择路径单击OK按钮保存文件。

编辑保存后,就要开始编译源程序,以检查语法错误。打开菜单Program,执行命令Compile或按下Ctrl+F9组合键,UMPS就会对源程序进行编译。在编译的过程中如果有错,UMPS会显示错误信息,双击错误信息,可以在源程序中定位所在行。纠正错误后,再次编译直到没有错误,就可以连接外围电路、调试程序了。

3.连接外围虚拟仪器和元器件

(1)打开、退出Resources窗口

打开菜单Configure,执行命令Resources,就打开了虚拟仪器和元器件的Resources编辑窗口(如图1所示)。注意,每次激活Resources编辑窗口,要打开菜单Configure,执行命令Resources。Resources编辑窗口打开后,可以进行添加、删除、连接和配置虚拟硬件等操作。在Resources编辑窗口激活状态下,打开菜单File,执行命令Quit configure,或者直接单击工具栏按钮59,都可以退出Resources编辑环境。

(2)添加、删除虚拟硬件

在Resources编辑环境激活状态下,单击菜单Add,或者直接单击工具栏按钮60均可以打开添加虚拟硬件的对话框“Select a new resource”(如图7所示),该对话框左边是“Resource list: ”列表框,右边是虚拟硬件的预览框。在Select a new resource对话框中的列表框Resource list中选择LED(Red、Green、Yellow)选项, 单击OK按钮后,虚拟硬件就被添加到Resources编辑窗口。重复上述步骤,添加6个发光二极管LED(Red、Green、Yellow))、1个按钮(Push button)、6个键盘(PCF8583)、2个七段数码显示管(Display 7 Segments)、2个CD4511(CD4511-7 Seg.decode+Latch),就组成了“单片机交通控制灯”的外围虚拟电路,最后效果如图5所示。

对不需要的虚拟硬件,可以单击菜单Add,或者直接单击工具栏按钮61,删除虚拟硬件。

(3)配置、连接虚拟硬件

有些虚拟硬件有配置选项,用来设置虚拟硬件的基本描述属性。例如,在Resources编辑环境激活状态下,选中一个发光二极管,单击菜单Configure,或者直接单击工具栏按钮62,打开配置虚拟硬件的对话框“LED Configuration”(如图8所示)。在此对话框中,含有颜色单选按钮、器件名文本框和显示器件名单选按钮等描述发光二极管的设置项。设置好了发光二极管的描述属性后,单击OK按钮确定。重复上述步骤,分别设置“单片机交通控制灯”外围虚拟电路的其他虚拟硬件基本描述属性,完成配置。

配置虚拟硬件的基本描述属性后,就可以开始连接外围虚拟电路了。连接外围虚拟电路跟一般的电路分析软件画电路图不同,要求分别对每个虚拟硬件必要的引脚进行连接,就像在电路板上安装元器件一样,更加直观、更加接近实际情况。

例如,在Resources编辑环境激活状态下,选中一个CD4511,单击菜单Connect,或者直接单击工具栏按钮63,打开连接虚拟硬件的对话框“Resource connection:4511_1”(如图9所示)。此对话框由4个元素组成,各元素的基本功能如下:“Register list:”列表框包含一个所列外围虚拟硬件名及CPU的下拉列表和一个相应的引脚列表框;“Register BIT:”单选框表示的是所加载的CPU各个I/O端口的引脚;“Pin list:”列表框列出了当前选中的虚拟硬件(这里是CD4511_1)尚未连接的引脚;“Connection list:”列表框列出了当前选中的虚拟硬件和对应的其他虚拟硬件或CPU已经连接的引脚。

连接CD4511_1的基本操作方法如下:在对话框“Resource connection:4511_1”中,根据上述各元素的意义选择CPU和七段数码显示管DISPLAY_1的引脚,再选择CD4511_1对应的引脚,单击按钮64就连接好了引脚(如果单击按钮65表示删除引脚),单击按钮OK,确认连接。重复上述步骤,分别连接“单片机交通控制灯”外围虚拟电路的其他虚拟硬件。

4.调试、仿真和下载编程

编译通过后,打开菜单Program,执行命令“Run”,或者按下F9,或者直接单击工具栏按钮,程序就开始运行(直接单击工具栏按钮停止运行),观察(有声音器件,还要感受听觉的效果)外围虚拟硬件电路或相关寄存器变化。如有问题,可修改电路,或者利用菜单Program中的命令,通过“跟踪”、“单步”、“全速执行”等方法,进一步检验修改程序,直到成功为止。

另外,打开菜单Program,执行命令“Read/Write AVRISP”,在弹出的对话框“AVRISP In System Read/Write”中设置相应的选项后,就可以直接通过PC机的并行口下载编程,无须转借其他软件。

UMPS的其他详细功能可以参考Virtual Micro Design公司的UMPS使用手册,UMPS试用版的下载地址是www.vmdesign.com。

(文/谢亮 关春花 谢晖)