第11章 PROTEUS ISIS、KeiluVision2软件的使用及应用实例_第1页
第11章 PROTEUS ISIS、KeiluVision2软件的使用及应用实例_第2页
第11章 PROTEUS ISIS、KeiluVision2软件的使用及应用实例_第3页
第11章 PROTEUS ISIS、KeiluVision2软件的使用及应用实例_第4页
第11章 PROTEUS ISIS、KeiluVision2软件的使用及应用实例_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第11章PROTEUSISIS、KeiluVision2教学目的(1)学会从网络获得Proteus和KeiluVision2IDE集成软件及二者联调所需的软件;(2)学会Proteus软件和KeiluVision2IDE软件的正确安装;(3)学会ProteusISIS原理图的输入;(4)学会ProteusISIS数字电路交互式仿真的基本方法;(5)学会KeiluVision2IDE开发平台上建立C51程序及汇编程序的流程;(6)学会Proteus和KeiluVision2IDE联调的方法、步骤。学习重点和难点(1)ProteusISIS输入原理图时,如何查找所需元件、如何放置元件、布线、连接端子、元件标注、总线标注、原理图标注等;(2)ProteusISIS交互式仿真,常见虚拟仪器的使用、常见活性元件如各种开关的使用;(3)KeilC51各种常用调试工具的使用;(4)Proteus和KeiluVision2联调时,二者相关参数的设置。目前电子设计手段日新月异,由手工设计阶段到EDA阶段,再到虚拟设计阶段,人们不断提高设计水平与效率。PROTEUS嵌入式系统仿真与开发平台是一款可以实现数字电路、模拟电路、微控制器系统仿真及PCB设计等功能的EDA软件。从元件的选取到连线,直至电路的调试、分析和软件的编译,都是在计算机中完成,所有的工作先在虚拟环境下进行。基于这一设计思想开发的PROTEUS软件,可在原理图设计阶段对所设计的电路进行评估、验证,看是否达到设计要求的技术指标,并可以通过改变元件的参数使整个电路性能达到最优化。这样就避免了传统电子电路设计中方案更换带来的多次重复购买元器件及制板,在节省设计时间与经费的同时,提高了设计效率与质量。PROTEUS软件提供了三十多个元器件库,数千元器件。元件涉及电阻、电容、二极管、MOS管、变压器、继电器、各种放大器、各种激励源、300多种微处理器、各种门电路和各种终端等。提供的仪表有交直流电压表、电流表、逻辑分析仪、定时/计数器和信号发生器等虚拟仪器,PROTEUS作为可视化仿真软件,提供数码管、液晶屏、LED、按钮、键盘等外设。本章基于PROTEUS6.9SP4版本的软件,通过实例讲解PROTEUS软件中的最基本的操作、包括原理图的输入、电路仿真、软硬件协同调试等。11.0Proteus软件概述Proteus软件是英国LabCenterElectronics公司开发的EDA工具软件,包括ISIS.EXE(电路原理图设计、电路原理仿真)和ARES.EXE(印刷电路板设计)两个主要程序三大基本功。其中最令人称赞的是电路原理的仿真功能,除了普通分立器件、小规模集成器件的仿真功能以外,还具有多种带有CPU可编程器件的仿真功能,如80C51系列、68系列、PICS系列等;具有多种总线、RS232终端仿真功能;具有电动机、液晶显示器等特殊器件的仿真功能;对可编程器件可灵活的外挂各种编译、编辑工具,使用非常方便。具有多种虚拟仪器帮助完成实时仿真调试,用于课堂教学也是一种非常好的演示工具。1、软件的获取需要Proteus软件的读者,可联系深圳市风标数码科技有限公司,或到以下网址:或http://www.labcenter.co.uk下载免费软件,或用搜索引擎搜索Proteus6.9下载或更高版本的下载。2、Proteus6.9的安装双击setup.Exe,按屏幕提示,输入密码,一路Next,安装完成后,单击:程序|proteus6professional|Licencemanager,进入labcenterLicenceManager管理界面,如图11-1所示,在图11-1中点击BrowseForKeyFile,在对话框中选择已下载的licence.lxk文件,单击图11-1左侧任一“黄钥匙”,点击Install,单击Close,proteus6.9安装完成。图11-1proteus6.9密匙管理界面11.1ProteusISIS编辑环境

ProteusISIS智能原理图输入系统是PROTEUS系统的中心。该编辑软件具有较好的人机交互界面。并且设计功能强大,使用方便,易于掌握。11.1.1操作界面ProteusISIS运行于windows98/2000/xp环境,对PC机要求不高,一般的配置即可。启动ProteusISIS软件后,将启动ProteusVSM编辑环境,如图11-2所示。在图11-2中,点状的栅格区为编辑窗口;左侧的上方为电路图浏览窗口;下方是元器件列表区。其中,编辑窗口用于放置元件,进行连线,绘制原理图;浏览窗口中的框线表示当前编辑窗口显示的区域,当从对象选择器中选择一个新的对象时,在浏览窗口中可以预览选中的对象。在预览窗口上单击,将会以单击位置为中心刷新编辑窗口。其他情况下,预览窗口显示将要放置的对象的预览。图11-2ISIS绘制环境当使用选择或镜像按钮时;单击Generator按钮,在此模式下对象选择器列出各种信号源(如脉冲信号源等)单击Voltageprobe按钮,可在原理图中添加电压探针。当电路进入仿真模式时,可显示各种探针处的电压值。单击Currentprobe按钮,可在原理图中添加电流探针。当电路进入仿真模式时,可显示各种探针处的电流值。单击VirtualInstrument按钮,在此模式下对象选择器列出各种虚拟仪器(如示波器、逻辑分析仪、定时/计数器、模式发生器等)当一个对象在选择器中被选中时;●这种“放置预览”特性在下列情况下被激活:●除了上述模块图标外,系统还提供了以下2D图形模式图标:

2Dgraphicsline按钮,用于创建元件或表示图表时划线。

2Dgraphicsbox按钮,用于创建元件或表示图表时绘制方框。

2Dgraphicscircle按钮,用于创建元件或表示图表时划圆。2Dgraphicsarc按钮,用于创建元件或表示图表时绘制弧线。

2Dgraphicspath按钮为任意形状图标,用于创建元件或表示图表时绘制任意形状图标。

2Dgraphicstext按钮

为文本编辑图标,用于插入各种文字说明。2Dgraphicssymbol按钮为符号图标,用于选择各种符号器件。

Markersforcomponentorigin按钮为标记图标,用于产生各种标记图标。●对于具有方向性的对象,系统还提供了各种块旋转按钮:方向旋转(SetRotation)按钮,以90°的偏置改变元件的放置方向。水平镜像旋转(HorizontalReflection)按钮,以Y轴为对称轴,按180°的偏置旋转元件。垂直镜像旋转(VirticalReflection)按钮,以X轴为对称轴,按180°的偏置旋转元件。11.1.2菜单栏和工具栏菜单栏和工具栏如图11-3所示。ProteusISIS的菜单栏包括File(文件)、View(视图)、Library(库)、Tools(工具)、Design(设计)和Help(帮助)等。单击任一菜单后都将弹出相应的下拉菜单,符合Windows的菜单风格。11-3主菜单和主要工具栏File菜单包括常用的文件功能,如打开新的设计、加载设计、保存设计、导入/导出文件、显示最近使用过的文档及退出ProteusISIS等。View菜单包括网格的显示与否、格点的间距设置、电路图的缩放及各种工具的显示与隐藏等。Edit菜单包括操作的撤销/恢复、元件的查找与编辑、剪贴/复制/粘贴及多个对象的叠层关系的设置等。Library菜单包括元件/图标的添加、创建及库管理器的调用。Tools菜单包括实时标注、实时捕捉及自动布线等。Design菜单包括编辑设计属性、编辑图纸属性及进行设计注释等。Graph菜单包括编辑图形、添加Trace、仿真图形及一致性分析等。Source菜单包括添加/删除源文件、定义代码生成工具及建立外部文本编辑器等。Debug菜单包括启动调试、执行仿真、单步执行及弹出窗口重新排布等。Template菜单包括图形格式、文本格式、设计颜色、线条连接点大小和图形等。System菜单包括设置自动保存时间间隔、图纸大小及标注字体等Help菜单包括版权信息、ProteusISIS教程学习及实例。11.1.3编辑环境的设置编辑环境的设置主要是指模板的选择、图纸的选型与光标的设置。绘制电路图首先要选择模板,以控制电路图外观的信息,如图形格式、文本格式、设计颜色、线条连接点大小和图形等;然后设置图纸的相关内容,如:纸张的型号、标注的字体等。图纸上的光标为放置元件、连接线路带来很多方便。

1、设置模板选择Template→SetDesignDefaults选项,设置设计默认模板的风格,如图11-4所示。从图11-4所示可以看出,为满足不同设计者的需要,可以设置纸张的颜色(PaperColour)、格点颜色(GridDotColour)以及电路仿真时正、负、地、逻辑高/低等项目的颜色,同时还可以设置隐藏对象的显示与否及其颜色,还可以通过FontFaceforDefaultFont的下拉菜单设计编辑环境的默认字体等。图11-4编辑设计的默认选项2、设置仿真图表选择Template→SetGraphColour选项,编辑仿真图表的风格,如图11-5所示。通过对话框可设置仿真图表的轮廓线(GraphOutline)、底色(Background)、图形标题(Graphtext)等按用户期望的颜色进行设置,同时也可对模拟跟踪曲线(AnalogueTraces)、不同类型的数字跟踪曲线(DigitalTraces)进行设置。3、设置图形选择Template→SetGraphicsStyles选项,设置图形风格,如图11-6所示。通过这一对话框可以设置图形的风格,如线性、线宽、线的颜色及图形的填充色等。在Style的下拉菜单中可选择不同的系统图形风格。4、设置全局文本选择Template→SetTextStyles选项,编辑全局文本风格,如图11-7所示。图11-6编辑图形风格11-5编辑仿真图表的风格11-7编辑全局字体风格5、设置图形文本选择Template→SetGraphicsText选项,编辑图形文本格式,如图11-8所示。6、设置文本编辑器选择System→SetTextEditor选项,出现如图11-9所示的对话框。在图11-9所示对话框中可以对文本的字体、字形、大小、效果、颜色等进行设置。7、图纸的选择选择System→SetSheetSizes选项,将出现如图11-10所示的对话框。对于各种不同应用场合的电路设计,图纸的大小也不一样。比如用户要将图纸大小更改成标准A4图纸。将A4的复选框选中,单击OK按钮即可。11-8设置图形字体图11-9设置文本格式图11-10设置图纸大小8、设置格点在设计电路时,图纸上的格点为放置元件和连接线路提供了很大的帮组,也使电路图中元件对齐、排列更加方便。

①使用View菜单设置个点的显示与隐藏选择View→Grid(快捷键G)选项,设置窗口中格点的显示与否,如图11-11所示。

②使用View菜单设置格点的点距选择View→Snap10th(Snap50th、Snap100th或Snap500th)选项来调整间距(默认值为Snap100th)。图11-11格点的显示与隐藏11.2电路图的绘制电路设计的第一步是原理图的输入。PROTEUSISIS原理图输入流程如图11-12所示。绘制电路原理图主要通过工具箱来完成,因此,熟练使用电路图绘制工具是快速准确绘制电路原理图的前提。下面简要介绍PROTEUSISIS原理图绘制过程。绘制原理图的首要任务是从元件库中选取绘制电路所需元件,当启动ISIS的一个空白页面时,对象选择器是空的。因此,需要使用Component工具箱调出器件到选择器,使用Component工具的步骤如下:图11-12原理图输入流程图1、Component工具

从工具箱中选择Component图标。

①点选对象选择器顶端左侧“P”按钮,此时将弹出PickDevice窗口,如图11-13所示。图11-13中导航工具目录(category)下列表参数的含义:

AnalogICs模拟集成电路库Capacitors电容库CMOS4000SeriesCOMS4000系列库Connectors连接器、插头插座库DataConverters数据转换库(ADC、DAC)DebuggingTools调试工具库Diodes二极管库ECL10000SericesECL10000系列库Electromechanical电动机库Inductors电感库图11-13PackDevice窗口

MicroprocessorICs微处理器库MemoryICs存储器库Miscellaneous其他混合类库OperationalAmplifiers运算放大器库Optoelectronics光器件库PLDs&FPGAs可编程逻辑器件Resistors电阻SimulatorPrimitives简单模拟期间库Speakers&Sounders扬声器和音像器件Switches&Relays开关和继电器

Switching&Device开关期间(可控硅)Transistors晶体管TTL74SeriesTTL74系列器件TTL74lsSeriesTTL74LS系列器件

②在Keyword中键入一个或多个关键字,或使用导航工具目录(category)和子目录(subcategory),滤掉不期望出现的元件的同时定位期望的库元件。③在结果列表中双击元件,即可将该元件添加到设计中④当完成元件的提取时,单击OK按钮关闭对话框,并返回ISIS。2、JunctionDot工具连接点(JunctionDot)用于表示线之间的互连。通常,ISIS将根据具体情形自动添加或删除连接点。但在有些情形下,可先放置连接点,再将连线连到已放置的连接点或从这一连接点引线。放置连接点的步骤如下:

①从ModeSelectortoolbar选择JunctionDot图标②在编辑窗口期望放置连接点的位置单击,即可放置连接点。3、WireLabels工具线标签(WireLabels)用于对一组线或一组引脚编辑网络名称,以及对特定的网络指定网络属性。WireLabels使用步骤如下:①从工具箱中选择wirelabels图标注意:

①不可将线的标签放置在线以外的对象上。②一条线可放置多个线标签。③ISIS将自动根据线或总线的走向调整“线标签”方位。“线标签”方位也可通过EditWireLabel对话框进行调整。④在EditWireLabel对话框单击labelstring中的文本,并按下del键即可删除“线标签”。⑤在EditWireLabel对话框单击Style选项卡可改变“线标签”的风格。④单击OK或按下回车键关闭对话框,完成线标签的放置和编辑。②如果想要在已存在的线上放置新的标签,则可在期望放置标签的沿线的任一点单击,或在已存在的标签上单击,将出现如图11-14所示的EditWireLabel对话框。③在对话框的文本框中键入相应的文本。图11-14EditWireLabel对话框4、TextScripts工具ISIS支持自由格式的文本编辑(TextScripts),放置和编辑脚本的步骤如下:

①从工具箱中选择Script图标②在编辑窗口期望Script左上角出现的位置单击,即出现图11-15对话框。③在Text区域键入文本。同时单击Style制表符,用户还可以在对话框中调整脚本的属性。④单击OK按钮,完成脚本的编辑与放置。单击Cancel按钮关闭对话框,并取消对脚本的放置和编辑。图11-15TextScriptsblock对话框5、Bus工具ISIS支持在层次模块间运行总线,同时支持定义库元件为总线型引脚的功能。BUS工具的使用步骤如下:

①从工具箱中选择Bus图标②在期望总线起始端(可为总线引脚、一条已存在的总线或空白处)出现的位置单击。③拖动鼠标,到期望总线路径拐角处单击。④在总线的终点(可为总线引脚、一条已存在的总线或空白处)单击结束总线的放置。若总线的终点为空白处,则先单击,然后结束鼠标结束总线的放置。如图11-16所示。图11-16总线的放置小结:(1)对象类型选择图标:←放置器件:在工具箱选中器件,在编辑窗移动鼠标,点击左键放置器件。←放置节点:当两连线交叉,放置一个节点表示连通。←放置网络标号:电路连线可用网络标号替换,具有相同标号的线是连同的。←放置文本说明:此内容是对电路的说明,与电路的仿真无关。←放置总线:当多线并行时为了简化连线可用总线表示。←移动鼠标:点击此键后,取消左键的放置功能,但仍可以编辑对象。←放置子电路:当图纸较小时,可将部分电路以子电路形式画在另一张图上。←放置图纸内部终端:有普通、输入、输出、双向、电源、接地、总线。←放置器件引脚:有普通、反相、正时钟、负时钟、短引脚、总线。←放置分析图:有模拟、数字、混合、频率特性、传输特性、噪声分析。←放置录音机:可以将声音记录成文件,可以回放声音文件。←放置电源、信号源:有直流电源、正弦信号源、脉冲信号源、数据文件等。←放置电压探针:在仿真时显示网络线上的电压,是图形分析的信号输入点。←放置虚拟设备:有示波器、计数器、RS232终端、SPI调试器、I2C调试器、信号发生器、图形发生器、直流电压表、直流电流表、交流电压表、交流电流表。←放置电流探针:串联在指定的网络上,显示电流的大小。(2)调试对象选择图标:根据上面PROTEUSISIS原理图绘制过程的说明,请读者参考如图11-17所示的80C51A/D转换器原理图自行练习。图11-1780C51A/D转换器原理图图11-17所示A/D转换电路中所需元件名称及信息如表11-1所示。表11-1ADC0809模数转换电路仿真元件信息元件名称所属类所属子类80C51(51系列单片机)MicroprocessorICs8051FamilyCAP(电容)CapacitorsGenericCap-elec(电解电容)Capacitors-Crystal(晶振)Miscellaneous-Res(电阻)Resistors-Pot-hg(滑动变阻器)ResistorsVariableResPack-8(排阻)ResistorsResistorsPacksADC0809(模数转换器)DataCovertersA/DConverters7seg-mpx4-cc-blue(数码管共阴4位)Optoelectronics7-segmentDisplay11.3电路分析与仿真仿真就是利用电子器件的数学模型通过计算和分析来表现电路工作状态的一种手段。具有成本低,设计调试周期短,避免器件浪费等特点。特别适合于实验教学,可在短时间内让读者掌握更多的概念。仿真的真实程度取决于器件模型的逼真程度,一个较好的仿真系统虽不能百分之百替代实际器件的实验,但对实际电路的设计调试是有很多帮组的。

仿真分为实时仿真和非实时仿真。实时仿真是利用虚拟仪器(如信号发生器、示波器、电压表、电流表等)实时跟踪电路状态变化的仿真模式,在这种模式下必须不停地进行分析和计算工作,和实际实验很相似,比较真实,计算工作量大对计算速度有较高的要求,或者说在同样的机器速度下被仿真的电路频率比较低。非实时仿真是将分析计算结果保持下来绘制成图表显示在屏幕上,在观察分析过程中不再进行计算工作。这种方式可以在比较慢的机器上仿真比较高的频率特性,因此分析计算的时间可以被拉长。数字电路的仿真和模拟电路的仿真有很大的不同,数字逻辑电路仿真只在时钟变化时捕捉电路的状态,对信号过冲、信号变形可能忽略而不考虑,计算工作量大大减小,模拟电路在每个信号周期内都要进行多次的计算和分析,所以计算工作量很大,每个周期的计算点数时可以设置的,不要设置的太高。11.3.1实时仿真在电路设计好后,放置信号源,放置虚拟仪器、选择测试点,连接测量仪表的输入端到被测点上,注意信号源要接地,示波器没有接地线,测量结果是相对GND的波形,电压表测量的是两条线之间的电位差,电流表则串接在电路中。电压、电流探针可以作为实时工具,在仿真执行时电压探针显示的是所指的线相对于地线GND的值,电流探针显示的是所指连线的电流,相当于串联在电路中。在Design菜单下,选择ConfigurePowerRails弹出对话框,可以选择所对应的电压(如设置GNDVCC的电压值等),这样可以给调试带来很大的方便。在System菜单下,选择SetAnimationOptions弹出对话框,如图11-18所示,在AnimationOptions栏有四个项:图11-18AnimatedCircuitsConfiguration对话框1)在探针上显示电压和电流。

2)显示引脚逻辑状态,被选中后在仿真时数字电路引脚上会出现一个小方格,表示当前的逻辑状态,蓝色表示低电平“0”,红色表示高电平“1”。3)用颜色显示电压值,被选中后仿真时用线的颜色表示出电压的高低,浅绿颜色表示低电压,深红颜色表示高低压。4)用箭头表示显示电流的方向,被选中后仿真时,线上出现一个箭头表示出电流的方向。当虚拟仪器连接好后,编辑窗口左下角的可以帮助启动仿真过程,所对应的功能分别是:执行、单步执行、暂停、停止。

【例11-1】:简单电路的仿真。

在图11-19所示的电路中,只有两个器件:滑动变阻器(POT-HG,在Resistors库中)、灯(LAMP,在Optoelectronics库中)。画好电路后,点击Generators图标,选择虚拟直流信号源DC加载到电路,单击在电路中放置电流探针,单击在电路中放置电压探针,在System菜单下,选择SetAnimationOptions弹出对话框如图11-18,勾选AnimationOptions下最后两项,(ShowWireVoltagebyColour及ShowWireCurrentwithArrows)。连接好后,在编辑窗口左下角点击,即可仿真运行了。可以看到电路中电流的方向,大小;灯两端电压的高低,点击电阻两端的,可看到电路中各参数的变化。图11-19简单模拟电路的仿真

信号源:直流电压源(DC)、正弦信号源(SINE)、脉冲信号源(PULSE)、积分波形信号(EXP)、频率调试信号(SFFE)、手工勾画任意波形(PWLIN),数据文件波形(FILE)、声音文件波形(AUDIO)等。如图11-20(a)所示。可以使用的虚拟仪表:示波器(OSCILLOSCOPE)、计数器(COUNTERTIME)、RS232终端(VIRTUALTERMINAL)、SPI调试器(SPIDEBUGGER)、I2C调试器(I2CDEBUGGER)、信号发生器(SIGNALGENERATOR)、直流电压表(DCVOLTMETER)、直流电流表(DCAMMETER)、交流电压(ACVOLTMETER)、电流表(ACAMMETER)等。如图11-20(b)所示图11-20Proteus中的信号源及虚拟仪器实时仿真常用工具ISIS系统在实时仿真调试过程中,提供了许多有用的工具,常用工具如下:

图11-21(a)为复位开关,鼠标点击开关接通,放开鼠标开关断开。在开关和继电器(Switching&Relays)库中。

图11-21(b)为乒乓开关,点击接通,再点击断开。在开关和继电器(Switching&Relays)库中。

图11-21(c)为多态开关,点击一次或改变一个状态。在开关和继电器(Switching&Relays)库中。

图11-21(d)为逻辑数据,点击一次或改变状态,启动前可设置为常态。在调试工具(Debuggingtools)库中。

图11-21(e)为逻辑脉冲,点击一次输出一个脉冲,启动前可设置为常态。在调试工具(Debuggingtools)库中。

图11-21(f)逻辑数据产生器,有BCD码和HEX两种。在调试工具(Debuggingtools)库中。图11-21开关、按钮、数据拨码开关

【例11-2】:矩阵键盘的仿真。阵列式键盘,可用来和单片机等可编程器件的连接,通过行或列扫描获得键的位置数据(键值),数据值与键盘上的数字无关。如图11-22所示不难看出:“A”行“3”列交叉的键是“9”。如果将“列线”4、3、2、1分别接单片机p1.7~p1.4,将“行线”d、c、b、a分别接单片机p1.3~p1.0。p1.7~p1.4工作在输入方式,p1.3~p1.0工作在输出方式,则键“9”的编码为:p1.3~p1.0为“1110”,读到的p1.7~p1.4的编码为:“1011”,所以键“9”的编码是:0BEH。

请读者自行分析一下其余15个按键的“键值”分别是多少?图11-224×4矩阵键盘Proteus交互式仿真图11.3.2微处理器的仿真在ProteusISIS系统中对多种微处理器进行仿真,是其最突出的特点。在这个系统中可以通过仿真方式在计算机上执行各种微处理器的指令,并与所连接的接口电路同时仿真实现对电路的快速调试。

【例11-3】:Proteus仿真设计一个八位的抢答器。在本例中用到了数码管、蜂鸣器、三极管、按键这些最普通也是最常用的元器件,也用到了总线和总线分支这种布线方式。我们用80C51单片机的P1口来驱动一个数码管;用P3口作为八个抢答信号的输入端;用P2.0通过三极管Q1来驱动蜂鸣器;用P2.2作为抢答器复位信号的输入端。电路如图11-23所示。图11-23用PROTEUS仿真8位抢答器仿真链接1、元器件的查找和放置如何在Proteus自带的众多的元器件中找到用户需要元器件呢?找到后又如何把它放置在原理图中呢?这是两个很关键也很重要的问题!首先,如果不知道所需的这个元件的英文名称,那么只能耐心地用分类查找的方式进行查找,方法是:在ProteusISIS编辑状态下,单击Library|PickDevice/symbol…P菜单,弹出图11-24所示窗口,这是一个元器件查询窗口,在这个窗口的左侧是元器件分类窗口(category),我们可以在元器件分类窗口中选择元器件的类型,比如数码管在名为:Optoelectronics的这个元器件类型库中,然后在右侧的元器件窗口中选择名为7SG-DIGITAL的数码管,这是一个共阴极红色一位数字的数码管。如果知道所要找的元器件的英文名称什么,那就很简单了。比如按键的英文名称为BUTTON,则只要在图11-24所示窗口的名为Keyword下的文本框中输入BUTTON再敲回车键就可以很快找到这个元件。当找到所需要的元器件后,在图11-24所示的元器件窗口中用鼠标左键双击这个元件名就可以把这个元件加到元件列表窗口中,然后再在元件列表窗口中用鼠标左键单击选中这个元器件,接下来就可以在原理图中单击左键把这个元件放在所要放的位置。图11-24元器件查询窗口2、软件编程设计好了硬件线路之后,接下来就是软件编程的问题。如何编写程序呢?当然需要根据硬件的连接情况和控制要求来编写程序。程序要达到的控制要求是:只要一开电源或者主持人按下复位按键,数码管就显示“0”表示可以开始抢答,一旦有抢答信号,就立即判断出是那一位最先抢答,并把相应的位号送至数码管显示,对其后的抢答信号不再响应,同时蜂鸣器持续间隔鸣响,给出音响提示信号。当主持人按下复位信号后开始下一轮抢答!程序设计流程图如图11-25所示。图11-25抢答器软件流程图现给出参考程序:;八位输入抢答器参考程序清单

ORG0000 JMPBEGIN ;程序开始BEGIN:MOVP2,#0FFH ;P2口置高电平,准备接收信号。 MOVR4,#0 ;“R4”的位标志值清零。 MOVA,R4 ;“R4”位标志值送A寄存器AGAIN:MOVDPTR,#TABLE;共阴极数码管代码表首址送DPTR MOVCA,@A+DPTR;取出显示”0”的代码送P口显示 MOVP1,A LOOP:MOVA,P3;接收P3口的抢答信号。 CPLA;抢答信号求反 JZLOOP;如果没有抢答信号再返回LOOP继续扫描LOOP1:RRCA ;有抢答信号则逐次移动判断是那一位抢答INCR4 ;每移一次位,R4位标志值加1JNCLOOP1 ;如果没有遇到抢答信号返回LOOP1继续移位MOVA,R4 ;遇到抢答信号把R4位标志的只送AMOVCA,@A+DPTR;找到相应位的显示代码MOVP1,A ;送P1口显示LOOP2:JNBP2.2,BEGIN;若主持人按了复位信号健则转向程序复位CPLP2.0;若没按复位信号键,则通过P2.2给出高低信号驱动蜂鸣器MOVR5,#20 ;准备调用20次延时20ms程序LCALLDELAY ;调用延时程序SJMPLOOP2 ;P2.2口反复间隔0.4秒变化,驱动蜂鸣器DELAY:MOVR6,#50;延时R5×20ms子程序D1:MOVR7,#100DJNZR7,$DJNZR6,D1DJNZR5,DELAYRETTABLE:;共阴极数码管代码表DB3FH,06H,5BH,4FH,66H;01234DB6DH,7DH,07H,7FH,6FH ;46789DB77H,7CH,0B9H,5EH,79H,71h ;ABCDEFEND3、对微处理器程序的处理分为以下几个步骤:(1)添加源程序打开主菜单的Source其中有添加删除程序、选择代码生成工具、设置外部文本编辑器、建立所有文件等四个选项:

点击添加/删除源代码,出现图11-27所示对话框:在SourceCodeFilename中输入源程序的文件名。图11-27添加源文件和选择代码生成工具窗口←添加/删除源代码。←选择代码生成工具←选择外部源文件编辑器←重构所有文件(编译源文件)(2)设置外部文件编辑器是为了选择汇编语言的编辑工具,系统隐含的是PROTEUS系统自带的一个工具(SRCEDIT.EXE)。如果不喜欢可以修改,通过浏览按钮找到自己喜欢使用的文本编辑工具。操作如下:

①点选Source→SetupExternalTextEditor命令②系统弹出SourceCodeEditorConfiguration对话框。点选“Browse”按钮,并使用文本选择器定位文本编辑器的可执行文件,这里我们选用“UltraEdit”作为编辑器。如图11-28所示。③双击“Uedit32”文件,此时文件的路径将显示在Executable中,如图11-29所示。

定义代码编译工具:根据微处理器的语言类型不同选择合适的编译系统,当按下重构所有的选项时利用这个工具将汇编语言文本翻译成机器代码(.HEX)文件。点击source|DefineCodeGenerationTools…,出现图11-30所示对话框。图11-30使用第三方编译工具设置图11-28选择第三方编辑器图11-29使用第三方编辑工具设置(3)编译程序如果使用系统提供的编辑、编译工具,当添加文件后在Source菜单下就会出现选择的文件名,点击文件名就会打开编辑器,提供文件修改功能,完成修改后,选择重构所有的选项(buildall),如果文件无错误就产生了.HEX文件。如果设置成不使用系统提供的工具后,Source下的所有功能将不需要。可利用读者熟悉的编译工具,将源程序汇编(编译)成.hex文件(4)添加和执行程序按照图11-23所示,在ISIS中画好电路后,移动鼠标到要选中U1(微处理器AT89C52)上点击左键,U1变成红色表示被选中,再点击鼠标左键弹出如下对话框。在程序文件下选择所需要的程序文件(.HEX),选择合适的工作频率即可确认,如图11-31所示。点击编辑窗口下的仿真按钮,程序便可以执行了。或者选择调试菜单Debug下的执行功能即可执行。仿真结果如图11-32所示,是K5键最先按下,LED上显示5,蜂鸣器“嘟嘟”不停的叫,等待主持人使用的K9键按下,抢答器复位。图11-32抢答器仿真后的结果图11-31单片机添加程序窗口需要说明的是大多数专业编译器和汇编程序都有完整的集成开发环境IDE。如IAR’sEmbeddedWorkbench、Keil’suVision3、Microchip’sMP-LAB和Atmel’sVARstudio。如果用户使用上述任意一种工具开发源代码,可以很容易在IDE中进行编辑,生成可执行文件(如HEX或BIN或CODE文件)后切换到ProteusVSM,然后进行仿真。11.4KeilC51集成开发环境

KeilC51是目前世界上最优秀、最强大的51系列单片机开发应用平台之一,它集成编辑、编译、仿真于一体。支持汇编语言、C语言的程序设计,界面友好,易学易用。它内嵌的仿真调试软件可以让用户采用模拟仿真和实时在线仿真两种方式对目标系统进行开发。仿真时,除了可以模拟单片机的I/O口、定时器、中断外,甚至可以仿真单片机的串行通讯。

51系列单片机使用Keil工具开发项目和其他软件工具开发项目极其相似:

(1)创建一个项目,从器件库中选择目标器件配置工具设置。(2)用C或汇编语言创建源程序。(3)用项目管理器生成用户应用。(4)修改源程序中的错误。(5)测试连接应用。KeilC51集成开发环境的Demo版软件可以在的相关网页下载。之后打开KeilC51文件,并双击Setup.exe进行安装。提示选择Eval(评估)或Full(完全)方式时,选择Eval方式安装,不需要注册码,但有2KB大小的限制。如果用户购买了完全版的Keilc51软件(也可以通过其他途径得到),则选择Full安装,代码量无限制。安装结束后,如果用户想在中文环境使用,可下载并安装KeilC51的汉化软件,并将汉化软件的中的uv3.exe复制并粘贴到keil\uv3目录下,并替换原先的文件即可(本书选用keiluVision2)。完成安装并启动KeilC51后,即可在图11-33所示的窗口中完成程序的开发。图11-33KeiluVision3IDE的主界面11.4.1建立一个Keilc51程序现通过建立一个简单的LED流水灯的例子来初步学习keilc51的基本用法。硬件参考电路如图11-34所示。图11-34流水灯(跑马灯)电路仿真链接

●启动KeilC51软件。通过双击电脑桌面上的KeiluVision2快捷方式图标来启动。

●新建工程。执行KeilC51软件的菜单Project|NewProject…,弹出一个名为CreateNewProject的对话框。如图11-35所示,先选择一个合适的文件夹准备来存放工程文件,比如E:\Project\LedFlash,其中LedFlash是新建的文件夹。建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。最后,为工程取名为LedFlash,并保存。

●选择CPU。紧接着,KeilC51提示选择CPU器件。8051内核单片机最早是由鼎鼎大名的Intel公司发明的,后来其他厂商如Philips、Atmel、Winbond等先后推出其兼容产品,并在8051的基础上扩展了许多增强功能。在这里可以选择Atmel公司新推出89S52参见图11-36。图11-36为项目选择CPU器件图11-35新建KeilC51工程接下来弹出一个如图11-37所示的对话框。该对话框提示用户是否要把标准8051的启动代码添加到工程中去。KeilC51既支持C语言编程也支持汇编语言编程。如果打算用汇编语言写程序,则应当选择“否(N)”。如果打算用C语言写程序,一般也选择“否(N)”,但是,如果用到了某些增强功能需要初始化配置时,则可以选择“是(Y)”。在这里,我们选择“否(N)”,即不添加启动代码。至此,一个空的KeilC51工程建立完毕。图11-37选择是否要添加启动代码执行菜单File|New…,出现一个名为Textn(其中n表示序号)的文档。接着执行菜单File|Save,弹出一个名为SaveAs的对话框。将文件名改为main.c,然后保存,参见图11-38。注意:扩展名“.c”不可省略。添加源程序文件到工程中。现在,一个空的源程序文件main.c已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系。我们需要把它添加到工程中去。单击KeilC51软件左边项目工作窗口“Target1”上的“+”,将其展开。然后右击“SourceGroup1”文件夹,会弹出如图11-39所示的选择菜单。单击其中的“AddFilestoGroup‘SourceGroup1’”项,将弹出如图11-40所示的对话框。图11-38保存新建的源程序文件“.c”不可省略图11-39准备添加源程序文件到工程中图11-40向工程中添加源程序文件现在开始输入源程序。先最大化“main.c”源程序窗口,然后请按下面给出的参考程序清单11.1输入程序代码。程序清单11.1

#include<reg51.h> #defineucharunsignedchar #defineuintunsignedint

ucharcodedisplay[72]={ 0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF, 0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x00, 0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFF, 0xFC,0xF9,0xF3,0xE7,0xCF,0x9F,0x3F, 0x9F,0xCF,0xE7,0xF3,0xF9,0xFC,0xFF, 0xE7,0xDB,0xBD,0x7E,0xBD,0xDB,0xE7,0xFF, 0xE7,0xC3,0x81,0x00,0x81,0xC3,0xE7,0xFF, 0xAA,0x55,0x18,0xFF,0xF0,0x0F, 0x00,0xFF,0x00,0xFF};voiddelayms(uint);//延时函数的声明voidmain(void){uchari;while(1){for(i=0;i<72;i++){P1=display[i];delayms(350);//延时,设实参为350}}//endofwhile}//endofmainvoiddelayms(uintms)//延时子程序{uchark;while(ms--){for(k=0;k<120;k++);}}单击KeilC51工具栏的“”图标,弹出名为OptionsforTarget‘Target1’的对话框。单击Output标签页,选中CreateHEXFile项,然后“确定”。参见图11-41。图11-41编译环境设置单击工具栏的按钮“”编译当前源程序。编译结果会显示在输出窗口内。如果是“0Error(s),0Warning(s).”就表示程序没有问题了(至少是在语法上不存在问题了)。如果存在错误或警告,请仔细检查程序是否与参考程序清单一致。修改后,再编译,直到通过为止。编译后的结果会生成IntelHEX格式的程序LedFlash.hex文件。该文件可以被专门的芯片烧写工具(编程器)载入并最终烧录到具体的芯片中。如果用PROTEUS做仿真调试,可按图11-32跑马灯电路在PROTEUSISIS平台下画好电路,鼠标指向微处理器89C52,右键点击,这时89C52变红色,左键点击,弹出对话框,在ProgramFile:栏选择刚才生成的LedFlash.hex,点击OK键,如图11-42所示。点击控制按钮“”中的“”即可进行仿真了。图11-42在PROTEUSISIS下给单片机添加程序11.4.2新建A51汇编工程KeilC51软件也支持A51汇编语言编程。建立A51工程的操作步骤与建立C51工程基本相同,但有两个要点请注意:

新建的源程序文件名要以“.A51”或“.ASM”作为后缀。A51源程序添加到工程中时,文件类型要选择“AsmSourcefile(*.s*;*.src;*.a*)”。如图11-43所示。其它操作步骤都跟建立C51工程相同。有兴趣的读者,请按如下程序清单输入程序代码图11-43向工程中添加汇编语言源程序文件程序清单如下:

ORG 0000H AJMP MAIN ORG 0030HMAIN: MOVP1,#0FFH;;closedisplayMOVr2,#low(LEDCODE1-LEDCODE)MOVDPTR,#LEDCODELOP1:MOVA,#0MOVCA,@A+DPTRCPLAMOVP1,ALCALLDELAYINCDPTRDJNZR2,LOP1LJMPMAIN

;延时子程序

DELAY: MOVR7,#0FAHDELAY_1: MOVR6,#0FAHDELAY_2: NOP NOP NOP NOP NOP DJNZ R6,DELAY_2 DJNZ R7,DELAY_1 RETLEDCODE:DB81H,42H,24H,18H,00H;;--><---DB18H,24H,42H,81H,00H;;<----->DB80H,40H,20H,10H,08H,04H,02H,01H,00H;;|----->DB01H,02H,04H,08H,10H,20H,40H,80H,00H;<------|DB80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,00HDB0FFH,0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,00HDB01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,00HDB55H,55H,0AAH,55H,0AAH,00HLEDCODE1:DB00HEND11.5在KeilC51下调试程序

KeilC51的调试功能非常强大,本节我们先做一个初步了解,等以后再慢慢体会。现在仍然以LED跑马灯程序为例,来具体了解如何进行仿真操作。11.5.1进入仿真状态如果程序编译通过,就可以仿真了。在仿真之前,有一项参数最好配置一下,仍然按“”图标进入编译环境设置,找到“Xtal(MHz)”项,填入11.0592。最后点击“确定”。进入仿真状态很简单,直接点击工具栏红色的“”图标。11.5.2认识各个仿真窗口1、源程序窗口KeilC51调试界面的中间是源程序窗口,参见图11-44所示。黄色箭头“”所指为当前即将执行但还没有执行的代码。以深灰色标记的程序行是可以执行的代码(当然,在调试过程中未必一定要去执行)。以浅灰色标记的程序行不可作为代码来执行,它们是注释、空行、标号或ROM数据表。以绿色标记的程序行表示曾经执行过的代码。2、寄存器窗口KeilC51调试界面的左边是寄存器窗口,参见图11-45所示。8051的工作寄存器(R0~R7)和系统寄存器(a、b、sp、dptr、PC、psw)都列出来了。Value栏显示的是寄存器的当前数值。如果在调试过程中某个寄存器的值有变化,则会用蓝色的背景标记。单击psw寄存器左边的“+”,展开后还可以看到其每一位的情况。图11-44KeilC51源程序窗口图11-45KeilC51寄存器窗口3、汇编窗口单击工具栏的“”图标,源程序窗口会自动切换成汇编窗口,参见图11-46所示。在汇编窗口里,我们可以看到每条指令的存储地址和编码等信息。再次单击“”,回到源程序窗口。4、存储器窗口单击工具栏的“”图标,将显示出存储器窗口,参见图11-47所示。8051单片机的存储器分为多个不同的逻辑空间。如果要观察代码存储器的内容,就在地址栏Address:内输入C:地址,例如:C:0000H。同理,观察内部数据存储器输入I:地址,观察外部数据存储器输入X:地址。拖动存储器窗口右边的滚动条可观察其它存储单元。存储器窗口有“Memory#1~Memory#4”共4个观察子窗口,可以用来分别观察代码存储器、内部数据存储器和外部数据存储器。存储器的内容是可以修改的。用鼠标右击打算要修改的存储单元,选择ModifyMemoryat…项,弹出修改对话框,可以随意修改存储单元的内容。图11-46KeilC51汇编窗口图11-47KeilC51存储器窗5、变量观察和堆栈窗口

单击工具栏的“”图标,将显示变量观察和堆栈窗口(Watch&CallStackWindow),参见图11-48。在Locals标签页,会自动显示局部变量的名称和数值。在C语言程序的函数中,每一对花括号“{}”内定义变量都是局部变量,能够自动显示。在“Watch”标签页内,先用鼠标点击一次“typeF2toedit”,再按功能键“F2”,输入所要观察的局部或全局变量的名称,回车后就能显示出当前数值。在“CallStack”标签页内,可以实时地观察到堆栈的使用情况。图11-48KeilC51变量观察和堆栈窗口11.5.3程序的运行控制KeilC51能够实现程序单步和全速运行,具体由工具栏上的按钮来实现:

复位按钮“”:单击此图标,能够使程序复位,程序将从地址C:0000H处执行。

全速运行“”:单击此图标,能够使程序全速运行。

停止运行“”:该图标原来是灰色(不可操作),在进入全速运行状态后会变成红色。如果要停下来,则可以按此图标。

单步进入“”:按此图标可以实现程序的单步执行。在遇到函数调用时,会跟踪进入函数体。

单步跳过“”:单步执行,遇到函数时视作“1条指令”来执行,不会跟踪进入。

单步跳出“”:在调试C语言程序时,如果希望从某个函数中提前返回,则可以按此图标。

执行到光标“”:用鼠标单击某条可执行的代码(深灰色标记的程序行)。然后按此图标,则程序开始全速执行,当遇到光标所在的行时,会自动停下来。如果单击不可执行的程序行(有浅灰色标记),试图让程序执行到该行,是不允许的,“”图标也会立即变成灰色,不让您操作。

设置/清除断点“”:KeilC51支持断点设置功能。单击需要设置断点的行,再单击此图标,我们会看到该行被一个红色的小方块标记。当程序全速运行时遇到断点,便会自动停下来。KeilC51允许在同一个程序里设置多个断点。清除某个断点的方法是,将光标停在该行上,再按一次“”图标。另外一种设置/清除断点的快捷方法是,用鼠标在目标程序行的空白处双击,您不妨试一试。

清除所有断点“”:如果设置了多个断点,想一并清除,则可以按此图标。11.5.4外围设备访问

KeilC51的一大特色是在仿真调试时支持对外围设备的访问。单击菜单“Peripherals”,会弹出外围设备菜单。在Peripherals菜单里列出了标准8051的外围设备(相对于CPU内核而言):中断、I/O端口、串行口和定时器等。现在执行菜单“Peripherals|I/O-Ports|Port1”,弹出P1端口的界面。在位0~7中,用√表示高电平,无√表示低电平。执行菜单“Peripherals|Timer|Timer0”,弹出定时器T0的界面。参见图11-49所示。弹出的外围设备菜单是可以操作的,不妨试试。图11-49外围设备中的P1和T0对话框11.6Protues6.9与keilC51V7.50的联调11

温馨提示

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

评论

0/150

提交评论