首页 » labview » 技术文章

用于SPICE电路的微控制器(MCU)协同仿真功能简介

2014-01-14

核心提示:概览 NI Multisim MCU模块为Multisim软件增添了微控制器(microcontroller unit)协同仿真功能,从而使得您可以在使用SPICE建模

概览
NI Multisim MCU模块为Multisim软件增添了微控制器(microcontroller unit)协同仿真功能,从而使得您可以在使用SPICE建模的电路中加入一个可使用汇编语言或C语言进行编程的微控制器。

Multisim MCU模块使得学生、教师以及专业用户可以在熟悉的Multisim环境中以汇编语言或C语言对MCU进行编程。这个MCU模块可与Multisim中任意一个虚拟仪器共同使用以实现一个完整的系统仿真,包括微控制器以及全部所连接的模拟和数字SPICE元件。
Multisim MCU模块支持Intel®/Atmel® 8051/8052Microchip PIC16F84a芯片以及众多高级的外围器件,例如外部RAMROM、键盘、图形型和字符型液晶等等。MCU模块充分利用了Multisim软件的教育平台功能从而使得它成为许多电子类课程的理想选择,例如数字电路、计算机体系结构、MCU编程、嵌入式系统控制、高级设计以及其他相关课程!
 
开始前的准备工作
本指南要求Multisim MCU模块已被激活或者处于有效的试用期内,而且建议您已对标准的NI Multisim软件环境有所了解。
附带的文档包括了完成此指南所需的全部文件。但是,本指南只是说明了如何从零开始创建一个MCU模块工程,而没有解释源文件。

 

 文件名
文件类型
文件目录
PIC UpDown Counter.ms10
Multisim 10 Circuit
..\
PIC UpDown Counter.mcuws
MCU Module Workspace
..\PIC UpDown Counter\
C Project.mcuprj
MCU Module Project
..\PIC UpDown Counter\C Project
UpDown_Counter.c
C-Code Source File
..\PIC UpDown Counter\C Project
Assembly Project.mcuprj
MCU Module Project
..\PIC UpDown Counter\Assembly Project
UpDown Counter.asm
Assembly Source File
..\PIC UpDown Counter\Assembly Project

 

本指南中所使用的MCU工程是利用Microchip公司的PIC16F84芯片来演示一个简单的加碱计数器。微控制器的端口A配置为输入并连接到两个开关,而端口B则配置为输出并连接到一个7段显示器。两个开关用以打开或关闭显示器以及改变计数方向。7段显示器以十六进制显示了当前的计数器数值(0-F)。这个MCU模块例程包含了两个相同的工程,一个使用汇编语言创建,而另一个则是使用C代码创建。
 
创建一个新的MCU工程
  1. Multisim中打开一个新的电路原理图并从元件库中放置PIC16F84
  2. 根据MCU向导逐步执行
             步骤1:定义Workspace文件
  • workspace文件路径:例如“c:\MCU Projects”
  • 输入workspace文件名:例如“PIC UpDown Counter”
             步骤2:定义工程
  •  编程语言:C语言
  • 汇编器/编译器工具:Hi-Tech PICC-Lite编译器
  • 工程名:例如“C Code Project”
             步骤3:定义源文件
  • main.c” 
  • 保存您的电路文件:例如“PIC UpDown Counter.ms10”
您的设计工具箱应当如下图所示(选择菜单VIEW > Design Toolbox
 
 
 
输入源代码及添加其它工程
  1. C源代码文件“main.c”上双击以打开源代码编辑器
    设置当前活动工程为:例如“Assembler Project”  
  2. 使用文本编辑器打开存档文件中的“UpDown_Counter.c”文件并从该文件复制所有的C代码1
    void main () 函数调用)并粘贴到“main.c”
    在编辑器窗口中右键单击并选择“Show line number”
  3. 保存文件“main.c”并关闭编辑器
  4. 打开MCU代码管理器(MCU Code Manager
    -MCU > MCU PIC16F84 U1 > MCU Code Manager 
    在设计工具箱中右键单击workspace、工程或源文件名并选择“MCU Code Manager”
  5. 在当前的workspace中添加一个新的汇编语言工程
    -New MCU Project”
    -工程名:例如“Assembler Project”
    -向新工程添加已有的源文件
    -单击“Files…”
    -从存档文件中选择文件“UpDown Counter.asm”
  6. 单击OK以关闭MCU代码管理器
  7. 您马上即可进入源代码编辑器以编辑新的汇编语言源文件
  8. 右键单击编辑器窗口并选择“Show line number”
  9. 关闭源代码编辑器并保存完整的电路文件
 
 
 
放置并连接外围组件
由于已假定您基本了解NI Multisim软件,所以我们将不会详细地介绍如何实现这个电路。
使用下述的组件来实现如下图所示的电路。所有的组件都可按默认的设置来使用。如果您希望查看这些默认设置,请右键单击任意一个组件并选择属性。
 
 

 

数量
名称
元件组
元件类别
元件符号
1
POWER_SOURCES, VSS
Sources
Power_Sources
VSS
1
POWER_SOURCES, VDD
Sources
Power_Sources
VDD
1
SEVEN_SEG_COM_A
Indicators
Hex_Display
U2
2
SPST
Basic
Switch
J1, J2
1
PIC, PIC16F84
MCU Module
PIC
U1
2
RESISTOR, 10kΩ 5%
Basic
Resistor
R1, R2

 

 

注意:可以使用直接连线的方式来代替用于VDD和总线向量(即连接PIC6F84的端口B与十六进制数字显示器的向量)的虚拟连线。
 
仿真您的电路
  1. Assembler Project这个工程设置为您当前的活动工程
    右键单击工程名并选择“Set Active MCU Project”
  2. 开始仿真
  3. 十六进制数字显示器U2开始向上计数
  4. 使用开关J1J2来测试电路特性
    -J1来打开和关闭显示器
    单击J2来改变计数方向
    -您也可以从键盘分配键值来操作开关(元件属性中的Value标签)
  5. 停止仿真
  
调试您的源代码
  1. J2 
  2.   打开源代码编辑器
    UpDown Counter.asm”
  3. 在第76行放置一个断点
    -Show Line Numbers”
    -在第76行右键单击并选择“Toggle Breakpoint”
  4. 关闭源代码编辑器并保存所进行的更改
  5. 开始仿真
  6. 关闭开关
    -仿真将运行至断点处并且切换至暂停模式
    弹出调试窗口
  7. 选择菜单Window > Tile Horizontal
  8. 单击Run/Resume仿真按钮(工具条中的绿色三角形按钮)
    显示器将显示下一个数字
  9. 打开内存映像(Memory View
    -workspace、工程或源文件名上右键单击并选择“Memory View”
    -选择菜单MCU > MCU Windows.. > U1 Memory View > OK 
    如果需要的话可以调整内存映像的大小
    -每当仿真器处于暂停模式之时,寄存器和内存映像就会更新
  10. 对变量Counter重写内存空间(Counter EQU 0x1C
    -IRAM内存映像
    - 定位到地址0x1C
    -双击以进行编辑和输入新的数值(例如,0D
    -单击Run/Resume仿真按钮
    -仿真在断点处将再次暂停并且显示器显示数值0C
  11. 熟悉调试工具(单步进入、单步跳过、单步跳出
    -从菜单MCU >中选择
  12. 停止仿真
  13. 删除所有的断点
    MCU > Remove all breakpoints
  14. 选择菜单File > Save all
 


 
 
 
在活动工程之间切换
一个MCU模块的Workspace中可以含有多个由汇编语言或C语言源文件构成的工程。如果您希望重复上述步骤,那么您可以将工程“C Code Project”设置为当前活动的MCU工程。
  1.  Assembler Project这个工程设置为您当前的活动工程
    -在工程名上右键单击并选择“Set Active MCU Project”
  2. 重复上述步骤
注意:源代码的行数以及内存地址可能会改变
 

相关新闻

排行榜