专业仿真软件课程实训报告.doc_第1页
专业仿真软件课程实训报告.doc_第2页
专业仿真软件课程实训报告.doc_第3页
专业仿真软件课程实训报告.doc_第4页
专业仿真软件课程实训报告.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专 业 仿 真 软 件自主学习报告专业学生姓名班级学号指导老师目录1概述12 Keil软件22.1Keil简述22.2 Keil特点32.3 Keil的操作33 Proteus软件83.1 Proteus软件简述83.2 Proteus软件特点83.3 Proteus应用领域93.4 Proteus的操作103.5 Keil与Proteus的联调114单元仿真124.1 数码管仿真124.2 键盘仿真185 综合仿真215.1方向可控流水灯216结束语251概述仿真软件(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即可看出。KeilVision2是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言易学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,您可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到Vision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。Vision2 IDE可为它们提供单一而灵活的开发环境。图2-1 KeilVision2 2.2 Keil特点1.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。2.3 Keil的操作1.新建工程。图2-2新建工程窗口1图2-3新建工程窗口2251单片机我们是选择的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、2F十六进制数码。间隔时间为1秒。(2)使用一组八位数码管,动态显示15-35-00。2. 目的(1)熟悉数码管与单片机的常用连接方法(2)掌握数码管静态和动态显示的编程方法。3. 步骤及方法(1) 使用Proteus正确绘制实验原理图 数码管静态显示原理图:图4-1 数码管静态显示原理图数码管动态显示原理图:图4-2数码管动态显示原理图(2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。数码管静态显示实验源程序如下:#include #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)/延时子程序 uint i,j,k;for(i=10;i0;i-)for(j=200;j0;j-)for(k=50;k0;k-); void main (void)/主程序uchar i;while (1) for(i=0;i=16;i+)P2=BBi;/P2显示共阴极段码, i=0时输出为0,i=1时输出为1,一直到i=15P3=aai;/P3显示共阳极段码, i=0时输出为0,i=1时输出为1,一直到i=15 delay(); 数码管动态显示实验源程序如下:#include #define uint unsigned intvoid delay(uint k)/延时程序 uint m,n;for(m=0;mk;m+) for(n=0;n120;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)进行系统仿真,如果结果不正确分析原因并对相应的原理图和程序进行修改,直到要求的实验结果。4、仿真数据及现象(1)数码管的静态显示现象:共阴极和共阳极两个数码管同时循环显示0、1、2F十六进制数码。间隔时间为1秒。仿真图如图4-3所示。图4-3 数码管静态显示运行仿真图(2)数码管的动态显示现象:八个数码管动态显示15-35-00,仿真现象如下图所示。图4-4 数码管动态显示运行仿真图4.2 键盘仿真1. 内容P1口完成4*4键盘输入; P2口连接数码管,显示当前按下的键位号;P0口连接数码管,记录按下按键的次数,超过16次归零从新计数。2. 目的(1)熟悉矩阵键盘与单片机的常用连接方法(2)掌握矩阵键盘的编程方法。3. 步骤及方法(1)使用Proteus正确绘制实验原理图实验原理图如图4-5所示:图4-5 矩阵键盘仿真原理图(2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。实验源程序如下:#include#include#define uchar unsigned char#define uint unsigned int uchar num,temp;const AA=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;int m=1;kscan(void)/键盘扫描子程序uchar i ,temp,num=16;for(i=0;i4;i+)P1=_crol_(0xfe,i);/逐行扫描temp=P1;/读取键值temp=temp&0xf0;/屏蔽低4位行值if(temp!=0xf0)/高四位列值不全为1,说明有键按下,延时去抖动if(m=16) m=0;P0=AAm;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;return num;void main() int num; 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所示:图4-6键盘仿真图5 综合仿真5.1方向可控流水灯1. 内容P1.0-P1.3分别连接左移、右移、双向流水控制键,P2口连接用于流水显示的八个放光管。2. 目的熟悉和掌握单片机开发的过程及方法3. 步骤及方法(1)使用Proteus正确绘制实验原理图实验原理图如图5-1所示图5-1方向可控流水灯原理图(2)使用仿真软件Keil编写、编译、调试源程序,并生成十六进制文件。实验源程序如下:#include#include#defineucharunsignedchar#defineuintunsignedintsbitkey1=P10;/P1.0赋值给key1sbitkey2=P11;/P1.1赋值给key2sbitkey3=P12;/P1.2赋值给key3voidDelayMS(uintx)uchart;while(x-)for(t=120;t0;t-);voidmain()uchari;P2=0xFE;/P2.0为低电平,即D1先亮while(key1=0)/当P1.0为低电平,即开关N1闭合for(i=7;i0;i-)P2=_crol_(P2,1);/P2的值向左循环移动,即由D1向左依次亮DelayMS(150);while(key2=0)/P1.1为低电平,即开关N2闭合for(i=7;i0;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下的实验原理图文件,添加生成的十六进制文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论