单片机上机试验讲解.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

单片机仿真实验讲解太原科技大学机电教研室刘畅单片机仿真为什么要进行单片机仿真硬件仿真和软件仿真有何区别软件仿真软件使用说明早期的单片机内部没有ROM,比如8031、8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM。紫外擦除的ROM需要用紫外灯照射较长时间(10分钟或者更多)才能擦掉芯片中的内容以便写入新的程序。还有的单片机内部ROM是一次写入成型的,比如8751,程序写入单片机的ROM之后就不能被擦除。因此,如果这样直接用单片机来调试,怎么调试呢?把程序写入ROM然后运行,出问题了就修改程序在写道ROM中再运行?但写一次ROM需要不少时间,如果是8751单片机,写一次程序不对,那这个单片机就报废了,而当时的单片机价格比较贵。因此出现了仿真器,这仿真器用RAM当充当单片机的程序存储器,这样就可以快速的反复写入程序进行运行测试,通过插入其他代码来观察寄存器和RAM中数据的变化,以判断程序运行是否正确。这样就可以高效快速的设计程序了。仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。例如,在单片机的开发过程中,程序的设计是最为重要的但也是难度最大的。一种最简单和原始的开发流程是:编写程序-烧写芯片-验证功能,这种方法对于简单的小系统是可以对付的,但在大系统中使用这种方法则是完全不可能的。为什么要进行单片机仿真?一些有经验的工程师在开发中不使用或很少仿真器。他们是如何解决程序开发中遇到的问题呢?(1)根据自己的设计建立一个符合要求的硬件平台,如果该平台涉及的程序比较复杂,还要搭建一个人机交流的通道。人机交流通道可能是一个简单的发光二极管,蜂鸣器,复杂的可能是串口通讯口,LCD显示屏。(2)写一个最简单的程序,例如只是将发光二极管连续的闪烁。程序编译后烧写到单片机芯片中,验证硬件平台是否工作正常。(3)硬件平台正常工作后编写系统最低层的驱动程序,每次程序更改后都重新烧写单片机芯片验证。如果在程序验证中遇到问题,则可能在程序中加入一些调试手段,例如通过串口发送一些信息到PC端的超级终端上,用于了解程序的运行情况。(4)系统低层驱动程序完成后再编写用户框架程序,由于这部分已经不涉及到硬件部分,所以程序中的问题用户一般能够发现。但是更多的调查表明,使用以上方法的工程师总的看来所设计的程序不是很庞大或很复杂。因为在做简单的项目时,我们可以通过一个发光二极管就可以表达出内部的信息;如果程序复杂,可能需要更多的信息来表示内部的状态,这样可能就需要串口协助调试;如果程序更复杂,硬件更多,实时性更强,那工程师就要更多的增强调试手段,串口可能就不能满足了,需要类似于断点的功能,因为人们想知道在某一个时刻单片机内部的状态究竟是怎样?如果用户程序的修改非常频繁,可能一次又一次地的烧写芯片占用的时间就很多,这时用户就会想能下载程序并运行的装置。到这里,您会看到,随着用户要求的越来越高,调试装置已经越来越象一个通用的仿真器了。因此不要回避使用仿真器,因为使用仿真器能提高您的开发速度。仿真的种类软件仿真:这种方法主要是使用计算机软件来模拟运行实际的单片机运行,因此仿真与硬件无关的系统具有一定的优点。用户不需要搭建硬件电路就可以对程序进行验证,特别适合于偏重算法的程序。软件仿真的缺点是无法完全仿真与硬件相关的部分,因此最终还要通过硬件仿真来完成最终的设计。硬件仿真:使用附加的硬件来替代用户系统的单片机并完成单片机全部或大部分的功能,使用了附加硬件后用户就可以对程序的运行进行控制,例如单步,全速,查看资源,断点等。硬件仿真是开发过程中所必须的。硬件仿真是通过硬件和相应的软件对单片机进行仿真,可以直接接在用户板上运行程序,还可以进行程序调试(单步、断点等),它不需要每次修改程序都烧写芯片,更没有来回拆、装芯片的麻烦,是学习单片机极其方便的工具。不过一般情况下,价格较高。硬件仿真和软件仿真有何区别?单片机仿真软件1.ProteusProteus是由英国Labcenterelectronics公司开发的EDA工具软件。它从1989年出现到现在已经有十多年的历史,在全球广泛使用。Proteus安装以后,主要由两个程序组成:Ares和Isis。前者主要用于PCB自动或人工布线及其电路仿真,后者主要采用原理布图的方法绘制电路并进行相应的仿真。除了上述基本应用之外,Proteus革命性的功能在于它的电路仿真是互动的,针对微处理器的应用,可以直接在基于原理图的虚拟原型上编程,并实现软件代码级的调试,还可以直接实时动态地模拟按钮、键盘的输入,LED、液晶显示的输出,同时配合虚拟工具如示波器、逻辑分析仪等进行相应的测量和观测。其处理器模型支持:8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。图中模拟的情况是,液晶的第一行显示预置的字符串信息“BUPT_Information”,第二行第一列显示当前的按键值,此时鼠标按下了数字健“6”。当鼠标按下其他的健时,液晶的显示会同步更新,2.MultisimMultisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作,由EWB发展而来。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用Multisim交互式地搭建电路原理图,并对电路进行仿真。通过Multisim和虚拟仪器技术,可以完成从理论到原理图捕获与仿真再到原型设计和测试这样一个完整的综合设计流程。Multisim有超强板级的模拟/数字电路板的设计能力。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。高版本可以进行单片机等MCU的仿真。Multisim有实际元器件和虚拟元器件,它们之间根本差别在于:一种是与实际元器件的型号、参数值以及封装都相对应的元器件,在设计中选用此类器件,不仅可以使设计仿真与实际情况有良好的对应性,还可以直接将设计导出到Ultiboard中进行PCB的设计;虚拟元器件只能用于电路的仿真。3.KeilKeil是一个公司的名字。是由德国慕尼黑的KeilElektronikGmbH和美国德克萨斯的KeilSoftware组成,现已被ARM公司收购。Keil软件是目前最流行的开发51系列单片机的软件。支持c语言,汇编语言编程。Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil的使用Keil软件的安装Keil的使用例子Keil软件的安装Keil的使用一、建立KEIL工程UVison启动后,程序窗口的左边有一个工程管理窗口,该窗口有3个标签,分别是Files、Regs、和Books,这三个标签页分别显示当前项目的文件结构、CPU的寄存器及部份特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil,那么这三个标签页全是空的。1、源文件的建立使用菜单“File-New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个新的文本编缉窗口,在该窗口中输入以下汇编语言源程序:MOVA,#0FEHMAIN:MOVP1,ARLALCALLDELAYAJMPMAINDELAY:MOVR7,#255D1:MOVR6,#255DJNZR6,$DJNZR7,D1RETEND保存该文件,注意必须加上扩展名(汇编语言源程序一般用asm或a51为扩展名),这里假定将文件保存为exam1.asm。需要说明的是,源文件就是一般的文本文件,不一定使用Keil软件编写,可以使用任意文本编缉器编写.2、建立工程文件在项目开发中,并不是仅有一个源程序就行了,还要为这个项目选择CPU(Keil支持数百种CPU,而这些CPU的特性并不完全相同),确定编译、汇编、连接的参数,指定调试的方式,有一些项目还会有多个文件组成等,为管理和使用方便,Keil使用工程(Project)这一概念,将这些参数设置和所需的所有文件都加在一个工程中,只能对工程而不能对单一源程序进行编译(汇编)和连接等操作。点击“Project-NewProject…”菜单,出现一个对话框,要求给将要建立的工程起一个名字,你可以在编缉框中输入一个名字(设为exam1),不需要扩展名。点击“保存”按钮,出现第二个对话框,如图所示,这个对话框要求选择目标CPU(即你所用芯片的型),Keil支持的CPU很多,我们选择Atmel公司的89C51芯片。点击ATMEL前面的“+”号,展开该层,点击其中的89C51,然后再点击“确定”按钮,回到主界面.工程窗口的文件页中,出现了“Target1”,前面有“+”号,点击“+”号展开,可以看到下一层的“SourceGroup1”,这时的工程还是一个空的工程,里面什么文件也没有,需要手动把刚才编写好的源程序加入,点击“SourceGroup1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如图所示。选中其中的“AddfiletoGroup”SourceGroup1”,出现一个对话框,要求寻找源文件,注意,该对话框下面的“文件类型”默认为Csourcefile(*.c),也就是以C为扩展名的文件,而我们的文件是以asm为扩展名的,所以在列表框中找不到exam1.asm,要将文件类型改掉,点击对话框中“文件类型”后的下拉列表,找到并选中“AsmSourceFile(*.a51,*.asm),这样,在列表框中就可以找到exam1.asm文件.双击exam1.asm文件,将文件加入项目,注意,在文件加入项目后,该对话框并不消失,等待继续加入其它文件,但初学时常会误认为操作没有成功而再次双击同一文件,这时会出现如图所示的对话框,提示你所选文件已在列表中,此时应点击“确定”,返回前一对话框,然后点击“Close”即可返回主界面,返回后,点击“SourceGroup1”前的加号,会发现exam1.asm文件已在其中。双击文件名,即打开该源程序。二、工程的详细设置首先点击左边Project窗口的Target1,然后使用菜单“Project-Optionfortarget‘target1’”即出现对工程设置的对话框,这个对话框可谓非常复杂,共有8个页面,绝大部份设置项取默认值就行了。设置对话框中的Target页面,如图所示,Xtal后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于我们所选的AT89C51而言是24M,该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你的硬件所用晶振频率相同,如果没必要了解程序执行的时间,也可以不设,这里设置为12。设置对话框中的OutPut页面,如图所示,这里面也有多个选择项,其中CreatHexfile用于生成可执行代码文件(可以用编程器写入单片机芯片的HEX格式文件,文件的扩展名为.HEX),默认情况下该项未被选中,如果要写片做硬件实验,就必须选中该项,这一点是初学者易疏忽

1 / 42
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功