Multisim10软件在单片机C语言协同仿真中的应用

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

万方数据
118 P0 = 0x00; P3 = 0x0FF; P1 = 0x08; while (!P02) P1 = 0x03; P3 = 0x00; P3 = 0x01; P1 = 0x08; while (!P03) P1 = 0x04; halt(); return; } { {
常熟理工学院学报 (自然科学) // 清除传感器输入 // 初始化 P3 口, 禁止零件下落 // 箱子前进 } // 停止箱子 // 允许下落零件 // 禁止下落零件 // 箱子前进 } // 停止箱子
收稿日期: 2010-08-30 作者简介: 潘启勇(1971—), 男, 江苏宝应人, 常熟理工学院物理与电子工程学院讲师, 硕士, 研究方向: 嵌入式系统与智能 控制.
万方数据
116 与教学具有指导意义.
常熟理工学院学报 (自然科学)
2010 年
1
Multisiml0 MCU 模块简介
Multisim 是美国国家仪器公司 (National Instruments) 开发的一款电子电路仿真和设计套件, 其前身是加拿
图 1 传送带控制器模型
(1) 在 Multisiml0 新建一个电路原理图. Multisim10 中含有丰富的元件库并支持用户自定义的库, 可很方便 地放置电源与门等电子元件、 子电路、 连线及外围设备等 (此过程如同 Multisim 一般的电子电路仿真步骤, 这里 从略) , 然后保存电路文件为 ConveyorBelt.ms10. (2) 在原理图中放置 MCU 模块. 这里选择 8052MCU, 放置后会自动弹出一个如图 2 所示的向导, 按步骤分 别输入 MCU 的工作区路径 (如 D:\MCU TEST) 和名称 (这里也叫 ConveyorBelt) ; 工程类型 (标准) 、 编程语言 (C) 、 编译器 (Hi-Tech C51-Lite) 、 工程名 (C) 以及源代码文件名 (main.c) 等. 形成的工程文件层次结构如图 3 所示. (3) 绘制 MCU 最小系统 (如晶振、 复位电路、 I/O 分配等) 以及 MCU 外围设备之间的硬件连接. 绘制后的电路
万方数据
第 10
潘启勇, 陈海龙: Multisim10 软件在单片机 C 语言协同仿真中的应用
117
图2 MCU 模块添加向导
图 3 设计工具箱
如图 4 所示, 图中总线 BUS1 与传送带的传感器输入信 号和控制输出信号相连接. (4)输 入 源 代 码. 在 设 计 工 具 箱(Design Toolbox) 中 (如 图 4) , 双 击 main.c, 即 可弹出源代码编辑器, 此时 可以编辑源程序, 也可以添 加或复制已有的源程序. (5)编 译 链 接 仿 真. 将 编辑好的程序保存, 点击左 上方 “ 运行” 按钮, 若程序无 误, 一步即完成编译链接且
Application of Multisim10 Software in the MCU ’ s C Language Co-Simulation
Abstract: The new MCU module of NI Multisim10 can be used for hardware/software co-simulation of MCU like Multisim is introduced in this paper, which is of instructive significance for MCU developing and teaching. Key words: MCU; Multisim10; simulation
第 24 卷第 10 2010 年 10 月
常熟理工学院学报 (自然科学) Journal of Changshu Institute Technology (Natural Sciences)
Vol. 24 No. 10 Oct., 2010
Multisim10 软件在单片机 C 语言协同仿真中的应用
大 IIT 公司出品的 EWB (Electronics Workbench) , 目前的最新版本是 10.0. 在该电路设计套件中, 除包含并升级 了其颇具特色的 Multisim (采用 Spice 标准的电路仿真环境) 和 Ultiboard (PCB 设计环境) 之外, 更是创造性地将 Multisim MCU Module 作为插件无缝结合到 Multisim 之中, 从而为 Multisim 增添了微控制器协同仿真的功能, 在 同一个软件中将程序编译与测试以及电路仿真与分析这两大功能完美地结合在一起. 至此, Multisim 终于打破 了一直以来仅能实现模拟与数字电路仿真的局限, 弥补了同类软件的不足, 为嵌入式系统软硬件开发提供了有 力支持. 极大地方便了单片机初学者和单片机开发实验工作者, 完全可以脱离实验箱、 开发板的束缚, 随意在计 算机上模拟单片机固件(.hex)的 “烧片” 和运行结果, 配合各种虚拟仪器的使用, 可以快速准确地调试程序和硬 件连接而取得最佳方案. 在保留了 EWB 形象直观等优点的基础上, 增强了软件的仿真测试和分析功能, 扩充了 元件库中的元件数目, 特别是增加了大量与实际元件对应的元件模型, 使得仿真设计的结果更精确、 更可靠、 更 具有实用性. Multisim MCU Module 具有以下特点: (1) 支持 4 种类型的单片机芯片: Intel 或 Atmel 公 司 的 8051 和 8052 芯 片 、 Microchip 公 司 的 PIC16F84 和 PIC16F84a 芯片. (2) 支持对外部 RAM、 外部 ROM、 键盘和 LCD 等外围设备的仿真. (3)包 含 8051/ 8052 Metalink assembler、 Hi-Tech C51-Lite Compiler、 Microchip MPASM for PIC16、 Hi-Tech PICC-Lite Compiler, 分别对 4 种类型芯片提供汇编和编译支持. (4) 所建项目支持 C 代码、 汇编代码以及 16 进制代码, 并兼容第三方工具源代码. (5) 包含设置断点、 单步运行、 查看和编辑内部 RAM、 特殊功能寄存器等高级调试功能.
潘启勇, 陈海龙
(常熟理工学院 物理与电子工程学院 江苏 常熟 215500) 摘 要: 利用 Multisim10 软件新增的 MCU 仿真模块对 805x、 PIC 等系列的单片机进行软硬件协同仿
真, 将其引入到单片机教学工作中, 可以提高教学效率, 增强教学效果 . 通过 C51 编写了一个 “传送 带控制电路” 的仿真实例, 介绍了该软件的具体应用, 对于单片机开发和教wk.baidu.com具有一定的借鉴意义. 关键词: 单片机; Multisim10; 仿真 中图分类号: TP391.9 文献标识码: A 文章编号: 1008-2794 (2010) 10-0115-04
2010 年
// 等待箱子撞击传感器 PS2
// 等待箱子撞击传感器 PS3
3
结束语
从实例可以看出, 在单片机教学中利用 Multisim10 进行软硬件协同仿真演示, 工作过程与实际的设计过程
十分接近, 理论教学的内容言之有物, 不再枯燥无味, 因而提高了学生学习兴趣和教学效果. 学生也可在课余利 用它来进行虚拟实验, 以解决实践性环节的教学难题. 参考文献:
2
仿真实例
下面以 “传送带控制器” 的仿真实验为例说
明 Multisim10 在 单 片 机 教 学 中 的 应 用. 如 图 1, 传送带上装有一个箱子, 由 8052MCU 控制传送 带的前进 “Fwd” 、 后退 “Rev” 、 停止 “Stop” , 当箱 子经位置传感器 “PS1” 前进到 “PS2” 时, 传送带 停止, 此时正上方漏斗里的零件开始下落 “Drop” 到箱子里, 计数传感器 “CNT” 可对下落的 零件进行计数, 下落后, 传送带继续移动到位置 “PS3” 处, ……诸如此类的控制功能学生可自行 设计.
[1] 张建辉. 模拟仿真软件在单片机教学中的应用研究[J]. 温州大学学报, 2007, (4) : 52-55. [2] 黄培根. Multisiml0 虚拟仿真和业余制版实用技术[M]. 北京: 电子工业出版社, 2008: 2-4. [3] 李华清, 李锋. 基于软件仿真的单片机调试技术[J ]. 矿业科学技术, 2002, (1) : 24-25. [4] 陈瑞旭, 张亚学, 等. NI Multisim10 软件在单片机学习中的应用[J]. 广西大学学报, 2007, 32: 268-270. [5] 李军. 利用 NI Multisim 软件的 MCU 模块进行 《单片机》 课程仿真实训及教学的研究[J]. 青岛远洋船员学院学报, 2008, 29 (2) : 70-72.
图 4 MCU 最小系统及外围电路
直接进入仿真, 单片机工作, 并生成供下载用.hex 固件文件; 程序编译出错后, 在下方编译信息栏会给出错误信 息列表, 修改错误后, 重复编译步骤. 仿真时可设置断点, 观察寄存器、 存储器状态, 当然更直接的结果可通过外 围设备运行状态观察, 如同在真实硬件环境下的操作一样. 本实例的 C 程序如下: /*************************************************************************** 说 功 明: 这是一个 Multisim10 的 MCU 模块源程序文件 能: 用于控制传送带 // htc.h 是 Multisim10 中 805xMCU 的头文件, 正如 8052.h 一样 文件名: main.c ***************************************************************************/ #include "htc.h" int halt(void) { { while(1); } P1 = 0x00; // 清除控制输出 void main()
0


单片机技术是一门涉及到数字电子技术、 模拟电子技术、 计算机和通信等多个领域的应用型课程, 实践性 很强. 传统的教学模式一般是先基础后应用, 先课堂讲解, 再进行相关的实验. 由于和硬件密切相关, 只在课堂 上讲授理论, 学生在学习过程中会感到比较枯燥、 难理解. 而进入实验室, 由于实验学时和设备台套数的限制, 学生实践操作的时间很少, 况且有些实验项目往往是由教师事先设计好的, 学生基本不用预习就可以照本宣科 做出来, 应付了事. 另外, 学生课后自学又不具备实验条件. 这种理论与实践脱节的教学过程, 不仅会造成学生 对理论知识理解困难, 而且也导致了其动手能力不足, 严重影响教学效果. 因此, 在以往的单片机教学甚至开发过程中, 我们经常采用专用的计算机仿真软件进行测试, 如 51 系列 MCU 就经常使用 Keil 和 Proteus 软件. Keil 是美国 Keil Software 公司开发的, 是目前世界上最好的单片机开发工 具之一. 它支持汇编语言、 C 语言以及混合编程, 其软件仿真功能可以在没有硬件支持的条件下, 详细测试程序 运行情况; 然而其电路仿真功能则要受到很多限制, 需要借助第三方开发的动态 DLL 进行计算机模拟, 或者需 要价格较昂贵的硬件仿真器 MONITOR-51 的支持. Proteus 是英国 Lab center 公司开发的电路分析和仿真软件, 能够对 11 个大类百余种微处理器进行 CPU 及外围电路的仿真, 但在进行仿真调试时只能进行硬件改动, 而不 能直观地了解程序运行情况. 因此, 虽然这两种软件各自都可以进行单片机系统仿真, 但受到的限制也比较多. 目前更为常用的仿真办法是将 Keil 和 Proteus 结合在一起进行单片机系统的联合仿真. 二者联合仿真又分为离 线联合仿真和在线联合仿真两种情况. 前者在测试时需要在两个软件之间频繁切换, 后者则会占用大量的系统 资源. 现在, 这些问题都可以在 Multisim 中得到较为理想的解决. 本文结合单片机系统仿真实例, 介绍在 Multisim10 环境下, 利用 Multisim MCU Module 进行单片机 C 语言软硬件协同仿真的完整过程. 对于单片机系统开发
相关文档
最新文档