当前位置:文档之家› 专业仿真软件课程实训报告

专业仿真软件课程实训报告

专业仿真软件自主学习报告专业学生姓名班级学号指导老师目录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μVision22.2 Keil特点1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

2.3 Keil的操作1.新建工程。

图2-2新建工程窗口1图2-3新建工程窗口22.51单片机我们是选择的Atmel里面的AT89C51。

图2-4选择单片机类型窗口3.新建一个空白文档。

图2-5新建空白文档窗口4.保存在指定文件夹,这里要注意的是,如果用C语言编程的话,文件名后缀为.c,如下图所示。

如果选用汇编语言,文件名后缀为.asm。

图2-6 保存文档窗口5.在Text中编写自己的程序,我们需要把51单片机的头文件添加上去,这个是#include<reg51.h>,写好之后把它保存再添加到工程里。

图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正确绘制实验原理图①数码管静态显示原理图:图4-1 数码管静态显示原理图②数码管动态显示原理图:图4-2数码管动态显示原理图(2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。

①数码管静态显示实验源程序如下:#include <reg51.h>#define uint unsigned int#define uchar unsigned charConst aa[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};//共阳极段码0-F BB[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//共阴极段码0-Fvoid delay(void)//延时子程序{uinti,j,k;for(i=10;i>0;i--){for(j=200;j>0;j--){for(k=50;k>0;k--);}}}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 <reg51.h>#define uint unsigned intvoid delay(uint k)//延时程序{uintm,n;for(m=0;m<k;m++){ for(n=0;n<120;n++);}}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)进行系统仿真,如果结果不正确分析原因并对相应的原理图和程序进行修改,直到要求的实验结果。

相关主题