|
第一届51测试网有奖征文精彩回放,深圳学林电子版权所有 www.51c51.com (专业51单片机学习网站)转载注明出处! 更多精彩稿件请访问论坛http://www.51c51.com/bbs/index.asp |
|
| 作品1:字符型液晶显示模块
作者联系: 邓杰 |
|
| 作品2:用8X8LED点阵屏循环显示 | 作品7:用虚拟IIC总线实现24C02
的应用
|
| 作品3:虚拟仿真仪器UMPS的应用:牛余朋 |
作品8:语音编程、远程控制试验板
社区乞丐 |
| 作品4:万年历数字钟及可调时钟系统 |
作品9:定时开关控制器的制作 |
|
虚拟仿真仪器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所示。 如果相应的单片机下载电缆线,还可实现程序的下载,从而使程序可脱离环境运行,无须其它软件支持。 四
结束语 在单片机的设计开发中,不可能完全实现硬件的实际仿真,所以在特殊条件下进行软件仿真仿真便能跟好的体现出其优点:迅速、节约。当然由于单片机设计需要很好考虑周围电路环境,软件仿真只是在一定程度上辅助硬件进行。若能二者结合,将会产生最完美的效果。 作者联系方式:西安市第二炮兵工程学院研究生二队 姓名:牛余朋 |