第一篇:专业仿真软件自主学习报告
专业仿真软件自主学习报告完美版
专 业 仿 真 软 件 自主学习报告
建议先下载
专业
电气工程及其自动化
你老大 自不动不化 保密老师会找我的 大爱的李爱琴
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)。其目标是不断改善面向问题、面向用户的模块描述能力和对模型实验的功能。不同技术水平的用户通过仿真软件能在不同的程度上采用他们表达问题的习惯语言,方便地与计算机对话,完成建模或仿真实验。
1
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
2.3Keil在中国的应用情况
Keil官网虽然没有发布中文版本,但是Keil系列软件却被中国80%以上的软硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil软件。国内由米尔科技、亿道电子、英倍特提供Keil的销售和技术支持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商。
2.4优点
1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
⒉与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。
2.5keil操作
1.新建工程
3
2.选择工程位置
3.选择用到的CPU
4
4.新建文件
5.保存文件,注意后缀名
5
6.把文件添加到工程
7.编写程序
6
6.选中产生HEX文件
7
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设计,形成一个完整的电子设计系统。对于通用微处理器,还可以运行实际固件程序进行仿真。与传统的嵌入式设计过程相比,这个软件包能极大地缩短开发时间。
8
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操作
9
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
#inclu33de
{
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]
47
第二篇:专业仿真软件课程实训报告
专业仿真软件 自主学习报告
专业
学生姓名 班学级 号
指导老师
目录
1概述.............................................................................................................................1 2 Keil软件.....................................................................................................................2
2.1Keil简述............................................................................................................2 2.2 Keil特点...........................................................................................................3 2.3 Keil的操作.......................................................................................................3 3 Proteus软件................................................................................................................8
3.1 Proteus软件简述..............................................................................................8 3.2 Proteus软件特点..............................................................................................8 3.3 Proteus应用领域..............................................................................................9 3.4 Proteus的操作................................................................................................10 3.5 Keil与Proteus的联调...................................................................................11 4单元仿真...................................................................................................................12 4.1 数码管仿真....................................................................................................12 4.2 键盘仿真........................................................................................................18 5 综合仿真..................................................................................................................21 5.1方向可控流水灯.............................................................................................21 6结束语.......................................................................................................................25
1概述
仿真软件(simulation software),专门用于仿真的计算机软件。它与仿真硬件同为仿真的技术工具。仿真软件是从50年代中期开始发展起来的。它的发展与仿真应用、算法、计算机和建模等技术的发展相辅相成。1984年出现了第一个以数据库为核心的仿真软件系统,此后又出现采用人工智能技术(专家系统)的仿真软件系统。这个发展趋势将使仿真软件具有更强、更灵活的功能、能面向更广泛的用户。目前比较风行的是虚拟现实仿真软件,比如虚拟现实仿真平台(VR-Platform)。
其目标是不断改善面向问题、面向用户的模块描述能力和对模型实验的功能。不同技术水平的用户通过仿真软件能在不同的程度上采用他们表达问题的习惯语言,方便地与计算机对话,完成建模或仿真实验。仿真软件分为仿真语言、仿真程序包和仿真软件系统三类。其中仿真语言是应用最广泛的仿真软件。仿真程序包是针对仿真的专门应用领域建立起来的程序系统。软件设计人员将常用的程序段设计成通用的子程序模块,并设计一个主程序模块,用于调用子程序模块。仿真研究人员使用这种程序包可免去繁重的程序编制工作。仿真软件系统以数据库为核心将仿真软件的所有功能有机地统一在一起,构成一个完善的系统。它由建模软件、仿真运行软件(语言)、输出结果分析报告软件和数据库管理组成。
目前我们已经学习了Matlab,Autium Designer,Multisim,Proteus,Keil等仿真软件,具有灵活性高,易操作,能够弥补仿真硬件的不足,成本相较于硬件又很低的特点,对我们学习工作生活的帮助很大。
本文主要介绍Proteus,Keil这两种专业仿真软件的具体操作应用。
2 Keil软件
2.1Keil简述
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
KeilμVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到μVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。μVision2 IDE可为它们提供单一而灵活的开发环境。
图2-1 KeilμVision2
2.2 Keil特点
1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。2.3 Keil的操作
1.新建工程。
图2-2新建工程窗口1
图2-3新建工程窗口2 2.51单片机我们是选择的Atmel里面的AT89C51。
图2-4选择单片机类型窗口
3.新建一个空白文档。
图2-5新建空白文档窗口
4.保存在指定文件夹,这里要注意的是,如果用C语言编程的话,文件名后缀为.c,如下图所示。如果选用汇编语言,文件名后缀为.asm。
图2-6 保存文档窗口
5.在Text中编写自己的程序,我们需要把51单片机的头文件添加上去,这个是#include
图2-7添加头文件窗口
图2-8添加完成窗口
6.接下来检查程序有无问题,如果没有问题,我们可以编译,链接,调试了,这个需要我们生成Hex文件,这样才能放到protues软件中仿真。
图2-9 编译调试窗口
图2-10创建hex文件窗口
图2-11保存hex文件窗口
3 Proteus软件
3.1 Proteus软件简述
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
图3-1 Proteus运行界面
3.2 Proteus软件特点
1.功能多:
Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图;
(2)PCB自动或人工布线;(3)SPICE电路仿真。2.资源丰富:(1)Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库;
(2)Proteus可提供的仿真仪表资源:示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用;
(3)除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响;
(4)Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。3.3 Proteus应用领域
1.教学
Proteus是一个巨大的教学资源,可以用于: · 模拟电路与数字电路的教学与实验; · 单片机与嵌入系统软件的教学与实验; · 微控制器系统的综合实验; · 创新实验与毕业设计;
· 项目设计与产品开发。2.技能考评
Proteus能提供考试所需所有资源; · Proteus能直观评估硬件电路的设计正确性; · Proteus能直观的对硬件原理图进行调试软件; · Proteus能验证整个设计的功能; · 测试可控、易评估、易实施; 3.产品开发
Proteus Design Suite集成了原理图捕获、SPICE电路仿真和PCB设计,形成一个完整的电子设计系统。对于通用微处理器,还可以运行实际固件程序进行仿真。与传统的嵌入式设计过程相比,这个软件包能极大地缩短开发时间。
· 从产品概念到设计完成的完整仿真与开发平台; · 预研设计与项目评估,减少开发风险; · ODM的虚拟样机; · 强大的分析与调试功能克服新手的经验不足; · 软硬件的交互仿真与测试大大减少后期测试工作量; · 便利项目管理与团队开发。
3.4 Proteus的操作
1.新建一个工程。
图3-2新建工程窗口
图3-3新工程窗口
2.添加元器件
在元器件选择模式下,点“P”,调出元器件库。其按目录排列,但是通常来说用左上角的搜索按钮比较方便,搜索关键词就是该元件名称的英文单词或英文单词的一部分。
图3-4添加元器件窗口
3.搭建电路
选中元器件然后放在电路图合适位置,连线。完成电路后,保存即可。
图3-5完成的电路原理图
3.5 Keil与Proteus的联调
1.双击51单片机,出现如图3-6所示窗口
图3-6 编辑单片机窗口
2.点选图中红框,然后选中要装载的HEX文件(HEX文件在Keil中产生),点确定,此时程序已经装载到单片机中,点击运行,即可出现所要的仿真,如下图所示。
图3-7 运行中的仿真图
4单元仿真
4.1 数码管仿真
1.内容
(1)完成数码管的静态显示,P2口连接共阴极数码管,P3口连接共阳极 数码管,编程完成两个数码管同时循环显示0、1、2……F十六进制数码。间隔时间为1秒。
(2)使用一组八位数码管,动态显示15-35-00。2.目的
(1)熟悉数码管与单片机的常用连接方法(2)掌握数码管静态和动态显示的编程方法。3.步骤及方法
(1)使用Proteus正确绘制实验原理图 ①数码管静态显示原理图:
C230pS10C110uF1X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617R2R3R4R5R6R7R***0330330C330pR110k9RST2D1293031PSENALEEA12345678R9330P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R***30330R11R12R13R14R15D2 图4-1 数码管静态显示原理图 ②数码管动态显示原理图:
R10S10C110uFC230p***30330330330330R11X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617R2R3R4R5R6R7R8R***0330330330R12R13R14R15R16R17C330pR110k9RST2293031PSENALEEA123456781210P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C5122468U10:A740411U2:A74043U2:B74045U2:C740413U2:D740411U2:E74049U2:F740412U3:A7404
图4-2数码管动态显示原理图
(2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。①数码管静态显示实验源程序如下: #include
void main(void)//主程序 { uchari;while(1){ for(i=0;i<=16;i++){P2=BB[i];//P2显示共阴极段码,i=0时输出为0,i=1时输出为1,一直到i=15 P3=aa[i];//P3显示共阳极段码,i=0时输出为0,i=1时输出为1,一直到i=15 delay();
}
} }
②数码管动态显示实验源程序如下: #include
uintm,n;for(m=0;m void main(){ while(1){ P1=0xFE;P2=0xF9;delay(2);P1=0xFD;P2=0x92;delay(2);P1=0xFB;P2=0xBF;delay(2);P1=0xF7;P2=0xB0;delay(2);P1=0xEF;P2=0x92;delay(2);P1=0xDF;P2=0xBF;delay(2);P1=0xBF;P2=0xC0;delay(2);P1=0x7F;P2=0xC0;delay(2);} } (3)打开Proteus下的实验原理图文件,添加生成的十六进制文件 (4)进行系统仿真,如果结果不正确分析原因并对相应的原理图和程序进行修改,直到要求的实验结果。 4、仿真数据及现象(1)数码管的静态显示现象: 共阴极和共阳极两个数码管同时循环显示0、1、2……F十六进制数码。间隔时间为1秒。仿真图如图4-3所示。 C230pS10C110uF1X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617R2330R3330R4330R5330R6330R7330R8330C330pR110k9RST2D1293031PSENALEEA12345678R9330P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R***30330R11R12R13R14R15D2 图4-3 数码管静态显示运行仿真图 (2)数码管的动态显示现象: 八个数码管动态显示15-35-00,仿真现象如下图所示。 R10S10C110uFC230p***30330330330330R11X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617R2330R3330R4330R5330R6330R7330R8330R9330R12R13R14R15R16R17C330pR110k9RST2293031PSENALEEA123456781210P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C5122468U10:A740411U2:A74043U2:B74045U2:C740413U2:D740411U2:E74049U2:F740412U3:A7404 图4-4 数码管动态显示运行仿真图 4.2 键盘仿真 1.内容 P1口完成4*4键盘输入; P2口连接数码管,显示当前按下的键位号;P0口连接数码管,记录按下按键的次数,超过16次归零从新计数。 2.目的 (1)熟悉矩阵键盘与单片机的常用连接方法(2)掌握矩阵键盘的编程方法。3.步骤及方法 (1)使用Proteus正确绘制实验原理图 实验原理图如图4-5所示: C2C110uF30p1X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617C330pR110k9RSTR2R3470R4470R5470R6470R7470R84704702293031PSENALEEAR9R10470R11470R12470R13470R14R15470470470S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S1512345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图4-5 矩阵键盘仿真原理图 (2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。实验源程序如下: #include temp=temp&0xf0;//屏蔽低4位行值 if(temp!=0xf0)//高四位列值不全为1,说明有键按下,延时去抖动 {if(m==16)m=0;P0=AA[m];m++;temp=P1;temp=temp&0xf0;if(temp!=0xf0){ temp=P1;switch(temp)//根据按键所在在的行与列位置确定键号 { case 0xee:num=0;break;case 0xde:num=1;break;case 0xbe:num=2;break;case 0x7e:num=3;break;case 0xed:num=4;break;case 0xdd:num=5;break;case 0xbd:num=6;break;case 0x7d:num=7;break;case 0xeb:num=8;break;case 0xdb:num=9;break;case 0xbb:num=10;break;case 0x7b:num=11;break;case 0xe7:num=12;break;case 0xd7:num=13;break;case 0xb7:num=14;break;case 0x77:num=15;break;default:break;} while((temp&0xf0)!=0xf0)//等待按键释放 { temp=P1;temp=temp&0xf0;} } } } returnnum;} void main(){ intnum; P2=0x00l;while(1) { num=kscan(); switch(num)//根据按键号进行显示 { case 0:P2=0x3F;break;case 1:P2=0x06;break;case 2:P2=0x5B;break;case 3:P2=0x4F;break;case 4:P2=0x66;break;case 5:P2=0x6D;break;case 6:P2=0x7D;break;case 7:P2=0x07;break;case 8:P2=0x7F;break;case 9:P2=0x6F;break;case 10:P2=0x77;break;case 11:P2=0x7C;break;case 12:P2=0x39;break;case 13:P2=0x5E;break;case 14:P2=0x79;break;case 15:P2=0x71;break;default:break; } } }(3)打开Proteus下的实验原理图文件,添加生成的十六进制文件(4)进行系统仿真,如果结果不正确分析原因并对相应的原理图和程序进行修改,直到要求的实验结果。 4、仿真数据及现象 现象:按下按钮S0到S15,共阴极数码管依次显示0-F,共阳极数码管记录按下按键的次数,超过16次归零从新计数。 运行仿真状态如图4-6所示: C2C110uF30p1X1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617C330pR110k9RSTR2R3470R4470R5470R6470R7470R84704702293031PSENALEEAR9R10470R11470R12470R13470R14470R15470470S0S1S2S3S4S5S6S7S8S9S10S11S12S13S14S1512345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图4-6键盘仿真图 综合仿真 5.1方向可控流水灯 1.内容 P1.0-P1.3分别连接左移、右移、双向流水控制键,P2口连接用于流水显示的八个放光管。 2.目的 熟悉和掌握单片机开发的过程及方法 3.步骤及方法(1)使用Proteus正确绘制实验原理图 实验原理图如图5-1所示 C230pD8D7D6D5D4D3D2D11S10C510uFX1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617C330p2R110k9RSTR2R3R4R5R6R7R8R******1PSENALEEAN1N2N312345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图5-1方向可控流水灯原理图 (2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。实验源程序如下: #include while(key1==0)//当P1.0为低电平,即开关N1闭合 { for(i=7;i>0;i--){ P2=_crol_(P2,1);//P2的值向左循环移动,即由D1向左依次亮 DelayMS(150);} } while(key2==0)//P1.1为低电平,即开关N2闭合 { for(i=7;i>0;i--){ P2=_cror_(P2,1);//P1.2的值向右循环移动,即由D1向右依次亮 DelayMS(150);} } while(key3==0)//P1.0为低电平,即N3闭合 { P2=0x7E;//P2.0和P2.7为低电平,即D1和D8亮 DelayMS(150);P2=0xBD;//P2.1和P2.6为低电平,即D2和D7亮 DelayMS(150);P2=0xDB;// P2.2和P2.5为低电平,即D3和D6亮 DelayMS(150);P2=0xE7;// P2.3和P2.4为低电平,即D4和D5亮 DelayMS(150);P2=0xE7;//P2.3和P2.4为低电平,即D4和D5亮 DelayMS(150);P2=0xDB;//P2.2和P2.5为低电平,即D3和D6亮 DelayMS(150);P2=0xBD;//P2.1和P2.6为低电平,即D2和D7亮 DelayMS(150);P2=0xFE;//P2.0和P2.7为低电平,即D1和D8亮 } } (3)打开Proteus下的实验原理图文件,添加生成的十六进制文件 (4)进行系统仿真,如果结果不正确分析原因并对相应的原理图和程序进行修改,直到要求的实验结果。 4、仿真数据及现象 现象:点击运行后,D1点亮; 按下N1按钮,流水灯从右向左依次点亮一次,即D1到D8依次点亮,最后停在D1处,D1点亮状态; 按下N2按钮,流水灯从左向右依次点亮一次,即D8到D1依次点亮,最后停在D1处,D1点亮状态; 按下N3按钮,流水灯同时从左右两边向中间依次点亮,即D1到D8,D8到D1同时依次点亮,最后停在初始点亮状态,即D1点亮。 运行初始状态如下图所示: C230pD8D7D6D5D4D3D2D11S10C510uFX1CRYSTALU11918XTAL1XTAL2P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD*********617C330p2R110k9RSTR2R3R4R5R6R7R8R******1PSENALEEAN1N2N312345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图5-2方向可控流水灯运行初始状态仿真图 6结束语 专业仿真软件这门课程与这学期我们学的其它的一些课程有些不同,因为这门课程不仅需要我们学习好理论知识,而且对关于各个软件的实际操作方面需要我们花很多时间,熟练地掌握。因为学习的这几个软件与我们自动化专业有很大的联系,在以后的电子设计中我们都会用到各种仿真与电路制板,对我们自动化专业非常重要。 在大三这一个学期的专业仿真软件课程的学习中,我掌握了关于Proteus、Keil 两种专业仿真软件的一些应用技巧,虽然对这几个软件操作的不是十分的熟练,但我相信,只要通过我不断的练习和学习,一定可以将这门课程学好。通过这学期的实验操作,培养了我综合应用课本理论解决实际问题的能力,熟悉了proteus中的各种元器件的位置和用法,体会到了proteus的强大功能。熟悉了Keil 的集成开发环境以及Proteus与Keil 的联调。 专业仿真软件课对我们的帮助是很大的,它需要我们将学过的理论知识与实际系统地联系起来,加强我们对学过的知识的实际应用能力。在设计的过程中,我们需要不厌其烦的查阅书籍、搜索元器件、画电路图、仿真调试电路。同时在课程设计中我们也要虚心请教他人,解决自己无法解决的问题,扫除自己的盲点,在学习中共同进步。与此同时,我觉得在本次试验中我认识到了在网上查找资料的必要性以及综合实践能力的重要性。在以后的学习过程中我会更加努力,熟练的掌握这几个仿真软件。 感谢周老师和辅老师对我们的耐心教导! 网络仿真也被称为网络模拟,因为对各种网络仿真过程来说,其中也有 “模拟”的含义,即,网络仿真既可以取代真实的应用环境得出可靠的运行结果和数据,也可以模仿一个系统过程中的某些行为和特征。顾名思义,网络模拟,就是用计算机程序对通信网络进行模型化,通过程序的运行模仿通信网络的运行过程。那么,为什么要进行通信网络的仿真呢? 在网络迅速膨胀的今天,网络研究人员一方面要不断思考新的网络协议和算法,为网络发展做前瞻性的基础研究;另一方面也要研究如何利用和整合现有的资源,使网络达到最高效能。无论是哪一方面都需要对新的网络方案进行验证和分析。进行网络技术的研究一般有以下3种手段: (1)分析方法,就是对所研究的对象和所依存的网络系统进行初步分析,根据一定的限定条件和合理假设,对研究对象和系统进行描述,抽象出研究对象的数学分析模型,利用数学分析模型对问题进行求解 (2)实验方法,就是设计出研究所需要的合理硬件和软件配置环境,建立测试床和实验室,在现实的网络上实现对网络协议、网络行为和网络性能的研究。 (3)仿真方法,应用网络仿真软件建立所研究的网络系统的模拟模型,在计算机上运行这个模型,并分析运行的输出结果。 然而,前两种方法都存在很大的局限性。分析方法的有效性和精确性受假设限制很大。当一个系统很复杂时,就无法用一些限制性假设来对系统进行详细描述。实验方法的局限性在于成本很高,重新配置或共享资源很难,运用起来不灵活。而仿真方法在很大程度上可以弥补前两种方法的不足。仿真方法可以根据需要设计所需的网络模型,用相对较少的时间和费用了解网络在不同条件下的各种特性,获取网络研究的丰富有效的数据。网络仿真无疑提供了一个方便、高效的验证和分析方法,因此网络仿真技术在现代通信网络设计和研究中的作用正变得越来越大。 对几款主流网络仿真软件的评价 当前有许多优秀的网络仿真软件,其中有 Opnet、NS2、Matlab等,这为网络研究人员提供了很好的网络仿真平台。主流的网络仿真软件都采用了离散事件模拟技术,并提供了丰富的网络仿真模型库和高级语言编程接口,这无疑提高了仿真软件的灵活性和使用方便性。下面将对各种主流的网络仿真软件进行简要评价。 OPNET Modeler OPNET Modeler是OPNET Technology公司的四个系列网络仿真软件产品的其中之一,它主要面向的用户为网络设计专业人士,能够满足大型复杂网络的仿真需要。OPNET Modeler有如下特点: (1)提供三层建模机制,最底层为Process模型,以状态机来描述协议;其次为Node模型,由相应的协议模型构成,反映设备特性;最上层为网络模型。三层模型和实际的网络、设备、协议层次完全对应,全面反映了网络的相关特性; (2)提供了一个比较齐全的的基本模型库,包括:路由器、交换机、服务器、客户机、ATM设备、DSL设备、ISDN设备等等。同时,OPNET Technology公司会对不同的企业用户提供附加的专用模型库,但需另外付费; (3)采用离散事件驱动的模拟机理(discrete event driven),与时间驱动相比,计算效率得到很大提高。 (4)采用混合建模机制,把基于包的分析方法和基于统计的数学建模方法结合起来,既可得到非常细节的模拟结果,又大大提高了仿真效率。 (5)OPNET具有丰富的统计量收集和分析功能。它可以直接收集常用的各个网络层次的性能统计参数,能够方便地编制和输出仿真报告。 (6)提供了和网管系统、流量监测系统的接口,能够方便的利用现有的拓扑和流量数据建立仿真模型,同时还可对仿真结果进行验证。 NS 2NS2(Network Simulator, version 2)是一种面向对象的网络仿真器,本质上是一个离散事件模拟器。NS2由UC Berkeley开发而成。它本身有一个虚拟时钟,所有的仿真都由离散事件驱动的。目前NS2可以用于仿真各种不同的IP网,已经实现的一些仿真有:网络传输协议,比如TCP和UDP;业务源流量产生器,比如FTP、Telnet、Web CBR和VBR;路由队列管理机制,比如Droptai、RED和CBQ;路由算法,比如Dijkstra等。NS2也为进行局域网的仿真而实现了多播以及一些MAC子层协议。 NS2使用C++和Otcl作为开发语言。NS可以说是Otcl的脚本解释器,它包含仿真事件调度器、网络组件对象库以及网络构建模型库等。事件调度器计算仿真时间,并且激活事件队列中的当前事件,执行一些相关的事件,网络组件通过传递分组来相互通信,但这并不耗费仿真时间。所有需要花费仿真时间来处理分组的网络组件都必须要使用事件调度器。它先为这个分组发出一个事件,然后等待这个事件被调度回来之后,才能做下一步的处理工作。事件调度器的另一个用处就是计时。NS是用Otcl和C++编写的。由于效率的原因,NS将数据通道和控制通道的实现相分离。为了减少分组和事件的处理时间,事件调度器和数据通道上的基本网络组件对象都使用C++写出并编译的,这些对象通过映射对Otcl解释器可见。 当仿真完成以后,NS将会产生一个或多个基于文本的跟踪文件。只要在Tcl脚本中加入一些简单的语句,这些文件中就会包含详细的跟踪信息。这些数据可以用于下一步的分析处理,也可以使用NAM将整个仿真过程展示出来。Matlab MATLAB软件是由美国Mathworks公司推出的用于数值计算和图形处理的科学计算系统环境。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。MATLAB环境下,用户集成了程序设计、数值计算、图形绘制、输入输出、文件管理等各项功能。MATLAB提供了一个人机交互的数学系统环境,该系统的基本数据结构是矩阵,在生成矩陈对象时,不要求作明确的维数说明。与利用C 语言或FORTRAN 语言作数值计算的程序设计相比,利用MATLAB可以节省大量的编程时间。 MTALAB系统由五个主要部分组成: (1)MATALB语言体系。MATLAB是高层次的矩阵/数组语言。具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形图像系统。这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特征控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库。这是对MATLAB使用的各种数学算法的总称。包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法等。 (5)MATLAB应用程序接口。这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用C程序或FORTRAN程序,包括从MATLAB中调用程序(如动态链接库),读写MAT文件的功能。 由此可见,MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。除此之外,MATLAB还具有很强的功能扩展能力,与它的主系统一起,可以配备各种各样的工具箱,以完成一些特定的任务。CASSAP CASSAP是美国Synopsys(新思科技)公司开发了一款仿真软件,主要应用于数字信号处理和网络通信领域,它可以在概念、体系结构、算法三个层次上实现 仿真。CASSAP采用了数据流驱动仿真器,它比基于时钟周期的仿真器速度提高了8-16倍。CASSAP提供了1000多个高层模块,并可对其中所需模块自动生成行为级或RTL级VHDL,也可生成各种风格的DSP代码,供DSP处理器作软件实现。CASSAP可广泛应用于需分析和评估算法、实现方式的数字传输系统,如通讯、图像、多媒体等,并提供了针对GSM、CDMA、DECT等标准的专用开发平台。 SPW SPW仿真软件是Cadence公司的产品,它提供了面向电子系统的模块化设计、仿真及实施环境,是进行算法开发,滤波器设计,C代码生成,硬 /软件结构联合设计和硬件综合的理想环境。SPW的一个显著特点是他提供了HDS接口和Matlab接口。Matlab里面的很多模型可以直接调入 SPW,然后利用HDS生成C语言仿真代码或者是HDL语言仿真代码。SPW通常可以应用于无线和有线载波通信、多媒体和网络设计与分析等领域。 比较分析 通过对NS2和Opnet Modeler的操作和数据观察结果的对比,我们可以从软件功能和操作易用性两个方面对这两个软件进行分析。 在软件功能方面,Opnet Modeler做的比较完备,可以对分组的到达时间分布、分组长度分布,网络节点类型和链路类型等进行很详细的设置,而且可以通过不同厂家提供的网络设备和应用场景来设计自己的仿真环境,用户也可以方便的选择库中已有的网络拓扑结构。而NS2在这方面的选择不如Opnet Modeler丰富,只能根据实际仿真的环境通过脚本建立逻辑的网络结构,而查看结果需要其他软件的辅助。 在操作易用性方面,Opnet Modeler的优越性是毋庸置疑的,因为它可以使用比较少的操作就可以得到比较详尽和真实的仿真结果。而NS2则要通过编写脚本和C++代码来实现网络仿真,而且用这种方式建立复杂的网络结果则变的非常困难。 当然,NS2是自由软件,免费,这是与OPNET相比最大的优势,而且,作为用户,可以相对比较容易地对NS2进行功能扩展。 总结 本文通过对5款当前主流网络仿真软件的简要分析,介绍了网络仿真的概念和当前网络仿真软件的技术特点和应用范围;并通过在NS2和Opnet Modeler对同一个网络结构进行仿真的过程给读者提供了网络仿真过程的感性认识。网络仿真提供了从设想到实现的桥梁,因此它是一个计算机网络设计与分析过程中的一个重要环节。 天度机电仿真软件 一、学习模式: 1、课件内容学习:机电一体化概述检测与传感器步进及伺服电机机械传动,控制系统,接口技术,伺服系统 2、元器件(电器和仪表)学习:70多个电气、仪表3D模型及性能参数,关键机电器件提供爆炸图展示: A电气:控制盘柜、直流电源、单相交流电源、三相交流电源、保险丝、单排空开、双排空开、三排空开、蓝色钮子开关、红色钮子开关、绿色方形按钮、红色方形按钮、常闭按钮、常开按钮、转换开关、旋转开关、行程开关、三菱交流接触器西门子交流接触器、交流接触器、变压器、开关电源、热继、电机、电抗、电流互感器、电流表、东元TECO变频器、伟创变频器、3色灯、指示灯-红、指示灯-黄、指示灯-蓝、接地端子、魏德米勒接线端子、接线端子、盘柜风扇、电笔等 B仪表和元件:PLC、中间继电器、时间继电器,带底座时间继电器、调节阀、气压阀、截止阀,蝶阀、针型阀、单线圈电磁阀、双线圈电磁阀,智能式变送器、亚德客接近开关、接近开关PNP,接近开关NPN朗鸿接近开关、压力表、单减压过滤器、减压过滤器 二、仿真接线: 学生参照老师设定的电气原理图,从元器件库中拖入对应的3D元器件到元器件库中,按电路图要求,进行命名,参数设置,接线,系统会进行操作计时,提交后系统对操作结果进行检测判断。 7个机电典型电路接线自动判断检测功能:自耦降压起动,双重互锁正反转控制,时间继电器控制,生产机械行程控制电路,具有过载保护的正转控制,接触器星形三角形控制,接触器控制的双速电动机调速电路。 三、PLC编程:仿真三菱(FX2N系列)PLC编程,通过编辑工具,可编辑修改或载入PLC程序,PLC程序能够进行仿真运行,运行时具有输入输出状态指示。支持PLC程序与指令表间切换,支持PLC信息状态仿真测试 四、理论考核: 1、试卷管理:老师可对考场进行管理、试卷编辑和试卷审核,可以从题库里自由选择各类型题目,设置分数,并组成试卷,在指定的时间和考场对指定的学员进行考试。最后对学生提交的试卷进行自动评分,并对试卷考核结果进行综合分析。 2、题库管理题型包括填空题、单选题、多选题、判断题、问答题和实验题,老师可以导入或导出各种题型的题目,或者直接在平台上进行添加。并对各个题型进行归类。 3、自我考核: 老师可以选择课后练习题,让学生进行课后自我考核,系统自动评分,老师可以随时了解学生每堂课学习和复习的情况。 RaLC-Pro软件物流系统模型仿真报告 RaLC-Pro软件物流模型仿真报告 RaLC-Pro物流模型仿真软件是专业面向物流的3D动画仿真软件系统,可以把物流配送中心或工厂在计算机系统中建成虚拟的3D动画模型,集作业人员、搬运设备、货物、控制系统、数据信息合为一体的系统仿真平台,3D动画模型具体、形象、生动,可非常真实地表现整个物流系统,为物流中心的规划建设和改善提供有效的可视化手段。软件中包含了仓库、配送中心的所有的设备,包括普通仓库用到的货架、叉车、手推车等常用设备;也有先进的自动智能设备,如自动码垛机、AGV无人搬运车、自动轨道车、升降机、自动立体仓库、移动货架、旋转货架等多种与现实物流环境相对应的物流设备模块,3D可视化效果直观,模拟效果良好。 RaLC-Pro物流模型仿真软件可以建立从简单到复杂多种类型的物流系统的模型,在本学期“物流系统设计与优化”课程学习中,周敏老师指导我们进行了通过型物流中心的模型构筑、仓储型物流中心模型和复合型物流中心的模型三种物流仿真模型的建立与仿真模拟,三种模型从易到难、从简单到复杂,逐步掌握了物流系统模型仿真的方法,达到了很好的效果。本文就在学习过程中对于四种物流系统模型建立的过程,遇到的问题、解决方法以及模型建立的难点和关键点做了一下总结。 一、通过型物流中心的模型构筑 1、通过型物流中心模型目的及效果 通过型物流中心是指进货后不经入库储存直接按店铺分类后出货的物流中心。本模型利用部件生成器、传送带(直线、分流、弯曲)、部件消灭器、作业员、笼车等来构筑了通过性物流中心模型。 通过性物流中心模型的仿真模拟要达到的效果是货物包裹从投放口开始在传送带上流动,在分流点根据商品的种类进行分门别类使其按不同分流口流出后作业员把商品装入笼车。通过周老师指导,按步骤建立模型的最终效果如图1所示。 RaLC-Pro软件物流系统模型仿真报告 图1 通过性物流中心模型最终效果图 2、通过型物流中心模型构筑时遇到的困难 1)系统模型建好以后,包裹在分枝流水线不分流; 2)包裹分流到分枝流水线终端时,机器人不动; 3、解决方案 1)包裹在分枝流水线不分流可能有连接设备不畅和分流条件没有设置两个原因导致,可尝试以下方法解决:a.在连接流水线分枝段对弯曲段进行“连接下一个设备”的操作;b.设置分流条件。先对包裹生成器进行条码命名,再在分流口的分枝断的属性里的分流条件进行设置。 2)机器人不动可能有连接不畅、距离不当和其他原因造成,可尝试一下方法解决:a.在流水线分枝终端对机器人进行“连接下一个设备”的操作,再设置机器人对笼车进行“连接下一个设备”的操作;b.增大机器人和笼车的距离,最好为1.3m左右;c.如果以上操作还不能解决,删掉现有机器人,重新设置。 4、通过型物流中心模型构筑的难点和关键点 1)进行“连接下一个设备”的操作,如果不进行这一步工作,将导致设备不连贯,包裹不能正常传递; 2)流水线分流段是个关键环节,应格外注意; 3)弯曲段流水线的角度设计是个难点,对流水线的外观也有部分影响; RaLC-Pro软件物流系统模型仿真报告 4)设置分流条件。先对包裹生成器进行条码命名,再在分流口的分枝断的属性里的分流条件进行设置,如果不设置,将导致包裹不能分流。 二、仓储型物流中心模型 1、通过型物流中心模型目的及效果 仓储型物流中心是指将进货的商品临时保存在仓库中,然后根据需要出库的物流中心。仓储型物流中心模型的建立使用自动立体仓库、装货中转站、卸货中转站、传送带(直角、合流)、机器人、托盘供给器等设备来建立模型的方法以及关于这些设备的设定方法。 仓储型物流中心要达到的效果是从3处投入口进来的4种商品沿传送带流动,在合流点合流的商品在装货中转站由机器人堆放在托盘上,托盘经入库口被送入自动立体仓库。存储在自动立体仓库中的托盘经出库口出库,在卸货中转站由作业员将商品卸下投放到分流线上去。达到的效果如图2所示。 图2 仓储型物流中心效果图 2、通过型物流中心模型构筑时遇到的困难 RaLC-Pro软件物流系统模型仿真报告 1)机器人不能正常工作,不能摆臂传递货物; 2)包裹要装满自动立体仓库时才能进行包裹出库的作业,等待时间很长; 3、解决方案 1)机器人不能正常作业,可进行以下操作解决。a.可能是因为机器人到流入包裹的水流现端以及中间的装货中转站太近或者太远,适当调整距离即可解决;b.进行“连接下一个设备的”操作,要注意的是机器人要连接到装货中转站的蓝色箭头上,如图3所示;c.删掉机器人重新设置。 图3 机器人工作示意图 2)包裹要装满自动立体仓库时才能进行包裹出库的作业,等待时间很长,可进行以下操作加以解决。a.调整包裹生成器、流水线、机器人的作业速度,加快对立体仓库的装填速度和作业进程;b.对自动化立体仓库进行参数设置,把仓库变小,以小仓库也可以正常模拟货物的流入流出,改变参数把立体仓库变小的示意图见图4。 RaLC-Pro软件物流系统模型仿真报告 图4 改变参数后的立体仓库模型 4、通过型物流中心模型构筑的难点和关键点 1)在添加IO部件时应进行“可移动子类设备”的操作,可以调整部件的位置,如果不调整可能会出现位置放反的情况,如立体仓库的出入段以及入库和出库中转站的箭头等; 2)该模型有3处投入口,4种商品沿传送带流,3个终端分拣员,一个难点是控制好速度,把各处的速度协调好,否则容易造成包裹堵塞,如图4所示。 3)还一个该模型无法解决的问题是立体仓库中间的自动传送架速度无法完全调整,制约着整个系统的速度。 三、复合型物流中心模型 1、通过型物流中心模型目的及效果 复合型物流中心是指用各种各样的物流机械设备建设的大型物流中心。复合型物流中心的模型各种设备以及滑车铁轨、智能导向物、叉车等来建立模型的方法以及关于这些设备的设定方法。 RaLC-Pro软件物流系统模型仿真报告 复合型物流中心模型要做成由装货机器人将传送过来的4种货物堆放到托盘后,装货托盘由滑车铁轨向3个自动立体仓库分送,并且将从自动立体仓库出库的托盘由滑车铁轨向出货场地搬送,再由叉车向出货口搬运货物的模型。模型效果示意图如图5所示。 图5 复合型物流中心模型效果示意图 2、复杂型物流中心模型构筑时遇到的困难 包裹卡在入库中转站或者滑车铁轨上,成为该模型的瓶颈。 3、解决方案 a.应注意IO部件方向的设置应该正确; b.滑车铁轨的弹出菜单中的添加IO部件与装货中转站的输出口相连。 4、复杂型物流中心模型的难点和关键点 自动立体仓库较多,因此IO部件也多,而且增加了滑车铁轨,因此应该注意IO部件的方向。第三篇:网络仿真软件调研
第四篇:机电仿真软件介绍
第五篇:物流仿真软件(RaLC-Pro)操作报告及学习体会