返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

学林杯第二届单片机征文大赛公开评奖稿件 深圳学林电子www.51c51.com 版权所有 转载注明出处   请不要忘了:现在为你喜欢的稿件投票!
作品1:征文-我是怎样开始学习电子的 山西省大同市作品6:多功能自行车测速仪  北京大学      崔健
作品2:数字温度计的设计  杭州电子科技大学     陈智杰作品7:带闹钟智能电子钟 深圳市天安数码城      谢玉平 
作品3:如何使自制的单片机电子钟走时精准        舒新生作品8:电话回拨服务告知装置 武汉市桥口区      詹显德
作品4:宽带数控放大器 陕西省西安通信学院     韩宏伟作品9:单片机应用之摩斯密码电子锁广东省顺德      吴志光
作品5:一些事,一些情 韶关市       冯敬锋作品10:基于aduc842瞬态波形存储器 华中师范大学物理学院     杨程泽
作品11:基于AT89S52单片机的毫欧表电路设计中南林业科技大学涉外学院     郭海

作品1:字符型液晶显示模块       邓杰   作品6:基于89C51的智能转速计   淮安信息学院     宋炎
作品2:8X8LED点阵屏循环显示作品7:用虚拟IIC总线实现24C02 的应用  南阳理工学院      张全领
作品3:虚拟仿真仪器UMPS的应用      牛余朋作品8:语音编程、远程控制试验板      社区乞丐
作品4:万年历数字钟及可调时钟系统作品9:定时开关控制器的制作    魏军丞
作品5:点矩阵显示器的应用会员lfgbody     林发根作品10:AD080951单片机中的应用       文/黄海

虚拟仿真仪器UMPS在单片机系统开发中的应用

一 引言

从事单片机产品设计、开发等工作的人员,经常要对自己所编写的程序和设计的外围电路进行仿真和调试。以往的单片机设计仿真,常常是制作一块安装实际元器件的模拟试验板,借助于单片机仿真软件以及相应的仿真器对目标试验板进行试验和调试。然而UMPS集成开发环境(IDE)的出现,成功地解决了上述问题,使得单片机的设计和开发完全转化到了软件系统上来,从而大大缩短了产品的设计周期,提高了效率

UMPS功能及特点简介

UMPS是Universal Microprocessor Program Simulator(通用微处理器程序仿真器)的缩写,它是法国Virtual Micro Design公司开发的一个单片机仿真集成开发环境。和大多数仿真软件一样,UMPS具备编辑、编译、汇编、反汇编等功能,同样也有全速执行、跟踪、单步、暂停、设置断点等调试功能,而且它还能够在线下载编程。UMPS支持很多公司不同型号的单片机。如Microchip、Intel、Atmel、Motorola、SGS Thomson等等。

UMPS最强大的特点是,它拥有虚拟元器件和虚拟仪器仪表的可视化“资源”。正是因为UMPS具有这些独特的可视化“资源”,从而使得单片机外围电路的元器件和仿真用的测试仪器均可从屏幕上直接选取,这些可视化的元器件 “资源”同实际外形极为相似(例如放光二极管、七段数码管、键盘、按钮、录音机、集成块等等),见图1,用户特别容易学习和使用。不但UMPS的虚拟元器件同实际工作状况相似,而且它的虚拟仪器也和实际的操作、观测相似,例如利用虚拟数字逻辑分析仪可实时观测电路的逻辑状态(见图2),利用虚拟ADC和DAC示波器可实时观测电压状态等。

 

1

2

三 应用举例

为方便理解和应用,现以“用PIC16C54单片机实现矩阵键盘输入”这一常用模块的电路和软件设计来简要说明该软件的仿真应用。

第一步、首先在该软件主菜单下加载要选用的CPU,这里使用PIC16C54单片机。首先启动UMPS软件,依次点击菜单“configure      Load CPU”,便出现图3所示对话框。进行单片机的选型。

 

3

第二步、画电路图,具体的画法如下:

首先打开菜单confogure,执行命令resource,就打开了虚拟仪器和元器件的编辑窗口,在resource窗口下单击菜单“add”就可以就可以打开虚拟仪器和元器件对话框,如图4所示。该对话框左边是虚拟仪器和元器件名称,右边是虚拟仪器和元器件的实物预览,在左边框中选择好元器件后点OK按钮,便可以将元器件加入到原理图设计区,重复上述步骤,便可以完成整个原理图的绘制。对于本例绘制完的原理图如图5所示。

4

5

接下来还要注意的是光把元器件放上不行,还要进行电气连接:

对于本例,在电路设计区加上按钮开关后,用鼠标双击,按钮开关之后弹出一个按钮设置对话框,如图6所示。

6

在该对话框中可以设置该开关的电气属性,比如说,输入“0”有效还是输入“1”有效,开关作用时间、是否加模拟实际开关所产生的噪音,以及开关的形式是“按钮”形式还是“形玛”形式。可见单单就一个开关其功能就这么强大。按图5放置好电路图中的16个按钮后现在就图5中的第一个“SWC”按钮开关简单讲解一下如何实现按钮开关如何实现跟单片机的电气连接。其它元器件跟单片机的连接类似。读者可根据这个进行其它元件的连接。首先,鼠标左键单击“SWC”按钮,然后单击鼠标右键,弹出图7所示的“Resource Connection :Key_4”对话框:

7

此对话框用来进行按钮跟单片机管脚的设置。对话框中左边一栏是所选单片机所具有的所有资源,我们这里要对单片机管脚进行连接。所以只需要配置单片机的一般“I/O”,这里我们选择“PORTB”端口与按钮SWC(注意标识为Key_4)进行连接。从图中我们可以看出PIC16C54单片机的“PORTB”端口共有8位,分别是b0-b7,而在“pin list”一栏里列出了该按钮的端口—“out、in和out2”,这里 out2没有用(这一点读者可以从图6的按钮设置对话框中左上方的图中发现该开关的端口只有“out和in”)。接下来就是进行连接,选中b0-b78位中的一位,然后再选中“pin list”一栏里的out或in,点击下面的“Connect”图标,这样单片机的管脚便和按钮开关的管脚连接在了一起,同时连接在一起了的管脚形象的显示在右边“Connection list”一栏里,同理,可以完成其它管脚的连接,全部连接完毕后的图如图8所示:

8

第三步、进行对单片机控制的软件源程序的编写。程序编写完成后,要对源程序进行编译,直至没有语法错误。在编译的过程中可以综合利用各种变异工具,从而有效地检查出程序错误。下面是已经编译通过的“用PIC16C54单片机实现矩阵键盘输入”的源程序:

keypad      equ    PortB

row1        equ     4

row2        equ     5

row3        equ     6

row4        equ     7

cols        equ     8

key         equ     9

index       equ     10;以上是各个变量的定义

        org 01FFh;程序入口

                goto    start

        org 0

start:                               

                movlw   11110000b   ;键盘扫描:行输出,列输入

                TRIS B

        movlw   0

                movwf   PortA          

keys        call    scankeys

                movlw   16

                subwf   Key,W

                btfsc   STATUS,Z

                goto    delay

                movf    Key,W

                movwf   PORTA

delay       nop

            nop

                decfsz index

                goto    delay

                goto    keys

scankeys    clrf    key

        clrf    keypad

                movlw   4

        movwf   cols        ;4 x 4 keypad

        bsf     STATUS,0    ;Put a 1 into carry

scan        rlf keypad

        bcf     STATUS,0    ;Follow the 1 with zeros

 

        btfsc   KeyPad,row1

                goto    press

        incf    key

        btfsc   KeyPad,row2

                goto    press

        incf    key

        btfsc   KeyPad,row3

                goto    press

        incf    key

        btfsc   KeyPad,row4

                goto    press

        incf    key

        decfsz cols

                goto    scan    ;Try all 4 columns.

                retlw   0

press       retlw   0       ;Return with value in key.      

 

上述几步完成后的软件界面如图9所示。

 

 

9

以上准备工作都做好以后,最后一步也就是最关键的就是进行实际仿真调试了,运行软件面板上的全速运行(也可以借助于跟踪、单步、暂停、设置断点等调试功能来实现最后的仿真运行)显示介面非常直观同时在编辑窗口中还可以自己设置状态变量,使得程序在运行时将运行结果直观的显示在界面上。运行界面如上面图9所示。

如果相应的单片机下载电缆线,还可实现程序的下载,从而使程序可脱离环境运行,无须其它软件支持。

四 结束语

在单片机的设计开发中,不可能完全实现硬件的实际仿真,所以在特殊条件下进行软件仿真仿真便能跟好的体现出其优点:迅速、节约。当然由于单片机设计需要很好考虑周围电路环境,软件仿真只是在一定程度上辅助硬件进行。若能二者结合,将会产生最完美的效果。

 

作者联系方式:西安市第二炮兵工程学院研究生二队

姓名:牛余朋