软件仿真实验范文

2024-07-26

软件仿真实验范文(精选12篇)

软件仿真实验 第1篇

随着计算机技术的发展,在高等学校利用虚拟实验室进行实验教学已经成为一种趋势,也将会成为未来实验教学的重要途径和方式[1]。在组网技术相关课程中,需要进行局域网的设计与配置、路由基本配置和路由协议以及交换机相关配置等实验。但由于网络设备更新快、成本高;一个功能齐全的网络实验室建设成本最低也要过百万;加上学生频繁做实验很容易损坏设备,维护更新成本也极其昂贵。一般高校根本无法承担,这直接影响了计算机网络课程教学的效果[2]。这就使得在计算机网络教学中,使用虚拟实验室变得十分必要。

虚拟实验室具有利用率高、易维护等诸多优点。为了节约虚拟实验室建设成本,应尽可能地利用平民化、大众化的虚拟技术来创建虚拟实验室[3]。根据教学科研的实际需求,本文给出了一个基于仿真软件构建虚拟网络实验室的整体方案。虚拟网络实验环境可以将通用机房转换为专业的网络实验室。有效提高学生网络设备配置操作的实践技能[4]。

2 仿真软件简介

Dynamips[4]:思科路由器、交换机仿真软件。

Dynagen:Dynamips命令行前端;使用较为复杂。

GNS-3:Dynamips和Pemu的图型界面前端。需要特别配置,集中在网络设备上,暂不支持添加工作站和服务器。

QEMU[6]:可以虚拟x86、amd64、powerpc等多种体系结构的计算机。

KVM:基于QEMU,Linux内核官方支持的虚拟机。

Pemu[7]:基于QEMU的思科PIX防火墙虚拟机。

SkyEye[8]:在GDB基础上做的嵌入式开发板仿真软件。

PearPC:powerpc仿真软件。

VDE2:虚拟交换网。

Virtual Box:可仿真x86计算机,有开源与商业两种授权。

VMware:商业软件,可仿真x86计算机。

Boson NetSim:商业软件,只模拟了IOS命令行,与实际情况有很多差距。

如上所示,仿真软件很多;本方案主要通过Dynamips、QEMU和SkyEye实现。

3 构建方法

构建整个虚拟网络实验室的思路可以分三步:1)将硬件用仿真软件替代;2)在仿真软件上运行IOS之类的相关系统,变成可用的虚拟设备;3)将虚拟设备连接成网络。

3.1 虚拟实验室架构

虚拟实验室的架构如图1所示。其中最关键的是处于中间的,运行在Debian GNU/Linux之上的仿真软件QEMU等。Debian GNU/Linux是可以运行在裸机或VMware虚拟机上;VMware虚拟机则可以运行在裸机、Windows或Linux之上。考虑到虚拟实验室的分发和复制,如果是将虚拟实验室在VMware这类虚拟机中构造,那么就很容易将整个虚拟实验室提供给其他人复制使用。

利用Dynamips去运行IOS,在SkyEye上模拟嵌入式开发板,用QEMU去运行普通操作系统……由此我们得到了各种各样虚拟设备:路由器、交换机、防火墙、嵌入式开发板、工作站、服务器等。通过运行仿真软件,一个进程就相当于有了一台设备;虚拟设备的数量只受限于物理机的可用资源。事实上一台普通台式计算机就已经可以做CCIE的实验了。

3.2 实施步骤

3.2.1 将硬件用软件替代

仿真软件通常都是模拟一个或一类硬件,图2给出了主要的仿真软件与硬件之间的对应关系。这一步,只需要安装相关的软件就行了。比如,在Debian GNU/Linux中,可以使用命令:“apt-get install qemu dynamips kvm skyeye”等进行安装。

3.2.2 在虚拟的设备上安装相应的系统

所安装的系统与各个仿真软件相关。比如QEMU,在里面可以安装Linux、Windows、Solaris等;而Dynamips需要准备好CISCOS的IOS或PIX镜像;SkyEye则要有嵌入式设备的内存映像,并写好相关配置文件。

相关软件的配置使用方法比较繁琐,并且与所运行的系统环境相关。受篇幅限制详细介绍请查阅软件的帮助文档,或者阅读参考文献:李文池的“Dynamips虚拟网络配置与应用”[5]、滕步炜的“PIX防火墙配置模拟实现”[7]、以及沈阳的“基于SkyEye的嵌入式Linux系统仿真环境构建”[9]。

3.2.3 将虚拟的网络设备连接在一起

比如Dynamips,它可以指定运行后的“路由器”等的IP地址和端口。通过指定每一个虚拟机软件运行时的参数,就可以将所有的设备都连接在一个虚拟的局域网内。这个网络可以是完全虚拟的。如果需要虚拟的网络非常庞大,超过一台计算机的承受能力;也可以利用VDE等软件进行半虚拟化,将虚拟网络与真实网络相结合。如果只考虑做组网技术的实验,最简易的实现方式是使用GNS-3画出所需拓扑[10],也可以直接手工编写Dynagen的.net格式的拓扑描述文件。

3.2.4 虚拟实验室应用实例

图3是一个用GNS-3制作的“配置PPP的CHAP认证”实验的拓扑图。

GNS-3将拓扑图保存为.net拓扑描述文件,内容类似于配置PPP的CHAP认证的拓扑描述文件;这就是Dynagen所定义的.net拓扑描述文件样例。还可用Dynagen去调用:

如果需要做网络安全等实验,则还要与QEMU等软件结合起来用。感兴趣的读者可以查阅软件的使用手册。

3.2.5 预定义网络

虽然学习上述软件的使用并不是太难,但如果要让学生直接去用,确实还是会碰到困难,会浪费宝贵时间。所以,为了提高可用性,预先安装好一个“即开即用”的虚拟网络实验室就非常必要了。建设虚拟网络实验室的最主要的任务就是要安装好虚拟机,将教学中每一个需要用到的网络拓扑都预先定义好,让学生可以通过双击或运行一个脚本就直接进入实验状态。

4 总结

通过仿真软件将网络实验室构建成虚拟机、Live CD或USB Live系统的形式分发给学生;让学生可以迅速上手做组网技术实验,而不是浪费时间在学习这些软件的使用;并且可以随时在自己的计算机上进行实验学习,既节约成本,又能提高学生的实践机会,是非常值得推广的应用技术。

摘要:为了节约网络实验室的建设成本,并方便学生课下进行自主学习。通过Dynamips、SkyEye、QEMU等仿真软件,可以在普通计算机上构建虚拟网络实验室,涵盖CCIE、网络安全和嵌入式开发等实验室功能。在节约成本的同时,虚拟网络实验室还能提高实践效果。

关键词:虚拟网络实验室,教学应用,Dynamips,SkyEye,QEMU,虚拟化

参考文献

[1]宋象军.虚拟实验室在高校实验教学中的应用前景[J].实验技术与管理,2005,22(1).

[2]汪华斌.模拟技术在计算机网络教学改革中的应用[J].科技广场,2007(9).

[3]黄慕雄.高校教学型虚拟实验室建设的现状与建议[J].网络教育与远程教育,2005(9).

[4]孙秉超.基于DynamipsGUl的虚拟网络实验环境构建[J].电脑知识与技术,2008(19).

[5]李文池.Dynamips虚拟网络配置与应用[J].南京工业职业技术学院学报,2007(2).

[6]Bellard F.QEMU,a Fast and Portable Dynamic Translator[C].USENIX Association,FREENIX Track:USENIX Annual Technical,Confer-ence,2005.

[7]滕步炜.PIX防火墙配置模拟实现[J].福建电脑,2008(5).

[8]陈渝,杨晔,李明,等.嵌入式系统仿真环境——SkyEye[J].电子设计应用,2004(2).

[9]沈阳.基于SkyEye的嵌入式Linux系统仿真环境构建[J].韶关学院学报-自然科学,2008(3).

软件仿真实验 第2篇

摘要:以物理化学“凝固点降低法测定物质摩尔质量”实验为例,阐述了以Labview程序为基础的仿真实验在培养学生创新能力方面的应用。通过对不同历史时期实验方法的仿真操作,使学生体会到随着技术的进步,实验方法改进的背景和思路,对启发学生的创新思维起到了积极作用。

关键词:创新人才;物理化学实验;仿真实验

创新人才是指具有创新意识、创新思维、创新能力的人才[1],其核心是不因循守旧,能在细微处发现问题、并解决问题。物理化学实验是一门综合性很强的实验课程,其背后思维逻辑严密、方法多样并紧随时代技术不断进步,所以给学生提供了更多的思维和想象空间,对培养化学专业学生的创新思维具有不可或缺的作用,但在实践过程中经常会出现以下问题:①实验仪器台件数偏少,不能保证每个学生能够掌握所有实验细节。②有些实验原理和设备与实验要求存在偏差使实验准确度和重复性较差。③绝大多数物理化学实验均涉及到仪器的使用和操作,给学生的预习和复习带来了较大的困难。④传统实验教学方法难于突出培养创新型人才的目的。鉴于以上情况,我们尝试在教学模式上进行改革,通过仿真实验弥补以上缺陷。通过实践证明,该方法有效的提高了学生的创新思维能力,并且使实验器材的损耗降到最低。

软件仿真实验 第3篇

摘 要:Edison仿真实验软件以其优越性在中学电路课程的教学中有广阔的前景,但许多一线教师对仿真实验的教学效果持怀疑的态度。针对此问题, 笔者分析了Edison仿真实验软件在中学电路课程中运用的可行性,并结合案例探究Edison仿真实验软件在教学中实际应用的过程,提出在应用过程中应注意的问题。

关键词:Edison仿真软件;电路课程;应用

中图分类号:G434文献标识码:A文章编号:1673-8454(2009)02-0036-03

一、引言

实验可以帮助学生学习比较抽象的科学知识,锻炼他们的动手能力和解决问题的能力。但由于经费、场地、安全等原因的限制,真实实验很难完全开放,学生没有更多机会设计和操作实验。Edison仿真实验软件的出现突破了传统实验的局限性,可以弥补实验仪器少及仪器、元器件损坏的不足,凸显实验的开放性,便于学生自主学习和研究学习,激发学生的学习兴趣。

有不少教师担心,仿真实验通过实物的虚拟化提供的虚拟化的实验环境会影响教学效果。但从目前的研究结果来看,对仿真实验的研究大多局限在仿真实验的设计和开发上,对类似Edison的仿真软件在教学实践中的应用研究相对较少。中学教师没有必要也没有精力设计和开发这些软件,成熟的商业仿真软件功能强大,根据教学需要选择适合的软件进行应用研究显然更加有效和切合实际。

二、可行性分析

1.Edison仿真实验软件的优越性

Edison仿真实验软件是专用于电子线路仿真的“虚拟电子工作平台”软件工具,该软件拥有仿真度很高的常用电工电子元器件模型库,能对实际电路进行有效的模拟仿真分析。Edison仿真软件将原理图的创建,电路的测试分析和结果的图表显示等,全部集成到同一个电路窗口中。测试仪表和某些仿真元件的外形非常接近,且仿真元件的操作开关、按键与实际仪表也极为相似,因此通过电路的仿真设计,既能熟悉电路,又能熟悉仪器仪表的使用方法,同时与实验操作不脱节。

Edison仿真软件在实验过程中会出现有趣的声光效果,如在电路中有发光的灯泡,可以看到灯泡光线强弱的变化。又如电动机,可以看到其转动的快慢及方向,并可听到电动机运转的声音,使操作者有进行游戏的感觉,从而在不知不觉中掌握电学知识,激发学生学习电学的积极性。

Edison仿真软件的另一个很大的优点是该软件提供了中文版本,全中文模拟操作环境能使学生的学习效率大大提高,有利于该软件在电路课程教学中的使用和推广。

2.信息化教育在中学的推广和应用

近年来,随着信息化教育在中学的推广和应用,政府对中小学信息化建设的支持也不断加大,中小学的教育技术装备在不断地更新,新的教育教学手段层出不穷。电子化的教育媒体使教学过程更加灵活,各种信息通过文本、声音、图像等直观形式传递给学生,具有丰富的手法和巨大的表现力,能够更好地吸引学生的注意力,加深他们的理解和记忆。

从硬件上来看,新乡市中学大都配备了一定数量的多媒体教室和学生机房,给教师的演示实验和学生的分组实验提供了物质基础。从软件上来看,教师通过培训和实践应用,掌握了计算机的基本操作技能和技巧;市级中学都开设了《信息技术》必修课程,学生的计算机基本操作也能够过关。此外,随着互联网的发展与普及,我们可以很容易地获得Edison仿真软件的试用版。试用版虽然没有保存和打印功能,并且只能适用于小规模电路,但对中学实验来说已经是绰绰有余了。

三、案例探究——Edison仿真实验软件在《欧姆定律》一课中的应用

1.教学内容分析

《欧姆定律》是人教版物理义务教育八年级下册第六章“欧姆定律”的第四节内容。欧姆定律是电学中的基本定律,是进一步学习电学知识和分析电路的基础。本次课的逻辑性、理论性很强,重点是学生要通过自己的实验得出欧姆定律,最关键的是两个方面:一个是实验方法,另一个就是欧姆定律。

欧姆定律的含义主要是靠学生在实验的过程中逐渐理解,而定律的形式也很简单,所以是重点而不是难点。学生对实验方法的掌握既是重点也是难点,这个实验难度比较大,主要在实验的设计、数据的记录以及数据的分析方面。由于实验的难度比较大,学生出现错误的可能性也比较大,所以第一次实验课在多媒体教室上,学生利用Edison仿真实验软件可以反复实验,不用担心仪器缺少和损坏的问题。

2.教学对象分析

选取河南师范大学附属中学八年级的40名同学参加了教学研究。通过前几节课的学习发现,学生们普遍喜欢电路实验,枯燥的讲解难以激发学生们的兴趣。实验室由于器材和场地的限制,只有把学生分成小组,而这样就很难保证每个学生都有操作的机会。而在装有Edison仿真实验软件的多媒体教室,每个学生都可以用自己的计算机进行自主的实验探究,充分调动了学生的积极性。课前调查表明,学生们自小学四年级就开始上信息技术课,并且大多数家里都有电脑。通过计算机能力测试确保参加教学研究的学生都熟悉计算机的基本操作,为本节课的学习打下了良好的基础。

3.教学目标

根据教学内容和教学对象分析,确定以下教学目标:

(1)知识与技能目标:通过实验探究电流、电压、电阻的关系,理解欧姆定律的物理意义;学会同时使用电流电压表测量导体两端的电压和其中的电流,并通过数据分析归纳其中的物理规律。

(2)过程与方法目标:引导学生有依据地进行合理的猜想,学习用不同的方法研究物理问题。

(3)情感态度和价值观目标:培养学生大胆猜想,小心求证,形成严谨的科学精神。

4.教学资源和教学准备工作

计算机能力测试:采取“任务驱动法”(在规定的时间内,要求学生录入、编辑同一文档,最后存放在指定位置),以确定学生计算机实际操作能力不影响使用Edison仿真实验软件。

Edison仿真实验软件预备课:通过上预备课,一方面让同学们熟悉Edison的基本操作,另一方面确保多媒体教室所有安装Edison的计算机运行正常。

教学效果的评估:我们从学业成绩、学习效率、学习的趣味性、信息技术应用能力四个方面设计调查问卷,以评估教学的效果。

5.学习活动设计

(1) 连接电路:首先,从左窗口元器件库中拖动一个稳压直流电源放在工作台适当位置,然后依次拖入开关、电流表和定值电阻并合理摆放。接下来的连线也非常容易,只要将鼠标指针移到接线柱上单击左键再移动到另一接线柱单击即可,连接好的电路如图1。在元器件拖入工作台后,我们可以看到右窗口会同时出现对应的电路图符号,连线结束时对应的电路图如图 2。

(2)电阻不变时,测电流与电压的关系:双击电阻图形,在参数项目中将其阻值修改为10欧。调节电源旋钮使电阻两端电压分别为U=2V、4V、6V、8V时,打开开关,电流表立即显示数值,记录实验数据。实验完毕,断开开关,保留电路。分析表中实验数据发现:在电阻一定的条件下,导体中的电流跟导体两端的电压成正比。

(3)电压不变时,测电流与电阻的关系:电源电压保持不变(U=4V),双击电阻图形,将其阻值分别改为5欧、10欧、20欧、40欧,记录电流表对应的数值。分析实验数据发现:在电压不变的条件下,导体中的电流跟导体的电阻成反比。

6.教学效果的评估

问卷调查的实施时间为2008年9月20日。由研究者直接到班级发放问卷,当场收集问卷的方式进行。问卷调查共发放问卷40份,收回问卷40份,回收率为100%,统计结果如表1所示。

根据表1,学生对基于Edison实验的学习普遍反映比较好,92.5%的学生认为达到了教学目标;50%的学生认为学习的效率得到提高,这主要因为在实验室的条件限制,学生3-4人组成的实验小组可以分工合作,而基于Edison实验每个人需要做所有的工作;90%的学生认为基于Edison实验的实验趣味性强,学生们在完成教学任务后会发挥想象力设计一些电路,而不用担心器材限制;65%的学生认为自己的信息技术应用能力得到提高,通过座谈也发现,被同学们誉为“计算机高手”的学生认为,操作Edison对他们来说没有多大的挑战性,比玩游戏简单多了。

四、存在的问题和展望

从上面的实例我们可以看出Edison电子仿真实验软件使用十分方便,又很有趣味性,教学效果明显,为教师提供了一条实验教学的便捷之路,为学生提供了一个广阔的学习空间,有利于学生在实验中自主学习和探究。但在使用过程中还是存在一些问题。

第一,仿真实验并不能完全代替实物实验,接线等技能只有通过真实的操作训练学生才能真正掌握。一味追求仿真,那只能是走向一个新的误区。

第二,不是所有实验都能使用Edison仿真软件,如电流表、电压表等。原因是Edison中的仪表都是数字式的,能直接显示读数,而目前教材中所使用的仪表还是传统的,需要通过刻度来读数。

第三,Edison仿真软件中的元器件即使损坏了也可以用“修复”命令立即修复,这一优点在某种程度上也是一种缺点。很多学生因此在仿真实验中忘记了实验的操作规范,并把这种坏习惯带到实物实验中,不利于培养学生的动手实验能力的提高。故而不论是在仿真实验还是在实物实验时,教师都应时刻强调实验操作的规范性。

随着Edison仿真实验软件和类似软件的应用,实验仪器的数字化、虚拟化的发展趋势越来越明显。运用虚拟仪器技术,以计算机为基础,构建集成化测试平台,不但可以满足中学实验教学的需要,大大提高设备利用率,而且降低了实验室建设的成本。

参考文献:

[1]丁美荣,柴少明.基于虚拟实验与真实实验整合的计算机网络实验教学改革[J]. 现代教育技术,2007,(7):100.

[2]刘立新,胡刚.Edison仿真分析在电学实验中的应用[J].中国教育技术装备,2004,(5):9.

[3]王惟信,莫志衡.Edison立体声光实验室 [M].北京:人民邮电出版社,2002,12.

软件仿真实验 第4篇

1 计算机组成原理实验课的现状

目前, 我们学院计算机组成原理课程的教学都是理论课+验证性实验完成, 目前普遍存在“重理论轻实践、重书本轻动手、重课堂轻课外“的三重三轻现象。课堂上学习基本概念和理论知识, 实验主要是为了加深对基本概念和理论知识的理解及培养动手能力。我们学院计算机组成原理实验课是采用“计算机组成原理实验箱 (Tec-5) +1台电脑作为仿真平台”共同完成实验的方式。众所周知, 这种组合的实验方式的硬件部分都在实验箱上。我们学院在2008年, 购置了TEC-5实验箱。TEC-5是清华大学专门为《计算机组成原理和数字逻辑》课程的实验而开发的。TEC-5实验箱, 采用单板式结构、计算机模型采用8位, 简单, 实用。计算机模型分为数据通路、控制器、时序电路、控制台、数字逻辑实验区五部分。指令系统采用4位操作码, 可运行16条指令, 数据通路采用双端口存储器, 运算器中ALU由2片74181实现, 4个8位通用寄存器由1片isp LSI1016组成;控制器采用微程序控制器和硬连线控制器;实验台上面提供了一片系统编程器件isp LSI1032, 可用于数字逻辑和数字系统的设计;控制台有8个数据开关, 可置数, 16个双位开关, 置电平信号;数字逻辑部分还有16个电平开关, 2个脉冲按钮, 12个指示灯, 11个双列直插插座, 5个8432编码驱动的数码管, 1个直接驱动的数码管, 1个喇叭。该实验设备是采用插, 拔导线连接来进行验证性的实验的, 在这两年的维修和辅导过程中, 我发现了以下的几点不足:

1.1 实验设备的可维护性不好

TEC-5实验箱是采用的单线路板的模式。我们学校地处广东地区, 众所周知, 广东地区每年都有回南天, 天气潮湿, 实验箱的线路板经常接触不良。在以往的实验中, 学生的耐心往往是不够的, 通常按照实验指导书的步骤把导线查一遍, 一查没有结果的话, 就没有再继续做下去的想法。就是做在实验箱前面玩手机, 或是打开电脑玩点小游戏。再一个, 学生在做实验的时候, 因为接触硬件的机会少, 在插拔导线和芯片的时候, 常常是没有耐心地任意插拔, 这样久而久之, 有线插槽接触也就没有那么好。经常会有导线头和芯片的引脚断在插槽孔中间。实验箱上面的电平开关只有16个, 学生在做每一个验证性实验时, 用到的电平开关都不止16个, 这样就会给管理实验箱的工作人员增加难度。

1.2 兴趣不够浓厚

学生往往都有一个特点, 是重软件轻硬件。举例来说, 计算机专业大一的学生, 一开始上课就有编程语言在学习, 并且如果是第一节课的话, 就把最最基本的hello word!这个程序可以灵活的变通来写了, 然而学习硬件课程要先学习数字电路, 数字逻辑, 才到计算机组成原理, 再到计算机系统结构, 硬件学习的时候比较枯燥, 学生只能凭想象来学习, 不像软件一学就能写出一个有结果的成品来。一般都是硬件的课程学习了一部分, 才能有一个实验可以做。那么中间就有一段时间让学生忘记知识点, 再加上往往学生在课堂上就掌握的不太好, 那么一到实验室, 拿着实验教材, 看着实验箱, 就不知怎么动手, 这样就根本不能提高学生的动手能力, 更别说是创新能力。长此以往的话, 学生们就失去了做实验的兴趣, 就只是单纯地插拔导线。如果使用一个仿真软件, 教师在课堂上可以通过多媒体教学设备先模拟一下, 让学生看到实验效果, 那么实验的效果会好一些。

1.3 计算机组成原理的课程设计的题目单一化

学生在做课程设计时, 基本上都是在做硬连线控制的设计与调试, 这个在实验指导书上面有一些指导资料。我们可以用TEC-5实验箱做的综合实验有使用硬连线控制器的CPU设计, 多功能ALU设计, 含有阵列乖法器的ALU设计, SRAM故障诊断设计。充分调动学生学习的积极性, 这样才会更快熟悉实验箱的使用。

2 通过仿真软件激发学生积极性

通过近几年辅导数字逻辑和计算机组成原理的实验, 觉得这种首先由老师先把实验的题目发到学生手上, 要求学生做好实验预习;然后到了实验室学生就按自己预习的内容来做实验;然后由老师来讲解本次实验的重要知识点和要解决问题的方法;然后学生就按照老师说的步骤和要求来完成实验。不错, 每一次实验课结束时, 大部分的学生都能做出一部分的实验结果给老师检查, 交上来的实验报告的数据记录也很完整。但就这种过程的实验课下来, 大部分的学生根本就没有理解实验的知识, 就更加不可能有创新的成品出来。因些, 在实验室里面, 有学生按照老师的步骤一步步地把结果演示出来就觉得成功了。为此我们需要为每个实验设置一些要求学生动脑筋的思考点, 激发学生对实验的思考, 从而让学生真正掌握试验中所包含的知识。

近些年来学生对计算机核心软硬件知识掌握较少, 因而对基础层面上的软硬件关系认识不清, 影响学生创造性地进行基础软件和系统软件开发, 学生不能够设计制作计算机的核心部件。借助于FPGA/CPLD器件的可编程特点, 运用EDA软件Quartus系统地介绍了计算机从无到有的设计方法, 由浅入深地了一个完整计算机的设计过程。

按下来介绍以一个3位格雷码计数器的设计为例, 以QuartusⅡ6.0软件来仿真看出波形, 以VHDL语言来实现格雷码计数器的功能。

具体来介绍, 先是要新建一个工程文件, 像其它的编程语言一样, 一个工程中的所有文件都要存放在一个文件夹中。创建一个工程文件的步骤为:1.建立工程名, 首先选择器件所属的系列, 然后选择具体器件, 不要直接输入器件名和封装类型。以格雷码计数器为例, 如图1, 首先在Family框中选择cyclone, 选中后在Available devices框中显示出cyclone系列中可用的器件, 选择Ep1C6Q240C6.

2) 选择EDA工具, Design Architect (综合) , Model Sim (仿真) , Prime Time (时序分析) 。

建立源文件, 执行file-new, 找到VHDL File, 打开VHDL类型的文体编辑器输入以代码

在这几行源代码中, 有一个复位输入rs和一个时钟输入clk和3位输出count_out。当rs为0时, 计数器复位为零;当clk上升沿到来时, 计数器加1。

接下来是编译源文件, 编译成功。经过编译后的程序只能说语法上和层次结构连接上没有错误, 但源程序是否符合设计的功能、满足设计的要求还是不知道的。因此需要仿真。仿真测试可以检查出设计中功能和时序上的错误, 减少下载到FPGA/CPLD器件后的调试困难。分配芯片的引脚给rs, clk, count_out。仿真的结果如图2。从图2可以得知有一个rs为0时, 计数器清零, 当clk有上升沿时, 计数器加1。

3 结论

计算机组成原理的实验课是训练计算机专业的学生全面掌握计算机知识的实践课程。通过这一课程的学习与训练, 能够将所学的计算机理论和方法, 通过实际的计算机设计整合在一起, 从而更加全面透彻地掌握计算机的系统知识, 培养计算机设计制作的技能。通过计算机组成原理的实验的训练, 对任何复杂的计算机结构的理解和认识都不会再有不可逾越的障碍。

参考文献

[1]唐朔飞.计算机组成原理[M].北京:高等教育出版社, 2012.

[2]蒋本珊.计算机组成原理[M].北京:清华大学出版社, 2011.

[3]白中英.计算机硬件基础课实验教程[M].北京:清华大学出版社, 2005.

专业仿真软件自主学习报告 第5篇

专 业 仿 真 软 件 自主学习报告

建议先下载

专业

电气工程及其自动化

你老大 自不动不化 保密老师会找我的 大爱的李爱琴

2015年6月18日(日期假的)学生姓名 班学级 号

指导教师 完成日期

目录

1.概述...........................................................!1

1.1仿真软件的认识..............................................1 1.2专业仿真软件的分类..........................................1 1.3用途........................................................1 2.Keil软件.......................................................2

2.1 Keil软件简介...............................................2 2.2 Keil界面...................................................2 2.3 Keil在中国的应用情况.......................................3 2.4优点........................................................3 2.5keil操作....................................................3 3.Proteus软件....................................................8 3.1 proteus软件简介............................................8

3.2功能模块....................................................8 3.3应用领域....................................................8 3.4功能特点....................................................9 3.5proteus操作.................................................9 4.LabVIEW软件..................................................13

4.1LabVIEW简介...............................................13 4.2LabVIEW功能...............................................13 4.3Labview应用领域...........................................13 4.4 特点.....................................................14 4.5LabVIEW操作...............................................15 5.emu8086软件.................................................21

5.1emu8086 简介..............................................21 5.2功能......................................................21 5.3使用方法..................................................21 5.4emu8086操作...............................................22 6.MCS-51单片机仿真.............................................25

6.1仿真课题名称..............................................25

6.2仿真课题要求:............................................25 6.3硬件电路设计..............................................25 6.4软件设计..................................................29 6.5仿真数据及现象............................................33

7.8086仿真......................................................35

7.1 仿真课题名称.............................................35 7.2 仿真要求.................................................35 7.3硬件电路设计..............................................35 7.4软件程序设计..............................................39 7.5仿真数据及现象............................................50 8.LabView仿真..................................................52

8.1仿真课题..................................................52 8.2仿真要求..................................................53 8.3仿真设计..................................................53 9.结束语.........................................................57

9.1课程意义..................................................57

9.2感悟与体会................................................57 9.3建议......................................................58 9.4致谢......................................................58

1.概述

1.1仿真软件的认识

目前我们已经学习了关于PLC有关的博图、GX Simulator仿真软件;与自动控制、数字信号有关的Matlab;与电路、单片机有关的AutiumDesigner,Multisim、Proteus,Keil等仿真软件。具有灵活性高,易操作,能够弥补仿真硬件的不足,成本相较于硬件又很低的特点,对我们学习工作生活的帮助很大。

1.2专业仿真软件的分类

仿真软件分为仿真语言、仿真程序包和仿真软件系统三类。其中仿真语言是应用最广泛的仿真软件。仿真程序包是针对仿真的专门。应用领域建立起来的程序系统。软件设计人员将常用的程序段设计成通用的子程序模块,并设计一个主程序模块,用于调用子程序模块。仿真研究人员使用这种程序包可免去繁重的程序编制工作。仿真软件系统以数据库为核心将仿真软件的所有功能有机地统一在一起,构成一个完善的系统。它由建模软件、仿真运行软件(语言)、输出结果分析报告软件和数据库管理组成。的具体操作应用。

1.3用途

仿真软件(simulation software),专门用于仿真的计算机软件。它与仿真硬件同为仿真的技术工具。仿真软件是从50年代中期开始发展起来的。它的发展与仿真应用、算法、计算机和建模等技术的发展相辅相成。1984年出现了第一个以数据库为核心的仿真软件系统,此后又出现采用人工智能技术(专家系统)的仿真软件系统。这个发展趋势将使仿真软件具有更强、更灵活的功能、能面向更广泛的用户。

目前比较风行的是虚拟现实仿真软件,比如虚拟现实仿真平台(VR-Platform)。其目标是不断改善面向问题、面向用户的模块描述能力和对模型实验的功能。不同技术水平的用户通过仿真软件能在不同的程度上采用他们表达问题的习惯语言,方便地与计算机对话,完成建模或仿真实验。

2.Keil软件

2.1 Keil软件简介

Keil软件是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2.2Keil界面

2.2.1 Keil μVision2

KeilμVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到μVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。μVision2 IDE可为它们提供单一而灵活的开发环境。

2.2.2Keil μVision3

2006年1月30日ARM推出全新的针对各种嵌入式处理器的软件开发工具,集成KeilμVision3的RealView MDK开发环境。RealView MDK开发工具KeilμVision3源自Keil公司。RealView MDK集成了业内领先的技术,包括KeilμVision3集成开发环境与RealView编译器。支持ARM7、ARM9和最新的Cortex-M3核处理器,自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。

2.2.3Keil μVision4

2009年2月发布KeilμVision4,KeilμVision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。

2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的KeilμVision4,其编译器、调试工具实现与ARM器件的最完美匹配。Keil μVision5

2013年10月,Keil正式发布了KeilμVision5 IDE。

2.3Keil在中国的应用情况

Keil官网虽然没有发布中文版本,但是Keil系列软件却被中国80%以上的软硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。国内由米尔科技、亿道电子、英倍特提供Keil的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商。

2.4优点

1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。

2.5keil操作

1.新建工程

2.选择工程位置

3.选择用到的CPU

4.新建文件

5.保存文件,注意后缀名

6.把文件添加到工程

7.编写程序

6.选中产生HEX文件

3.Proteus软件

3.1 proteus软件简介

Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。

Proteus是英国著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。

3.2功能模块

1.智能原理图设计 2.完善的电路仿真功能 3.实用的PCB设计平台 3.3应用领域

3.3.1教学

Proteus是一个巨大的教学资源,可以用于: 1.模拟电路与数字电路的教学与实验; 2.单片机与嵌入系统软件的教学与实验; 3.微控制器系统的综合实验; 4.创新实验与毕业设计; 5.项目设计与产品开发 3.3.2技能考评

Proteus能提供考试所需所有资源;

1.Proteus能直观评估硬件电路的设计正确性; 2.Proteus能直观的对硬件原理图进行调试软件; 3.Proteus能验证整个设计的功能; 4.测试可控、易评估、易实施; 3.3.3产品开发

Proteus Design Suite集成了原理图捕获、SPICE电路仿真和PCB设计,形成一个完整的电子设计系统。对于通用微处理器,还可以运行实际固件程序进行仿真。与传统的嵌入式设计过程相比,这个软件包能极大地缩短开发时间。

1.从产品概念到设计完成的完整仿真与开发平台;2.预研设计与项目评估,减少开发风险;3.ODM的虚拟样机;·强大的分析与调试功能克服新手的经验不足;4.软硬件的交互仿真与测试大大减少后期测试工作量;5.便利项目管理与团队开发。

3.4功能特点

Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

革命性的特点: 1.互动的电路仿真

用户甚至可以实时采用诸如RAM,ROM,键盘,马达4,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。

2.仿真处理器及其外围电路

可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。

3.5proteus操作

1.新建项目

2.路径选择、项目名确立

10

3.选择图纸大小

11

12

4.LabVIEW软件

4.1LabVIEW简介

LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。4.2LabVIEW功能

与 C 和BASIC 一样,LabVIEW[1] 也是通用的编程系统,有一个完成任何编程任务的庞大函数库。LabVIEW[2] 的函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储,等等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。

Laboratory Virtual Instrument Engineering Workbench)是一种用图标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指令的先后顺序决定程序执行顺序,而LabVIEW则采用数据流编程方式。,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。VI指虚拟仪器,是LabVIEW的程序模块。

LabVIEW提供很多外观与传统仪器(如示波器、万用表)类似的控件,可用来方便地创建用户界面。用户界面在LabVIEW中被称为前面板。使用图标和连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称G代码。LabVIEW的图形化源代码在某种程度上类似于流程图,因此又被称作程序框图代码。

4.3Labview应用领域

4.3.1测试测量:

LABVIEW 最初就是为测试测量而设计的,因而测试测量也就是现在LABVIEW最广泛的应用领域。经过多年的发展,LABVIEW在测试测量领域获得了广泛的承认。至今,大多数主流的测试仪器、数据采集设备都拥有专门的LabVIEW驱动程序,使用LabVIEW可以非常便捷的控制这些硬件设备。同时,用户也可以十分方便地找到各种适用于测试测量领域的LabVIEW工具包。这些工具包几乎覆盖了用户所需的所有功能,用户在这些工具包的基础上再开发程序就容易多了。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。

4.3.2控制:

控制与测试是两个相关度非常高的领域,从测试领域起家的LabVIEW自然

13

而然地首先拓展至控制领域。LabVIEW拥有专门用于控制领域的模块----LabVIEWDSC。除此之外,工业控制领域常用的设备、数据线等通常也都带有相应的LabVIEW驱动程序。使用LabVIEW可以非常方便的编制各种控制程序。

4.3.3仿真:

LabVIEW包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。在设计机电设备之前,可以先在计算机上用LabVIEW搭建仿真原型,验证设计的合理性,找到潜在的问题。在高等教育领域,有时如果使用LabVIEW进行软件模拟,就可以达到同样的效果,使学生不致失去实践的机会。

4.3.4儿童教育:

由于图形外观漂亮且容易吸引儿童的注意力,同时图形比文本更容易被儿童接受和理解,所以LabVIEW非常受少年儿童的欢迎。对于没有任何计算机知识的儿童而言,可以把LabVIEW理解成是一种特殊的“积木”:把不同的原件搭在一起,就可以实现自己所需的功能。著名的可编程玩具“乐高积木”使用的就是LabVIEW编程语言。儿童经过短暂的指导就可以利用乐高积木提供的积木搭建成各种车辆模型、机器人等,再使用LabVIEW编写控制其运动和行为的程序。除了应用于玩具,LabVIEW还有专门用于中小学生教学使用的版本。

4.3.5快速开发:

根据笔者参与的一些项目统计,完成一个功能类似的大型应用软件,熟练的LabVIEW程序员所需的开发时间,大概只是熟练的C程序员所需时间的1/5左右。所以,如果项目开发时间紧张,应该优先考虑使用LabVIEW,以缩短开发时间。

4.3.6跨平台:

如果同一个程序需要运行于多个硬件设备之上,也可以优先考虑使用LabVIEW。LabVIEW具有良好的平台一致性。LabVIEW的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW还支持各种实时操作系统和嵌入式设备,比如常见的PDA、FPGA以及运行VxWorks和PharLap系统的RT设备。4.4特点

尽可能采用了通用的硬件,各种仪器的差异主要是软件。可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。用户可以根据自己的需要定义和制造各种仪器。未来虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE488 或 GPIB协议。未来的仪器也应当是网络化的。

14

LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足 GPIB、VXI、RS-232和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。

图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW[2] 是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。

利用LabVIEW[2],可产生独立运行的可执行文件,它是一个真正的32位/64位编译器。像许多重要的软件一样,LabVIEW[2] 提供了Windows、UNIX、Linux、Macintosh的多种版本。

它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要是上层的系统,国内现在已经开发出图形化的单片机编程系统(支持32位的嵌入式系统,并且可以扩展的),不断完善中(大家可以搜索 CPUVIEW 会有更详细信息)。

4.5LabVIEW操作

15

16

1.新建项目

2.编辑前面板

17

18

3.编辑后面板

19

4.仿真

20

5.emu8086软件

5.1emu8086 简介

EMU8086是学习汇编必不可少的工具,它结合了一个先进的原始编辑器、组译器、反组译器、具除错功能的软件模拟工具(虚拟PC),还有一个循序渐进的指导工具。该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程

5.2功能

该软件包含了学习汇编语言的全部内容。Emu8086集源代码编辑器,汇编/反汇编工具以及可以运行debug的模拟器(虚拟机器)于一身,此外,还有循序渐进的教程。这套软件对于刚开始学习汇编语言的朋友非常有帮助.它能够编译源代码,并在模拟器上一步一步的执行。可视化界面令操作易如反掌.可以在执行程序的同时可观察寄存器,标志位和内存.算术和逻辑运算单元(ALU)显示中央处理器内部的工作情况.

这个模拟器是在一台“虚拟”的电脑上运行程序的,它拥有自己独立的“硬件”,这样你程序就同诸如硬盘与内存这样的实际硬件完全隔离开,动态调试(DEBUG)时非常方便.8086的机器代码同INTEL下一代微处理器完全兼容,包括Pentium II 和 Pentium 4,我相信 Pentium 5 同样也会支持 8086指令.这意味着8086代码具有很广泛的应用范围,它在老式的和最新的计算机系统上都能工作.

8086指令的另外一个优点是它的指令集非常小,这样学起来会容易得多.Emu8086 同主流汇编程序相比,语法简单得多,但是它能生成在任何能兼容8086机器语言的代码。注意:如果你不使用Emu8086编译程序,那你无法在运行的时候单步跟踪

5.3使用方法

5.3.1如何运行 1.在开始菜单选在它的图标,或者直接运行Emu8086.EXE

21

2.在“FILE”菜单中选择“SAMPLE” 3.点击“Compile and Emulate”按纽(或者按快捷键F5)

4.点击“Single Step”按纽(或者按快捷键F8),可以查看代码如何运行

5.4emu8086操作

1.新建项目

22

2.编译程序

23

3.调试

24

6.MCS-51单片机仿真

6.1仿真课题名称

八路抢答器

6.2仿真课题要求:

(1)用1位7段LED数码管显示选手组别;

(2)用8个LED显示抢答状态,常亮为正常答题,闪烁为犯规;(3)要求有蜂鸣器提示按键操作;

(4)要配置2个按键给裁判用,一个是开始键一个是清除键。

6.3硬件电路设计

25

6.3.1硬件搭建总图

下载后可调整图片

6.3.2各部分字电路介绍 1.单片机最小系统

2.显示抢答状态

26

27

抢答按键

4.数码管显示电路

28

3.5.裁判开始和清除按键以及声响部分

6.4软件设计

程序故意加了错误,下载文档后可见#include 3

#inclu33de #define uchar unsigned char #define uint unsigned int uchar code TAB[]= //共阳数码管的段码

{

0xc0, //“0”

0xf9, //“1”

0xa4, //“2”

0xb0, //“3”

0x99, //“4”

0x92, //“5”

0x82, //“6”

0xf8, //“7”

0x80, //“8”

0x90, //“9”

};uchari,aa,num,memary,xx;sbit START=P3^0;sbit sounder=P3^7;bit int1_flag;int play;

/***********延时程序段**********/ void Delay(uint z)

29

{ uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);

} /*******************************/ /*******INT0中断服务程序********/ void reset0()interrupt 0 //高级中断 { EX1=1;P1=0xff;P0=0xff;P2=0xff;sounder=0;int1_flag=0;} /*******************************/ /*******INT1中断服务程序********/ voidqiangda()interrupt 2 { EX1=0;int1_flag=1;//中断标准位

play=KEYscan();} /*******************************/ /*********按键扫描程序**********/ KEYscan(void){

{错误段

xx=P1;switch(xx){

case 0xfe:num=1;break;

case 0xfd:num=2;break;

case 0xfb:num=3;break;

case 0xf7:num=4;break;

case 0xef:num=5;break;

case 0xdf:num=6;break;

case 0xbf:num=7;break;

case 0x7f:num=8;break;

30

default:break;} } returnnum;} /*******************************/ /********LED灯显示程序*********/ Display2(){ //int play1;while(1){

switch(play)

{

case 1:P2=0xfe;break;

case 2:错误段 P2=0xfd;break;

case 3:P2=0xfb;break;

case 4:P2=0xf7;break;

case 5:P2=0xef;break;

case 6:P2=0xdf;break;

case 7:P2=0xbf;break;

case 8:P2=0x7f;break;

default: break;

} break;} } /*******************************/ /********数码管显示程序*********/ Display(){ //int play;while(1){

switch(play)

{

case 1:P0=TAB[1];break;

case 2:P0=TAB[2];break;

case 3:P0=TAB[3];break;

case 4:P0=TAB[4];break;

31

case 5:P0=TAB[5];break;错误段

case 6:P0=TAB[6];break;case 7:P0=TAB[7];break;

case 8:P0=错误段 TAB[8];break;

default: break;

}

break;} } /*******************************/ /***********起始LED*************/

/*******************************/ /************主程序*************/ void main(){

P1=0xff;//初始化

P0=0xff;//初始化

P2=0xff;//初始化 sounder=0;

int1_flag=0;

EA=1;//开总中断开关

EX1=1;//开INT1外部中断

IT1=1;//INT1边沿触发方式

IT0=1;//

EX0=1;// aa=0xfe;

while(1)

{

if(int1_flag==0)

{

P0=aa;

Delay(500);

aa=_crol_(aa,1);

} /////////////////////////////////////

if(int1_flag==1)

{

if(START==0)

32

{

sounder=1;

Display();

Display2();

}

/////////////////////////////////////

if(START==1)

{

sounder=1;

Display();

Display2();

Delay(200);

P2=0xff;

Delay(200);

}

}

}

} 6.5仿真数据及现象

1.仿真起始状态,数码管不断的依次点亮每个显示位

33

2有人抢答,数码管显示抢答选手序号并且LED灯闪烁、音响设备启动

3.主持人按下启动按钮后,2号选手抢答

34

7.8086仿真

7.1 仿真课题名称

基于8086的Protus仿真电子计算器 7.2 仿真要求 实现电子计算器的相关功能,如加减乘除等

7.3硬件电路设计

35

7.3.1硬件搭建总图下载后可调整图片

下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片 下载后可调整图片

36

7.3.2子电路介绍(1)88086芯片部分

(2)数据锁存器部分

37

(3)与按键部分

(4)显示部分

(5)译码电路

38

7.4软件程序设计

程序故意加了错误,下载文档后可见

网上有很多类似程序都是错的!!

DATA SEGMENT

X

DB

?,?,?,?

;存放数据的每一位 X1 DW

?

;存放第一个数据值 X2 DW

?

;存放第二个数据值

Y

DW

?

;存放运算结果

S

DB

?

;存放运算符号值

E

DB

?

;按下等号键标记 CC DB ?

;存放运算数据位数

H

DB

0

;存放按键行号

L

DB

0

;存放按键列号 DISCODE DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

;段码表 DATA ENDS CODE SEGMENT

39

ASSUME

CS:CODE,DS:DATA

START: MOV

AX,DATA

MOV

DS,AX

MOV

AL,90H

;设置为A口输入,B口输出,C口输出

OUT

46H,AL

MOV

DI,OFFSET X+3

;DI指向X的高位

KKK: CALL

KEY

;扫描按键

JMP

KKK;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号 KEY PROC

CHECK: CALL

DISP

;等待按键按下的同时进行显示

MOV

AL,0F0H

;所有行输出低电平

OUT

44H,AL

IN

AL,40H

CMP

AL,0FFH

;读列值

JZ

CHECK

;若都为高电平则无键按下,等待

MOV

CX,50

LOOP

$

;延时消抖

IN

AL,DX

;重读列值

CMP

AL,0FFH

JZ

CHECK

;无键按下一直等待

MOV

H,0

;有键按下,先把行列号变量清0

MOV

L,0

MOV

BL,01H

MOV

BH,0FEH

;扫描法读键值:从第一行开始测试,即PC0输出低电平

NEXT: MOV

AL,BH

OUT

44H,AL

NEXTH: IN

AL,40H

;读列值,判断是第几列有键按下

TEST

AL,BL

;从第一列开始判断

JZ

WAIT0

ROL

BL,1

CMP

BL,20H

;当前行状态下没有任何列有键按下,则转为对下一行的测试

JZ

NEXTL

INC

H

;每判断一列,列号加1

JMP

NEXTH

;再对下一列进行判断

NEXTL: MOV

H,0

MOV

BL,01H

ROL

BH,1;对下一行测试,让下一个PC口输出低电平

CMP

BH,0EFH

JZ

EXIT

INC

L

JMP

NEXT

40

错误段

WAIT0: IN

AL,40H

;若有键按下,则等该按键松开后再计算键值

CMP

AL,0FFH

JNZ

WAIT0

MOV

CX,50

LOOP

$

;延时消抖

IN

AL,40H

CMP

AL,0FFH

JNZ

WAIT0

CALL

KEYVALUE

;调计算键值子程序

EXIT: RET KEY ENDP

;以下为计算键值子程序,通过行列号计算键值(键值=行号*5+列号)

;键值存放在DL寄存器中 KEYVALUE PROC

MOV

DL,L

MOV

DH,H

SHL

DL,1

SHL

DL,1

;列号乘4

ADD

DL,DH

CMP

DL,9

;按下的是数字键

JNG

NUM_CALL

CMP

DL,14

JL

CONT_CALL

;按下的是运算键

CMP

DL,14

JZ

OUTP_CALL

;按下的是等于键

CMP

DL,15

JZ

CLR_CALL

;按下的是清除键

NUM_CALL: CALL

NUMBER

;调数字键处理子程序

JMP

EXIT1

CONT_CALL: MOV

S,DL

;存放运算键的键值

MOV

E,0

CALL

COUNT

;调运算键处理子程序,计算第一个加数

JMP

EXIT1

OUTP_CALL: CALL

OUTP

;调等号键处理子程序

JMP

EXIT1

CLR_CALL: CALL

CLEAR

;调清除键处理子程序

EXIT1: RET错误段

KEYVALUE ENDP;以下为清除键处理子程序,按下清除键后,X变量全部清0 CLEAR PROC

41

MOV

X[3],0

MOV

X[2],0

MOV

X[1],0

MOV

X[0],0

CALL

BITP

RET CLEAR ENDP;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量

;并根据运算符号,调用相应的运算子程序 OUTP PROC

PUSH

AX

PUSH

DX

PUSH

BX

INC

E

CALL

COUNT

;调运算键处理子程序,计算第二个运算数据

CMP

S,10

JZ

ADD_CALL

;运算符为加号,则调用加法子程序

CMP

S,11

JZ

SUB_CALL

;运算符为减号,则调用减法子程序

CMP

S,12

JZ

MUL_CALL

;运算符为乘号,则调用乘法子程序

CMP

S,13

CALL

DIVP

;运算符为除号,则调用除法子程序

JMP

STORE1

ADD_CALL: CALL

ADDP

JMP

STORE1

SUB_CALL: CALL

SUBP

JMP

STORE1

MUL_CALL: CALL

MULP

STORE1: MOV

AX,Y

;以下程序将各运算子程序返回的运算结果,按位分解,送入X变量

MOV

DX,0

MOV

BX,1000

DIV

BX

MOV

X[0], AL

MOV

AX,DX

MOV

BL,100

DIV

BL

MOV

X[1],AL

MOV

AL,AH

MOV

AH,0

MOV

BL,10

42

DIV

BL

MOV

X[2],AL

MOV

X[3],AH

POP

BX

POP

DX

POP

AX

RET OUTP ENDP;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量

;或者将第二个运算数据的数值计算出来并存入X2变量;将运算符的值存入S变量 COUNT PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

CALL

BITP

;测试X中的数据是多少位

CMP

CC,4

;输入的数据是4位数?

JZ

C4

CMP

CC,3

;输入的数据是3位数?

JZ

C3

CMP

CC,2

;输入的数据是2位数?

JZ

C2

JMP

C1

;输入的数据是1位数?

C4: MOV

AX,0

MOV

AL,X[0]

MOV

BX,1000

MUL

BX错误段

MOV

DX,AX

C3: MOV

AL,X[1]

MOV

BL,100

MUL

BL

ADD

DX,AX

C2: MOV

AL,X[2]

MOV

BL,10

MUL

BL

ADD

DX,AX

C1: MOV

AL,X[3]

MOV

AH,0

ADD

DX,AX

CMP

E,1

43

JNZ

X1_S

MOV

X2,DX

;按下的是等号,则将第二个运算数据的值存入X2变量

JMP

EXIT3

X1_S: MOV

X1,DX

;按下的是运算符号,则将第一个运算数据的值存X1变量

MOV

X[3],0

;清空X变量

MOV

X[2],0

MOV

X[1],0

MOV

X[0],0

EXIT3: POP

DX

POP

BX

POP

AX

RET COUNT ENDP;以下为数字键处理子程序

;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数 NUMBER PROC

CMP

E,1

JNZ

CONTINUE

MOV

E,0

CALL

CLEAR

CONTINUE: CMP

CC,0

;目前数据为0位,即没有数据,则转到SSS

JZ

SSS;若已有数据,以下程序将X左移8位。;例如:先输入“1”,当再输入2时,;先要将“1”从个位移到十位,然后再将“2”存放到个位

PUSH

AX

PUSH

DX

MOV错误段

AL,X[3]

MOV

AH,X[2]

MOV

DL,X[1]

MOV

DH,X[0]

MOV

CX,8

LL: SHL

AX, 1

RCL

DX,1

LOOP

LL

MOV

X[3],AL

MOV

X[2],AH

MOV

X[1],DL

MOV

X[0],DH

POP

DX

44

POP

AX

SSS: MOV

[DI],DL

;将当前键入的数据存放到X的最低位

INC

CC

;数据位数加1

CMP

CC,4

;判断数据位数

JNG

EXIT2

MOV

CC,0

;如果数据超过4位,重新从最低位开始存放

MOV

X[2],0

MOV

MOV

EXIT2: CALL

RET NUMBER ENDP;加法子程序 ADDP PROC

PUSH

MOV

ADD

MOV

POP

RET ADDP ENDP;减法子程序 SUBP PROC

PUSH

MOV

SUB

MOV

POP

RET SUBP ENDP;乘法子程序 MULP PROC

PUSH

PUSH

MOV

MOV

MUL

MOV

POP

POP

RET MULP ENDP

X[1],0 X[0],0

DISP

AX AX,X1 AX,X2 Y,AX AX AX AX,X1 AX,X2 Y,AX AX AX DX AX,X1 DX,X2 DX Y,AX DX AX

;调显示子程序,显示输入的数据

45

;除法子程序 DIVP PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

MOV

AX,X1

MOV

BX,X2

DIV

BX

MOV

POP

POP

POP

RET DIVP ENDP;求幂子程序

PF

PROC

PUSH

PUSH

PUSH

MOV

MOV

MOV

DEC

LOP: MUL

MOV

LOOP

MOV

POP

POP

POP

RET

PF

ENDP;阶乘子程序

JCP

PROC

PUSH

PUSH

PUSH

MOV

MOV

MOV

DEC

DEC

BEGIN: MUL

Y,AX

DX

BX

AX AX DX CX CX,X2 DX,X1 AX,X1 CX DX DX,X1 LOP Y,AX CX DX AX AX BX CX CX,X1 AX,X1 BX,AX BX CX BX

46

DEC

BX

LOOP

BEGIN

MOV

Y,AX

POP

CX

POP

BX

POP

AX

RET

JCP

ENDP;求余子程序

QYP

PROC

PUSH

AX

PUSH

BX

PUSH

DX

MOV

DX,0

MOV

AX,X1

MOV

BX,X2

DIV

BX

MOV

Y,DX

POP

DX

POP

BX

POP

AX

RET

QYP

ENDP;显示子程序,将X中的数值按位显示出来 DISP PROC

PUSH

BX

PUSH

AX

MOV

BH,0

LEA

SI,DISCODE

CALL

BITP

;测试X位数

CMP

CC,4

JZ

QIAN

CMP

CC,3

JZ

BAI

CMP

CC,2

JZ

SHI

CMP

CC,1

JMP

G

JMP

NONE

QIAN: MOV

AH,11100000B

;从第4位开始显示

MOV

AL,AH

OUT

44H,AL

MOV

BL,X[0]

MOV

AL,[SI+BX]

交通分析仿真软件的研究趋势探讨 第6篇

关键词:研究现状;研究趋势

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)26-6222-02

在计算机技术高度发展的时代,交通分析仿真软件的研究,不仅为交通发展所遇诸多问题的解决提供了可能,也为这些问题的解决节省了大量的相关费。与此同时,交通分析仿真软件的研发,也为交通事业的发展,乃至计算机模拟技术的进步作出了重要的贡献。结合目前交通分析仿真软件的应用实践,根据交通事业发展所面临的问题,探讨交通软件的研究趋势,可谓具有重要的作用。

1 交通分析仿真软件及分析现状分析

1.1 交通分析仿真软件

所谓的交通分析仿真软件就是指利用计算机模拟技术研发的一种能够模拟各种交通情况,在各种条件下为再现交通系统所面临的实际问题,为寻求最佳解决途径提供解决策略的一系列软件和一系列分析应用系统的总和。

根据这样的界定,我们可以知道交通分析仿真软件的研究与应用一定会涉及到以下的问题:首先,交通分析仿真软件的研究与应用与计算机的模拟技术密切相关。这也就是说,交通分析仿真软件的研发,一定与计算机模拟技术的发展呈现出同步的关系。即,交通分析仿真软件研发的需求,一定带动计算机模拟技术的进步,而计算机模拟技术的进步,一定也会使交通分析仿真软件的研发进行快速地更新。其次,交通分析仿真软件的研发与交通事业的发展必然要保持同步。即,交通分析仿真软件的应用是为了解决交通事业发展中所面临的诸多问题,而对交通事业诸多问题的解决又会反过来在一定程度上推动交通分析仿真软件研发的发展。最后,交通分析仿真软件与交通事业发展所遇到的问题一样,都会呈现出系统性的特点。换句话说,交通分析仿真软件研发中的系统性是指这种软件的研发把交通发展中所遇到的全部问题作为自己解决的对象。甚至可以这样说,交通事业发展所遇到的每一个问题都可以在交通分析仿真软件中找到模拟,并通过具体的模拟寻求到最佳的解决方案。

1.2 交通分析仿真软件的研究现状

交通分析仿真软件的研究现状可以从三个方面进行详细地解析。第一个方面是指根据交通分析仿真软件在应用实践中,对其存在的问题进行相应的解析;第二个方面是指根据交通事业的发展,对其所需要的分析仿真软件及其相关问题进行科学的阐释;第三个方面是指根据目前交通分析仿真软件在实践中的应用,结合交通事业的发展,对其相关分析仿真软件的需求趋势进行科学的预测,并通过这种预测干预交通分析仿真软件的研究。结合以上三个方面的具体内容,结合自己的工作实践,对交通分析仿真软件的研究现状进行如下的总结:

首先,对某些现有交通分析仿真软件的应用实践进行科学地评析。如路静同志在自己题为《基于TSIS的城市道路交通流仿真研究》的文章中,根据这款交通分析仿真软件的应用实践,不仅对TSIS软件的使用方法等具体应用知识进行了概述,而且还结合具体的应用对其软件中TSIS输入、输出系统和跟车模型、换道模型进行详细地解析。同时,作者还结合BDSim与TSIS交通分析仿真软件进行比较。详读这篇文章,我们可以知道,这篇文章是通过比较分析某一类交通分析仿真软件为主要目的的文章。它代表某一类交通分析仿真软件的研发过程。

其次,针对某一类交通问题所进行的软件分析。这类软件的研究,可以说是从微观的层面对相关问题进行科学地分析和阐释。这样的研究可以利于某一类软件针对某一类问题进行细化和改进,或对利用某一种特定的软件解决实践问题提出新的解决思路。如山东大学的魏强同志题为《基于Agent的城市道路交通仿真系统实现的研究》的论文。在这篇文章中,作者针对的是城市道路设计与规划的问题。正如其文章摘要部分所述“面向Agent的方法是分割复杂系统的有效途径且更适合分布式环境,Agent比对象更能反映现实,所以采用面向Agent的方法来实现交通仿真系统是适宜的”。

再次,对交通分析仿真软件与实际交通问题的协调发展,提出了自己的论文见解。研读这类论文,对交通分析仿真软件研发的与时俱进的相关问题颇有帮助。如,王寅弘、刘鑫栋在《城市道桥与防洪》上发表的、题为《港区道路仿真设计研究综述》一文。作者先从软件与实际问题必须协同的层面出发,提出了实际问题与软件研发与应用必须协调的论证思路,然后结合港区的实际问题,对港区交通流的预测、仿真模型的研究、交叉路口的设计等核心问题提出了自己的见解。

在此不厌其烦地论述交通分析仿真软件的研究现状是为了探讨其未来的研究趋势。这也就是说,要想预测某一项研究工作的发展,必须首先对其研究现状进行科学而客观的总结。然后再根据其存在的问题判断出其未来的发展方向。因为任何一项研究工作的发展,都是以解决现实问题为前提,交通分析仿真软件的发展趋势也不会例外。

2 交通分析仿真软件的研究趋势

根据交通分析仿真软件的研究现状,我们预测未来交通软件的发展必然呈现出以下的发展趋势:

首先,交通软件的研发具有系统性的特点。这种系统性表现在两个方面,即对原有交通软件的系统性的改进和针对交通事业所面临的问题进行系统性地研发相应的软件。正如上边提到的第一种研究现状一样,在BDSim与TSIS交通分析仿真软件进行比较的过程中,或者说在其具体的研究结果中,一定会使软件的研发者发现彼此存在的问题并针对这个问题对自己的软件进行相应的升级改造。与此同时,针对交通事业发展所面临的问题,不仅有针对城市道路进行的分析仿真软件及其相关问题的研究,如朱双荣的《城市交通流中观仿真研究》,而且还有《港区道路仿真设计研究综述》这样针对某一类交通问题进行的科学阐释。无论是《城市交通流中观仿真研究》还是《港区道路仿真设计研究综述》,它们都是交通这个大系统中一个组成部分,而又使其相关的实践研究呈现出“交通系统”的特征。

其次,交通分析仿真软件的研究具有针对性的特点。这里的针对性有两层含义。第一层含义是指交通分析仿真软件在其具体的运用过程中,针对非常明显。例如,《基于Agent的城市道路交通仿真系统实现的研究》一文就是针对城市交通具体问题的应用研究。第二层含义,针对性是指针对某一类软件的应用所遇到的具体问题进行改革性的分析。如,杨松、李连、曹文静等人的《VANET仿真中交通仿真研究》一文,既对VANET的现状进行了分析,又对其使用中的难点问题进行了阐释。特别是后者,对于软件VANET的更新有着重要的影响。

最后,交通分析仿真软件与交通事业的发展具有协调性。即交通事业发展所遇到的问题是交通分析仿真软件发展的动力,也可以说交通事业所遇到的问题为交通分析仿真软件的发展提供了机遇,而交通仿真的发展又通过对具体的问题的解决,促进了交通事业的发展。这种协调可以认为是在研发与应用中的协调;在交通分析仿真软件的发展还有另外一种协调:国内外交通分析仿真软件的协调。这种协调性可以看作是软件研究中的借鉴与提高层面上的协调。即国内外交通分析仿真软件可以在相互借鉴与提高的过程中,促进彼此之间的协调发展。

总之,交通分析仿真软件研究趋势可以从宏观层面和微观层面进行探讨。前者适合进行宏观层面的概括,后者适合针对某一个具体的软件进行详尽地分析。

参考文献:

[1] 汤瑞.基于TransModeler城市交通仿真平台的设计[D]. 淄博:山东理工大学,2012.

[2] 苗挺.基于VISSIM的交通控制硬件在环仿真系统[D].大连:大连理工大学,2013.

软件仿真实验 第7篇

1用Proteus软件设计电路与仿真实例

以单片机AT89C51为列,用查询方法编写程序使当按下按键时数码管显示相应的数字。按下与P3.0相连的按键时,数码管显示1,按下与P3.1相连的按键时,数码管显示2,以此类推,按下与P3.7相连的按键时,数码管显示8。

系统在Proteus软件中的设计流程都是一样的,主要分为三步:

1.1绘制原理图

启动Proteus后就可进入工作界面,通过在库中寻找所需要元器件添加到原理图编辑窗口,该实验需要添加单片机AT89C51,共阴极数码管7SEG-MPX1-CC,按键BUTTON,排阻RESPACK-8,电源POWER和接地线GROUND在终端模式中找到。

添加完元器件后利用系统自动捕捉的功能生成连线。AT89C51单片机的P0端口的P0.0-P0.7通过排阻分别连接到数码管的a-h的笔段上,数码管的公共端接地。P3端口的P3.0-P3.7端口分别与8个开关相连。连好的电路图如图1所示。在制作实际电路时,需为电路设计晶振电路和复位电路,在Proteus仿真中可以省去。

电路图绘制完毕后需要对其进行电气规则检测,根据系统提供的错误检查报告修改硬件系统原理图。

1.2创建源代码文件

在Proteus中可以非常方便地生成汇编语言源程序代码,利用“SOURE”下拉菜单可以完成新建文件、保存、打开等功能。源文件编辑修改后选择Build→Build Project命令,执行这一命令后,软件将会执行相应的代码生成工具,对源文件进行编译、链接、生成目标代码文件(*.hex)。源代码文件也可以在Kei平台上进行创建,同样最后生成可执行文件。按键显示电路软件源程序如下,其中“3FH”、“06H”等分别为0-8共9个数字的字形码。

1.3系统的调试与仿真

双击单片机将弹出AT89C51元件属性编辑对话框,就可以将生成的可执行文件(*.Hex加载到电路图中单片机中,单击工具栏中仿真运行按钮,系统就会启动仿真。仿真时,可以看到元件引脚上的电平变化情况,红点代表高电平,兰点代表低电平,灰点代表悬空。通过观察元件引脚上的电平或电路中仪器仪表的读数可以检查验证电路是否联通。在调试过程中如出现问题,可利用Debug菜单打开Source code、Registers、Memory Window、SFR Window等,查看程序运行时单片机内各部件的变化情况,从而找到问题的所在,直到调试成功。如果软硬件均无问题,可以看到当按下相应的按键后数码管上显示相应的数字。Proteus还可以和Keil进行联调来对单片机进行仿真调试。

2结论

文章以按键显示实验为例介绍了Proteus软件在电子设计实验中的一个应用,Proteus作为一种低投资的电子设计自动化软件,不受场地和时间的限制,具有很大的灵活性和可扩展性。能帮助电子设计者降低设计成本,提高设计效率,在高校的电子实验教学中得到了广泛的应用。

参考文献

[1]张靖武,周灵彬.单片机系统的Proteus设计与仿真[M].北京:电子工业出版社,2007(04).

[2]郭亚琴,王正群,秦燕.Proteus软件在电子产品设计与制作中的应用[J].实验室研究与探索,2013(12):101-104.

软件仿真实验 第8篇

由于传统的单片机实验、实训大都在实验箱上进行, 费用高且不能充分利用, 往往导致学校不愿多开设实验、实训课, 学生平时很难有机会实践。即便在理论课堂上进行现场演示教学, 效果也不尽如人意。

现在国内外有很多仿真软件, 如PspICE、OrCAD等均支持51系列单片机, 但其共同缺点是对单片机电路的系统设计无法进行仿真。而专门针对单片机仿真的另一类软件, 如MedWin、伟福等, 如果离开仿真器, 仅仅进行纯软件仿真, 效果也不好。Proteus仿真软件则设计了一个符合要求的、纯软件的单片机虚拟实验室系统, 既可调试单片机程序, 也可仿真单片机外围器件的工作情况。

Proteus软件简介

Proteus是英国Labcenter Electronics公司开发的多功能EDA软件, 是目前最先进、最优秀的单片机与嵌入式系统的设计与仿真软件, 具有资源丰富、开发周期短、系统设计与开发难度低、与实际设计接近程度大等优点。除了具有其他EDA工具的原理图布局、PCB自动或手工布线、电路仿真等功能外, Proteus软件的最大特点是基于微控制器的设计连同所有的外围电路一起仿真, 可直接在单片机虚拟系统上对MCU编程, 可对软件源代码进行实时调试, 并支持第三方的软件编译和调试环境, 如WAVE、Keil等软件。同时, 它具有电路互动仿真功能, 通过动态外设模型, 如键盘、LED/LCD等, 可实时显示系统输入、输出结果, 或配合Proteus提供的虚拟仪器, 如示波器、虚拟终端等实现交互仿真。利用Proteus仿真软件对所设计的单片机系统进行仿真, 不但在测试程序执行时可见单片机某些寄存器值的改变, 更能从工程的角度直接看到程序运行和系统工作的过程和结果。当虚拟单片机系统的仿真结果达到系统预期效果后, 可再进行硬件实物开发。Proteus也因其强大仿真功能而备受各大高等院校师生的青睐, 利用Proteus软件构建单片机虚拟实验室已经逐渐成为一种趋势。

单片机虚拟实验室的构建

虚拟实验室也称为合作实验室, 最早在1989年由美国弗吉尼亚大学 (University of Virginia) 的威廉姆·伍尔夫 (William Wulf) 教授提出, 用来描述一个计算机网络化的虚拟实验室环境。虚拟实验就是利用鼠标的点击、拖动, 将微机上各种虚拟仪器, 按实验要求、过程组装成一个完整的实验系统, 同时在这个系统上完成整个实验, 包括元件的添加、实验条件的改变、数据采集以及实验结果的模拟、分析等。

从现在高校的机房配置情况看, 只要拥有一台服务器、一台教师机和三四十台学生机的机房, 在安装了Proteus软件后, 足以构建一间单片机虚拟实验室。基于Proteus的单片机虚拟实验室, 具备以下三个条件, 完全可以满足学生对掌握单片机知识的需求。

第一, 能够提供类似于真实单片机实验室的必要的虚拟硬件设备。一般的单片机硬件电路的设计包含两部分内容:一是系统扩展, 即单片机自身的功能 (单元ROM、RAM、I/0口和定时器/计数器等) 不能满足需要时, 必须在片外进行扩展, 选择适当的芯片, 设计相应的电路;二是系统配置, 即按照系统的要求配置外围设备, 如键盘、显示器、打印机、A/D转换器、D/A转换器等, 要设计合适的接口电路。很多常用的硬件电路的设计都可在Proteus软件中实现, 学生通过Proteus软件的使用, 不仅能实现教材上部分实验, 还可以学习硬件电路设计的方法。

第二, 能够进行应用程序的编写和调试。学生通过使用WAVE、Keil等软件编写、调试应用程序, 既可以掌握单片机各种指令的应用, 也可以学会单片机软件开发的步骤、方法和技巧。

第三, 可以实现虚拟硬件和软件联合调试。利用WAVE、Keil等工具软件与Proteus的联合, 可以方便地实现单片机系统的仿真调试。

应用实例

笔者拟通过一个具体的单片机系统应用实例, 以Keil作为软件调试界面, 以Proteus作为硬件仿真和调试界面, 联合实现对单片机系统的仿真。

实例要求用单片机和D/A转换芯片输出一锯齿波。在Proteus中完成的电路原理图设计如图1所示。利用Keil软件编写程序并编译, 生产.HEX文件。

将Keil软件生产的.HEX文件加载到Proteus原理图的MCU中, 运行并调试程序, 在虚拟示波器中观测到的结果如图2所示, 完全达到设计要求。

单片机虚拟实验室在教学中的比较优势

利用Proteus仿真软件与Keil或WAVE软件联合, 构建单片机虚拟实验室, 对于高校的单片机课程教学而言具有明显的比较优势。这种联合搭建的仿真平台可以完成单片机教学过程中的全部软件实验和绝大多数的硬件系统实验。而且构建单片机虚拟实验室所需硬件投入少, 经济优势明显, 不仅可以弥补实验仪器和元器件缺乏带来的不足, 还不涉及原材料消耗和仪器损坏等因素, 可以帮助学生更快、更好地掌握课堂讲述的内容, 加深对概念、原理的理解, 弥补课堂理论教学的不足。虚拟实验室的一个最大特点是具有开放性, 只要告诉了学生具体的实验内容、实验方法, 学生可以在实验室以外完成, 跨越了传统教学的地域局限, 学生可以自主完成一些单片机系统的设计与开发, 这对进一步培养学生的综合分析能力、排除故障能力和开发创新能力具有重要意义。

将Proteus仿真软件纳入单片机课程教学体系之中, 创建单片机虚拟实验室, 可以将大量教学信息直接地表现出来, 既可以改变这门课程在教学实践中出现的生涩难懂、效果不佳的现象, 实现形象化教学, 激发学生的学习兴趣, 提高学习效率, 又可以充分利用计算机房的现有设备, 减少实验设备的硬件维护工作量, 实验环境又与实际工程系统非常接近, 可拉近单片机学习与就业的距离。但是虚拟实验是不可能代替实物实验的。因此, 应提倡实验内容虚实交替、互为补充的原则, 最终实现虚实并存, 虚拟实验为手段、实物实验为目的的教学效果。

参考文献

[1]安新艳.Proteus仿真技术在单片机教学中的应用[J].常州信息职业技术学院学报, 2008, 7 (1) :28-29.

[2]伍冯洁, 谢陈跃, 谢斌.Proteus与Keil在单片机开放性实验中的应用[J].电子测量技术, 2008, 31 (6) :101-102.

[3]岳东海.基于PROTEUS的虚拟实验室在实践性教学中的应用[J].常州信息职业技术学院学报, 2007, 6 (3) :47-48.

[4]张静, 李海.Proteus在单片机教学中的应用[J].中国西部科技, 2008, 7 (29) :107-108.

[5]田亚娟.单片机原理及应用[M].大连:大连理工大学出版社, 2008.

软件仿真实验 第9篇

《生产运作管理》具有实践性较强、与企业的生产实际联系紧密的特点, 因此对课程的教学内容, 有一定实践经验的人会比较容易理解, 而缺乏社会实践和工作实践的大学生却常常视其为空洞的教条。传统教学中没有考虑到大学生普遍缺乏对企业生产运作过程的感性认识和实践经验, 另外由于教学条件的限制, 使得该课程的学习效果受到一定的影响。显然仅仅通过课堂的理论介绍, 学生很难体会到课程的重要性, 很难达到课程的教学目标。因此, 在这门课程的讲授过程中有必要通过引入WITNESS仿真实验教学来有效地提高学生的学习兴趣和学习效果, 以达到课程的教学目标。

一、基于WITNESS软件的实验教学设计

WITNESS是由总部位于英国奥克斯的Lanner公司开发的仿真软件, 采用面向对象的建模方法, 用于制造业、服务业仿真领域。目前在全球范围内已成功应用于3500多家企业的业务流程的仿真与优化, 如大众汽车、壳牌石油、福特汽车、通用汽车。国内的企业如中海油气电集团技术研发中心、北汽福田康明斯发动机有限公司、烟台通用东岳发动机有限公司、徐工集团徐工科技股份有限公司等也相继引进了WITNESS仿真软件进行企业业务流程的仿真与优化。与同类软件相比, WITNESS仿真软件的用户界面比较友好, 且能够实时显示系统仿真的整个过程, 用户可以清楚地了解到生产过程中可能发生的问题, 能随时地对模型的参数进行调整, 实现对系统的优化。

WITNESS软件为生产系统中各种类型的资源设计了相应的可视化元素, 从而能够逼真地模拟实际的生产系统。利用WITNESS软件将《生产运作管理》课程涉及的各类生产系统制作成相应的WITNESS仿真模型, 在教学过程中演示这些仿真模型可使学生能够非常直观地了解生产系统的运作过程、存在的问题以及应该如何解决出现的问题, 从而激发学生学习的主动性和积极性, 在学习的过程中能够深刻体会到生产运作管理的相关知识和理论。

因此在《生产运作管理》课程的教学过程中利用WITNESS仿真软件进行实验教学, 有利于学生理解实际生产系统的运作规律, 提高学习本课程理论知识的兴趣, 同时可以使学到的理论能够有效地联系实际, 提高学生规划生产系统的能力。目前国内已有上海交通大学工业工程系、北京理工大学管理学院、天津工业大学管理学院等数十所高校购买了WITNESS仿真软件用于相关课程的实验教学。

为了使基于WITNESS仿真软件的实验教学能够获得更好的教学效果, 作者设计并完善了符合大学本科管理类专业培养要求的WITNESS仿真实验项目以及相应的实验教学大纲和实验指导书, 供《生产运作管理》课程教学使用, 具体的实验内容与要求如表1所示。本文提出的这些实验内容稍加调整之后也可以用于其他相关课程的实验教学。

二、WITNESS仿真软件实验教学实例

下面以多品种小批量生产系统仿真实验为例来说明WITNESS仿真软件在生产运作管理中的应用, 该实例已用于本课程的实验教学, 并取得了较好的教学效果。

(一) 实验素材

有一个生产车间有5组机器组, 加工三种不同类型的产品甲、乙、丙。第1、2、3、4、5组机器分别有3、2、4, 3、1台相同的机器, 三种待加工产品到达车间的间隔时间分别服从均值为35、25、45分钟的负指数分布。甲产品首先在第2组机器上加工, 接着在第5组, 然后在第3组机器上加工, 最后在第1组机器上完成最后工序, 加工时间分别服从均值为20、15、25、20分钟的二阶爱尔朗分布。乙产品首先在第4组机器上加工, 接着在第5组, 最后在第2组机器上完成最后工序, 加工时间分别服从均值为48、34、31分钟的二阶爱尔朗分布。丙产品首先在第3组机器上加工, 接着在第1组, 最后在第4组机器上完成最后工序, 加工时间分别服从均值为48、15、36分钟的二阶爱尔朗分布。

如果一项作业在特定时间到达车间, 发现该组机器全都正在进行加工工作, 该作业就在该组机器处进入一个先来先服务 (First Come First Service, FCFS) 规则的缓冲区队列等待加工。

要求建立该多品种小批量生产系统的仿真模型, 进行365个工作日的仿真, 并对实验数据进行分析, 找出当前生产系统的瓶颈环节, 并提出相应的改善方案。

(二) 实验步骤

(1) 建立多品种小批量生产系统仿真模型

首先, 在WITNESS仿真软件的布局窗口定义3个part元素分别表示三种产品、5个machine元素分别表示5组机器组和5个buffers元素分别表示机器组前的缓冲区, 接着利用WITNESS系统元素ROUTE定义三种产品的加工过程, 最后确定模型中各个元素的工作参数以及元素之间的逻辑关系, 从而得到多品种小批量生产系统的仿真模型如图1所示。

(2) 仿真模型的运行及结果分析

运行多品种小批量生产系统仿真模型365个工作日, 使用WITNESS的report工具, 得到关于各组机器的利用率, 如图2所示。

从图2中的仿真结果可看出, 目前生产系统的各个生产环节的生产能力不平衡, 第1组和第3组机器组的空闲率较高, 生产能力过剩, 而第2、4、5组机器组的空闲率较低, 特别是第5组机器组的空闲率小于1%, 生产能力严重不足, 因此应适当调整各机器组中机器的数量使得各机器组的生产能力尽量一致。

(3) 多品种小批量生产系统的改进

通过前面的分析, 为了使该生产系统的各个生产环节的生产能力达到平衡, 将第1、2、3、4、5组机器组的机器数量分别调整为1、2、2、3、2台。运行改进后的仿真模型, 使用WITNESS的report工具, 得到关于各机器组的生产能力利用率如图3所示。

从图3中的统计报表可看出调整了机器数量之后, 生产系统中各机器组的繁忙率均在87%~88%左右, 从而使得多品种小批量生产系统各机器组的生产能力得到了大致的平衡。

三、结束语

作者从2009年开始在《生产运作管理》课程教学中采用了基于WITNESS仿真软件的实验教学方案。实践证明, 在生产运作管理课程的教学过程中运用WITNESS仿真软件开展实验教学可以使学生增加对生产运作课程的兴趣, 对企业生产运作过程的计划、组织与控制机理有进一步的理解, 能够进一步调动学生学习这门课程的积极性, 使学到的理论能够有效地联系实际, 从而提高学生的综合能力, 满足社会对创新型、复合型人才的需求。

参考文献

[1]]陈志祥.本科层次生产管理课程建设与教学改革[J].高等工程教育研究, 2005, (5) .

[2]王亚超, 马汉武.生产物流系统建模与仿真[M].北京:科学出版社, 2006.

[3]王建华, 黄贤凤.WITNESS仿真在工业工程专业实验教学中的应用[J].科技信息, 2010, (18) .

[4]赵启兰, 等.生产与运作管理教程[M].北京:清华大学出版社, 2008.

软件仿真实验 第10篇

随着我国高校招生规模不断扩大, 学生越来越多, 由于经费等原因, 实验教学经费投入往往不够。如何利用有限的设备, 完成更多的实验教学, 并确保实验质量, 成为各个学校面临的重要课题。2005年1月, 在教育部下发的《关于进一步加强高等学校本科生教学工作的若干意见》中明确指出:"要不断改进实践教学内容, 改进实践教学方案, 加强各种形式的实践教学基地和实验室建设"。可见实验教学的重要性。

电工电子课程是工科类专业的专业基础课, 教学质量的优劣直接影响到该专业后续课程的学习。电工电子课程是较为抽象的理论型课程, 在教学中不仅要求学生掌握与专业相关的理论知识, 更重要的是培养学生对电路的分析设计能力、解决问题的能力和创新能力。所以电工电子实验教学在整个教学过程中非常重要, 只有通过实验教学, 才能将理论和实践很好的结合起来。但是, 学生在实验中出现的问题, 暴露了传统实物实验的一些固有缺陷。

(1) 大部分学生素质参差不齐, 不熟悉电路连接, 还没有掌握好技术, 所以连接电路时极易出错, 另外电路连接错误, 易造成电子元器件及测试仪器的损坏。

(2) 实验的元器件离散性大, 环境变化引起的温漂、干扰等因素会造成实验数据的偏差。

(3) 学生不能根据自己的学习进度安排实验时间, 更不能像做家庭作业一样在课余时间进行练习。有限的教学时数与学生技能的提高矛盾突出。

(4) 、传统的电工电子实验是以实物为主的, 设备易磨损老化, 淘汰率较高, 需要设备定期维护与更新;耗费大量的时间、人力和财力[1]。

针对目前学校实验室发展瓶颈问题, 利用计算机科学、仪器技术和网络技术给电工电子实验室注入活力, 建设虚拟电工电子实验室, 作为现有的电工电子实验室的补充, 以此来满足实践教学的要求。不仅可解决实践设备缺乏的问题, 最大限度地做到资源共享, 又可实现理论与实践教学的一体化。

2、仿真软件介绍

EDA技术 (Electronic Design Automation) 技术, 也称为电子设计自动化技术。目前使用的EDA软件种类很多, 主要有:EWB、Protel、SPICE等, 这些软件可以提供简单易用的仿真实验手段。其中Multisim是EWB软件的换代版本, 是目前使用最方便、最直观的仿真软件。它具有软件的仿真测试和分析功能, 元件库种类多, 品种齐全, 可仿真更复杂的数字元件, 有与实际元件相对应的现实性仿真元件模型, 数字万用表、直流电源、功率表、示波器、函数信号发生器、频率计、波特图仪等电工电子仪器齐全, 使得仿真设计结果更精确, 更可靠。该软件非常适合电子类课程的教学和实验。我们以Multisim为例开展实验教学。

3、虚拟电工电子实验室功能架构

虚拟电工电子实验室采用目前最为通用的WEB发布方式, 整个系统使用目前较为成熟的浏览器/服务器 (B/S) 三层结构, 后台数据库采用SQL Server, WEB服务器运行微软的IIS以ASP (Active Server Pages) 作为开发工具, 客户端用IE浏览器。客户端通过浏览器访问Web服务器以及与之相连的后台数据库的技术及体系结构。

虚拟电工电子实验室由用户管理模块、网上交流模块、实验考试模块、实验报告提交模块、以及资源下载、EDA实验六大模块组成, 功能模块如图1所示。用户管理模块, 实现对学生、教师和管理员不同权限的用户管理;EDA实验模块包括教学大纲规定的所有实验, 同时为同学提供自行设计实验的平台;网上交流模块实现教师网上答疑以及和学生交流;实验考试可以测试学生对实验的掌握程度;实验报告提交模块实现实验报告的上传和下载;资源下载模块可以实现相关资料的下载;整个虚拟实验室通过网络构建一个集实验教学、演示、操作、指导、提交管理为一体的数字化实验教育环境。

4、利用Multisim开展的实验教学

4.1、电工与电路分析实验

电工与电路分析实验包括有:RLC基本元件交流特性认识、基尔霍夫定律验证、电路变换、戴维南定律验证、等效电源、串联谐振电路、并联谐振电路、一阶电路的响应、二阶电路的响应、功率因数的提高、二端口网络参数测定、互感电路等等。如果一个电工与电路分析实验室完成全部实验, 设备的成本是很高的。利用虚拟实验室可以开展全部实验仿真。下面是一个串联谐振电路实验电路设计举例, 如图2所示。电路使用5块数字万用表, 万用表1测量电流, 万用表2测量电容电压, 万用表3测量电感电压, 万用表5测量电阻电压, 万用表4显示总电压 (可以不用) 。这个实验可以实现: (1) 电压三角形验证, 即

可以通过改变函数信号发生器输出频率观察UR、UI、UC和I的变化, (2) 绘制幅频响应曲线, 串联谐振时I最大, UL=UC, (3) 改变电阻R值, 重新绘制幅频响应曲线, 比较电阻R值对幅频响应曲线的影响。

4.2 模拟电路实验

模拟电路实验包括有:晶体管认识、二极管和三极管性能测试、单管放大、多级放大、各种负反馈放大、运算放大电路、振荡电路、直流电源等等, 模拟电路实验也是电工电子实验中出现问题最多的。使用虚拟实验室可以开展模拟电路中的各项实验内容, 并进行参数仿真。图3是一个组合运算放大实验电路。

为了进行输入多信号叠加的放大信号观察, 安排了四个输入信号, 可以组合出同相比例运算、反相比例运算、同相加法运算、反相加法运算、差动运算 (减法运算) 、加减法混合运算。设计了两个反馈电阻, 可以比较反馈电阻对放大倍数的影响。四个输入信号的大小、频率、初相和各电阻还可以根据需要自行调整。通过示波器可以观察各种情况下的叠加波形, 也可以通过万用表读出输出电压, 验证运算放大电路的各种组合功能。

4.3 数字逻辑电路实验

数字逻辑电路实验包括有:门电路和组合逻辑电路、触发器和时序逻辑电路、波形发生与整形电路、ADC和DAC电路、PLD设计几大类数十种实验。实验用到的元件主要是集成电路, 连线较多, 初次实验者容易出现连线错误, 并且集成电路元件也不容易备齐。使用虚拟实验室就可以很好地实现各种数字逻辑电路实验。图4是一个用74LS90实现十进制计数、六进制计数和十进制计数以内其它进制计数的实验电路。

该实验电路通过两个开关实现十进制计数和六进制计数转换, 开关J1接地为十进制计数器, J1接QC为六进制计数器。J2接示波器P端口, 可以观察QA、QB、QC、QD四路输出波形 (此时七段数码显示器变化太快, 不好观察) ;J2不接示波器P端口, 可以通过七段数码显示器观察变化。如果要设计为十进制计数以内其它进制计数器, 只需改变与非门U2C接线即可。U3A和U4B两个与非门组成RS触发器, 实现同步归零, 学生做实验时还可以修改电路, 通过修改与非门U4B接线实现直接归零, 并通过示波器比较两种情况下的波形差异。

5、结束语

利用仿真软件进行电工电子虚拟实验为电工电子实践教学提供一种有效的手段, 有效解决了学生理论学习和实验教学的衔接问题, 在不增加硬件投入的情况下有效地缓解了实验室资源的紧张问题, 同时这种学习方式还可以打破了地域和时间的束缚, 调动学生自主学习的积极性, 培养学生的动手实践能力和创新能力。

电工电子网络虚拟实验室是电工电子实验室的有益补充, 能够大大提高学生的实验水平, 提高实验效率, 实验电路在实验过程中还可以自己修改。但是虚拟实验毕竟不能代替真实实验, 学生最终还是要在传统实验室完成实际操作能力的训练, 才能掌握电子技术课程。

参考文献

[1]刘晓燕.电工电子类专业课网上虚拟实验课程设计[D].青岛:中国海洋大学, 2008:6.

[2]屈泳.基于校园网络的虚拟实验室的设计与研究[J].现代教育技术, 2010, (5) :133-134.

[3]潘松, 黄继业.EDA技术实用教程 (第二版) [M].科学出版社, 2005.

软件仿真实验 第11篇

关键词:仿真;建模;原理分析

一、引言

数控加工仿真采用可视化技术,通过仿真和建模软件,模拟实际的加工过程,在计算机屏幕上按照铣、车等加工方法把加工路线描绘出来,使工程师能预先看到制造过程,及时发现生产过程中的不足,达到降低成本、缩短产品开发周期,增强产品竞争力的目的。

本文着重介绍VERICUT的机床文本模块功能,在VERICUT环境下建立数控机床模型的方法及应注意的问题,并结合MAKINO-A55型号卧式加工中心的模型实例展现了VERICUT5.4版本环境下建立数控机床全过程。

二、利用CATIA实体造型后的机床建模结果

三、机床建模的导入过程

①工艺系统分析。②建立机床几何模型。③建立刀具库。④设置CNC系统并建立部件树。⑤添加各部件的几何模型,并准确定位。⑥设置机床参数。⑦保存所有文件。

四、机床3D模型建立方法

在VERICUT中,机床可以分解为Base(基座)、X轴、y轴、z轴、C轴、A轴Fixture(夹具)、Spinde(主轴)、Tool(刀具)、Stock(毛坯)Design(CAD设计原型)等几个部件构成,建立机床可以根据机床的结构逻辑关系,由以上部件进行约束化的堆砌而构成的。

五、建立部件树

先设CONTROL为“FANUC-0T”:选菜单“SETUP→CONTROL→OPEN”,在弹出对话框中设“SHORT CUT”为“CGTECH_LIBRARY”,选“fan0t.ctl”打开后建部件树。选菜单“MODEL→COMPONENT TREE”,弹出部件树对话框,单击“BASE→右键单击→在光标菜单选APPEND→选ZLINEAR”,添加Z轴,单击“ZLINEAR→右键单击→在光标菜单选APPEND→选XLINEAR”,添加X轴。同样方法,添加其他部件,得到部件树。

六、导入机床建模的结果

七、機床控制及机床原始位置的定义

(1)在VERICUT软件中选取Setup/Machine/Setting选项,定义机床的起始位置。

(2)在“Base”上单击右键,选择Append>Tool Chain Model>Creat Model File>Sweep...在弹出的Sweep Profile对话框中设置刀具链。

八、机床建模分析

通过对机床模型文件(.mch机床文件)的分析,基本掌握机床模型的文本结构。它是由UNITS,COLORDEFINATION and MACHINE三大部分组成,其中MACHINE又由Base,X,Y,Spindle,Tool,Z,Fixture,Stock,Design,Tool Chain,Other Base等部分组成。

九、结论

仿真建模的步骤:定义坐标系、定义装配件、添加模型、机床参数设定、机床3D建模、保存机床模型及文本文件,经过最终的模拟运行,建立三轴卧式加工中心。

参考文献:

[1]李军锋.五坐标数控机床的加工仿真[J].CAD/CAM与制造业信息化,2002,(1).

[2]VERICUT,使用手册.

[3]尤春风.CATIA V5机械设计[M].清华大学出版社,2002.

软件仿真实验 第12篇

关键词:单片机,软件仿真,中断

单片机, 又称单片微控制器, 是将计算机系统集成到一个芯片上的电子系统, 应用范围十分广泛。目前, 各高校电子信息和自动化等专业均开设了单片机课程, 注重对学生进行单片机知识的普及和单片机使用技能的培养[1]。

单片机是一门实践性很强的课程, 从某种意义上讲, 学生上机体验丰富与否, 将直接影响教学效果。然而, 受到实验课时和十分必要的[2]。

1 单片机软件仿真在高校教学中的应用

1.1 单片机软件仿真环境

单片机软件仿真是指在没有或尚未连接单片机的情况下, 采用上位PC机软件模拟单片机运行状态的辅助开发手段。本文以天津科技大学PIC单片机授课所使用的microchip公司18F4520单片机为研究对象具体介绍软件仿真在高校单片机教学中的应用。

1.2 定时器中断程序设计的代表性

众所周知, 中断是单片机教学的重点和难点, 这是因为它要涉及程序的暂停、中断的开启、数据的暂存、中断的终止、数据的恢复和主程序的执行等内容, 涉及知识点多, 学生理解起来较为抽象, 所以一般的短时实验教学效果并不理想, 需要学生在课下通过软件仿真来慢慢消化理解。教学中常用的中断有两种:一种是如由诸如实验资源的限制, 仅凭课堂有限的学时是无法大幅度提升学生的单片机应用能力的, 他们不得不在课下缺少单片机资源的条件下进行学习。因此, 使用单片机的软件仿真环境, 也成为了他们的必备技能之一。除了满足脱机环境下的学习需求之外, 软件仿真在控制程序的精确耗时方面有着独特的优势。所以, 注意在单片机实验教学中培养学生应用软件仿真分析问题的能力是按键按下等外部事件引发的中断;另一种则是由定时器所产生的中断。对于前者, 由于有外部行为的发生作为标志, 理解起来相对容易;对于后者, 由于单片机的指令周期很短, 通常都在微秒级别, 人的生理器官无法体察如此短的时间变化, 而中断的一系列过程又恰恰在这期间渐次发生。所以, 如果能让这些微秒级别的程序流程变得直观可测, 无疑将有助于提高教学效果[3]。

软件仿真的应用, 可以使上述要求得到满足, 这也是本文选择定时器中断程序进行软件仿真的原因。

1.3 应用软件仿真进行定时器中断程序的教学

(1) 教学要求。

要求学生完成如下设计:使用外接10MHz时钟的18F4520的TMR0定时器, 每隔100μs发出中断指令并进行往复取反操作, 以产生一个5kHz的方波并驱动蜂鸣器发声。程序较为简单, 其原理见图1。可以看出, 程序的关键在于如何精确发出中断指令。

学生的困惑集中在下面两个方面: (1) 如何发出中断, 中断的流程如何; (2) 如何精确确定定时器的触发时间。这两点, 均可通过软件仿真解决。

(2) 使用软件仿真帮助学生完成设计。

18F4520单片机集成开发环境Mplab自带了Mplab SIM软件仿真器, 可以用设置断点的方法, 跟踪软件的流程和各数据项的数值变化。由于外部时钟的周期为0.1μs, 因此18F4 520的指令周期为0.4μs, 要满足100μs的间隔, TMR0这个8位计时器应该每计时250个指令周期发出一条中断指令。

大多数学生的编程思路如下:首先, 为中断程序进行必要的环境标志位设置;之后, 将TMR0计时器的初始值设为6。这是因为TMR0是8位计数器, 每个指令周期, 即0.4s计数一次, 增加到255后的下一个指令会使TMR0溢出, 产生中断指令。学生认为应给计数器赋初值6, 使其在溢出时计数250并产生100μs延时。这种方法乍看起来没有纰漏, 但却无法得到正确结果。这是因为学生没有明白中断的具体流程, 不清楚除了计数的时间消耗之外, 还有诸如中断跳转语句之类的其他隐性消耗, 如不加以考虑, 是不可能得出理想结果的。

为了帮助学生熟悉程序流程, 提示学生使用软件仿真器跟踪程序的主要步骤并观察T M R0中断计时器的低字节T M R 0 L (用来存放计数初值) 的数值变化。在设置定时器初值的语句TMR0L=6处设置断点, 让程序调试运行到此处, 然后开始单步运行, 很容易发现在语句执行到T0CONbits.T MR0ON=1处初值开始增加, 说明计数器已经开始计数, 当计数器增加到255 (二进制111 1111 1) 时, T MR 0 L计数溢出, 程序跳转并开始执行新的中断程序, 说明中断指令是在溢出之后自动发出的, 如图2所示, 此过程不断往返重复。

通过软件仿真, 程序的流程、中断从哪里发出、计时从哪里开始等关键问题一目了然。而中断计时是否符合要求, 也可以得到验证。在执行中断的语句部分设定断点, 然后应用Mplab软件仿真器的stopwa tc h功能观察每个中断周期的具体耗时, 可以发现结果是105.6ms, 与设计要求的100ms存在较大差距, 如图3所示。造成这一状况的原因是程序在跳转至中断语句的过程中还要产生额外延时5.6ms, 即14个计数周期, 若不使用软件仿真, 这样的症结所在很难被察觉。排除此干扰的方法是在TMR0计时器的理论初始值6的基础上加14, 将计数初值设为20。具体情形如图3所示。

可以看到, 使用软件仿真后, 迅速执行的程序内部流程变得清晰可见, 各步骤的耗时情况也变得量化可查, 学习过程由抽象变得具体, 理解难度也随之大大降低, 因而学生在课上和课下的学习效率得到了很大的提升。

2 结语

单片机软件仿真技术特别适合初学单片机的本科生, 结合课堂的讲授, 他们可以在课下没有单片机的大量时间中利用该技术熟悉环境、编制和调试程序, 巩固所学知识, 无形中大大提高了课堂的教学效果和上机操作水平。

当然, 软件仿真只能作为一种辅助教学手段, 无法代替实际操作环节。只有将软件仿真和课堂上机实践有机结合起来, 才能最大限度地利用好现有的教学资源, 达到最佳的实验教学效果[4]。

参考文献

[1]姜宁, 樊延虎.单片机教学改革与实践[J].延安大学学报 (自然科学版) , 2011, 30 (1) .

[2]乔吉新.浅谈单片机的教学方法与教学手段[J].中国校外教育, 2011, 4.

[3]胡坤.单片机的中断技术[J].辽宁师专学报, 2003, 5 (2) .

上一篇:对等词汇下一篇:高中政治课案例教学法