首页 [优质文档]proteus软件仿真教程

[优质文档]proteus软件仿真教程

举报
开通vip

[优质文档]proteus软件仿真教程[优质文档]proteus软件仿真教程 我的毕业论文(二):Keil软件的基本用法 2007年07月02日 星期一 13:11 Keil μVision是Keil公司(ARM子公司)开发的一款用于MCS-51单片机开发的应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序等。Keil软件功能强大,包含很多部分,本文我们主要使用Keil μVision来开发C51项目、调试程序并生成HEX文件来用于单片机开发。Keil μVision是一款...

[优质文档]proteus软件仿真教程
[优质文档]proteus软件仿真教程 我的毕业论文(二):Keil软件的基本用法 2007年07月02日 星期一 13:11 Keil μVision是Keil公司(ARM子公司)开发的一款用于MCS-51单片机开发的应用十分广泛的编译和调试软件。该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序等。Keil软件功能强大,包含很多部分,本文我们主要使用Keil μVision来开发C51项目、调试程序并生成HEX文件来用于单片机开发。Keil μVision是一款在Windows下使用的集成开发环境,目前最新版本为V3,本文中我们为了简便选用V2.0。 下面我们就来熟悉一下Keil软件。 首先安装软件,它的安装与MedWin一样简单,我们不做过多介绍。 安装完成后,我们就可以使用软件了,打开软件,我们可以看到其界面,如下图所示: 下面我们就来使用Keil软件开发我们的第一个项目。点击“Project”(工程)菜单下面的“New Project”(新建工程),我们来新建一个工程。软件弹出“Create New Project”(创建新工程)窗口。如下图所示: 我们为工程输入文件名后,点击“保存”按钮,软件将弹出“Select Device or Target”(选择MCU)窗口,如下图所示。我们只需根据自己工程的需要选择相应的MCU,然后点击“确定”按钮就可以了。 在这里我们选择Atmel公司的AT89C51,这种类型的单片机与Intel的8051单片机完全兼容,但是它内含4KB lash存储器,使用非常方便, 而且在我国也较为流行。事实上,目前AT89C51已经被AT89S51所淘汰,因为AT89S51加入了ISP(在线可编程)功能,通过Atmel公司或者自制的下载线就可以对片内lash进行编程,使用更为方便。然而AT89S51与AT89C51除了ISP以外完全兼容,而且下面我们要说明的Proteus软件目前只能支持AT89C51,所以本文将以AT89C51来代替8051使用,请大家注意。 选择好相应的MCU,点击窗口中的“确定”按钮以后,软件会弹出一个窗口询问是否将8051启动代码加入工程(如下图),由于我们不需要这段代码,所以我们点击“否”跳过就可以了。 至此,我们完成了整个工程的初步建立。下面我们需要做的就是创建源文件并将我们的源文件加入工程。 首先点击“ile”下面的“New”菜单,或者直接点击工具栏中的新建按钮,软件将弹出源文件编辑窗口,我们可以在窗口中编辑源文件。编辑好的源文件如下图所示。 接下来的操作有两点需要注意: 1、加入AT89C51的头文件(当然,如果你选择了其他的MCU,则加 入相应的头文件): 在要加入头文件的地方(一般是文件开头),点击右键,选择点击弹出菜单(如下图)中的“Insert „#include ?”即完成了头文件的添加。我们可以看到源文件中多了一行头文件包含代码“#include ”。 2、 保存源文件: 注意保存源文件时所书写的源文件扩展名决定了源文件的类型 (C51文件或者汇编语言源文件)。这里我们将源文件保存为“main.c”。你可以看出在源文件保存以后,文件中的关键字已经高亮显示,可以帮助我们及时发现错误。 源文件编辑好以后,我们就可以将其添加到工程中了。 如下图所示,右键点击“Project Workspace”窗口中的“Source Group 1”(如果你不能看到这个项目,你可以点击一下图中“Target 1”前面的“+”号展开文件夹),这时软件将弹出如图所示的菜单。我们选择“Add iles to Group „Source Group 1?”,软件弹出添加源文件窗口,我们就可以将相应的源文件加入到工程了。 下面我们还需要对工程作一些设置,以使其满足我们的要求。 右键点击上图中的“Target 1”,软件将弹出工程菜单,如下图所示。我们选 择点击“Options or Target „Target1?”,软件将弹出工程设置窗口。在工程设置中其他的我们暂时不管,只需将“Output”选项卡下面的“Create HEX ile”选中就可以了,如下图所示。这样,当我们调试工程项目时,软件将能够生成HEX文件,用来装入单片机,使之运行我们的指令。 设置好以后,我们就可以编译、链接、调试我们的工程项目了。 首先让我们来熟悉一下调试工具栏。在这个工具栏中我们只需了解左边的三个按钮。其中,调试工具栏中最左侧的按钮是“Translate current ile”按钮,即编译按钮,用来编译当前文件;中间的按钮是“Build target”按钮,即建立工程按钮,用来编译、连接当前的工程,产生相应的工程目标文件,比如HEX文件;最右侧的按钮是“Rebuild all target iles”按钮,即全部重建按钮,主要在工程文件有改动时使用,作用是全部重建整个工程,产生相应的目标文件。 在整个工程生成HEX文件以后,我们在Keil中的任务就算完成了。 当然,你可以在Keil中进行各种调试。事实上,Keil的功能十分强大,它能仿真单片机的各种功能。但是我们在此并不讨论它的这些功能。 如果你想深入地学习Keil的各种功能和使用方法,请参阅相关参考文献。 我的毕业论文(三):Proteus软件使用简介 Proteus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。 本文中由于我们主要使用Proteus软件在单片机方面的仿真功能,所以我们重点研究ISIS模块的用法,在下面的内容中,如不特别说明,我们所说的Proteus软件特指其ISIS模块。 在进行下面的操作前,我先说明一点:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你发现在鼠标操作上会略有不同。这主要表现在6.9以前的版本鼠标左右键的作用与一般软件刚好相反,而7.0以后已经完全改过。 下面我们首先来熟悉一下Proteus的界面。Proteus是一个标准的Windows窗口程序,和大多数程序一样,没有太大区别,其启动界面如下图所示: 如图中所示,区域?为菜单及工具栏,区域?为预览区,区域?为元器件浏览区,区域?为编辑窗口,区域?为对象拾取区,区域?为元器件调整工具栏,区域?为运行工具条。 下面我们就以建立一个和我们在Keil简介中所讲的工程项目相配套的Proteus工程为例来详细讲述Proteus的操作方法以及注意事项。 首先点击启动界面区域?中的“P”按钮(Pick Devices,拾取元器件)来打开“Pick Devices”(拾取元器件)对话框从元件库中拾取所需的元器件。对话框如下图所示: 在对话框中的“Keywords”里面输入我们要检索的元器件的关键词, 比如我们要选择项目中使用的AT89C51,就可以直接输入。输入以后 我们能够在中间的“Results”结果栏里面看到我们搜索的元器件的结果。 在对话框的右侧,我们还能够看到我们选择的元器件的仿真模型、引脚以及PCB参数。 这里有一点需要注意,可能有时候我们选择的元器件并没有仿真模型,对话框将在仿真模型和引脚一栏中显示“No Simulator Model”(无仿真模型)。那么我们就不能够用该元器件进行仿真了,或者我们只能做它的PCB板,或者我们选择其他的与其功能类似而且具有仿真模型的元器件。 搜索到所需的元器件以后,我们可以双击元器件名来将相应的元器件加入到我们的文档中,那么接着我们还可以用相同的方法来搜索并加入其他的元器件。当我们已经将所需的元器件全部加入到文档中时,我 们可以点击“OK”按钮来完成元器件的添加。 添加好元器件以后,下面我们所需要做的就是将元器件按照我们的需要连接成电路。首先在元器件浏览区中点击我们需要添加到文档中的元器件,这时我们就可以在浏览区看到我们所选择的元器件的形状与方向,如果其方向不符合你的要求,你可以通过点击元器件调整工具栏中的工具来任意进行调整,调整完成之后在文档中单击并选定好需要放置的位置即可。接着按相同的操作即可完成所有元器件的布置,接下来是连线。事实上Proteus的自动布线功能是如此的完美以至于我们在做布线时从来都不会觉得这是一项任务,而通常像是在享受布线的乐趣。布线时我们只需要单击选择起点,然后在需要转弯的地方单击一下,按照你所需走线的方向移动鼠标到线的终点单击即可。本例我们布线的结果如下图所示(仿真我们在上面的Keil操作介绍中的简单例子)。 因为该工程十分简单,我们没有必要加上复位电路,所以这点在图中予以忽略,请大家注意。除此以外,你可能还发现,单片机系统没有晶振,这一点你需注意。事实上在Proteus中单片机的晶振可以省略,系统默认为12MHz,而且很多时候,当然也为了方便,我们只需要取默认值就可以了。 下面我们来添加电源。先说明一点,Proteus中单片机芯片默认已经添加电源与地,所以我们可以省略。然后在添加电源与地以前,我们先来看一下上面第一个图中区域?的对象拾取区,我们在这里只说明本文中可能会用得到的以及比较重要的工具。 l:(Selection Mode)。选择模式,通常情况下我们都需要选中它,比如布局时和布线时。 l :(Component Mode)。组件模式,点击该按钮,能够显示出区域?中的元器件,以便我们选择。 l :(Wire Label Mode)。线路标签模式,选中它并单击文档区电路连线能够为连线添加标签。经常与总线配合使用。 l :(Text Script Mode)。文本模式,选中它能够为文档添加文本。 l :(Buses Mode)。总线模式,选中它能够在电路中画总线。关于总线画法的详细步骤与注意事项我们在下面会进行专门讲解。 l :(Terminals Mode)。终端模式,选中它能够为电路添加各种终端,比如输入、输出、电源、地等等。 l :(Virtual Instruments Mode)。虚拟仪器模式,选中它我们能够在区域?中看到很多虚拟仪器,比如示波器、电压表、电流表等等。关于它们的用法我们会在后面的相应章节中详细讲述。 好了,下面我们就来添加电源。首先点击,选择终端模式,然后在元器件浏览区中点击POWER(电源)来选中电源,通过区域?中的元器件调整工具进行适当的调整,然后就可以在文档区中单击放置电源了。放置并连接好线路的电路图一部分如下图: 连接好电路图以后我们还需要做一些修改。由上图我们可以看出,图中的R1电阻值为10k,这个电阻作为限流电阻显然太大,将使发光二极管D1亮度很低或者根本就不亮,影响我们的仿真结果。所以我们要进行修改。修改方法如下:首先我们双击电阻图标,这时软件将弹出 “Edit Component”对话框(见下图所示的对话框),对话框中的“Component Reerer”是组件标签之意,可以随便填写,也可以取默认,但要注意在同一文档中不能有两个组件标签相同;“Resistance”就是电阻值了,我们可以在其后的框中根据需要填入相应的电阻值。填写时需注意其格式,如果直接填写数字,则单位默认为Ω;如果在数字后面加上K或者k,则表示kΩ之意。这里我们填入270,表示270Ω。 修改好各组件属性以后就要将程序(HEX文件)载入单片机了。首先双击单片机图标,系统同样会弹出“Edit Component”对话框,如下图。在这个对话框中我们点击“Program iles”框右侧的,来打开选择程序代码窗口,选中相应的HEX文件后返回,这时,按钮左侧的框中就填入了相应的HEX文件,我们点击对话框的“OK”按钮,回到文档,程序文件就添加完毕了。 装载好程序,我们就可以进行仿真了。首先来熟悉一下上面第一个图中区域?的运行工具条。因为比较简单,我们只作一下介绍。 工具条从左到右依次是“Play”、“Step”、“Pause”、“Stop”按钮,即运行、步进、暂停、停止。下面我们点击“Play”按钮来仿真运行,效果如下图所示,可以看到系统按照我们的程序在运行着,而且我们还能看到其高低电平的实时变化。如果我们已经观察到了结果就可以点击“Stop”来停止运行。 我的毕业论文(四):计算机仿真辅助单片机指令系统的学习 2007年07月04日 星期三 14:41 计算机仿真对单片机指令系统的学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看到结果。 1.数据传送指令: 数据传送类指令主要包括:MOV、MOVX、MOVC、PUSH、POP、XCH等。 下面我们通过一个简单的汇编程序来学习这些指令。 例1.汇编语言源文件如下图所示: 在MedWin中编辑好源文件以后,以“.asm”为后缀保存为汇编源文件。然后进行编译、汇编并将代码装入内存进行仿真。由于本程序对寄存器、特殊功能寄存器、内部存储器、外部数据存储器都进行了操作,所以需要首先点击“查看”菜单下的相应子菜单打开相应的窗口,即寄存器、特殊功能寄存器、数据区IData、数据区XData,并可以根据需要点击“窗口”菜单下的选项来横向或纵向平铺窗口。 因为本程序需要一步一步地详细查看相应指令执行的结果,所以我们需要在执行指令时点击“指令跟踪(7)”或“指令单步(8)”按钮来单步执行。 指令执行中的一个画面如下图所示: 从图中我们能够清晰地观察到每一条指令执行的每一个结果,从而加深我们对这些指令的理解与记忆。 除以上实例程序中所书写的以外,我们还可以使用其他的指令书写程序并在MedWin中仿真,比如PUSH、POP、MOVC等,相信你会得到一个很好的结果,而且MedWin肯定会提高你学习指令的兴趣。 2.算术操作类指令 算术操作类指令主要有:ADD、ADDC、DA A、SUB、INC、DEC、MUL、DIV等。 算术操作类指令比较复杂,掌握起来比较困难,但在实际的单片机项目应用中很少涉及,尤其是MUL、DIV两条指令,在51系列单片机 中更是被束之高阁,很少使用。 此处,我们不再像上节那样逐条书写并仿真课本上的程序,如果感兴趣,你可以仿照上节自己书写程序并进行仿真,观察并体会每一条指令执行的结果以及对系统的影响。这里我们通过一个比较实用的例子来演示仿真算术类指令的操作。 例2.两个压缩BCD码求和:将两个BCD码(每个占4位)分别放在一个字节的高4位和低4位即组成压缩BCD码。本例中有两个压缩BCD码数字,都是四位数,第一个数的高两位放在20H,低两位放在21H中;第二个高低位分别放在30H、31H中。要求所得结果放在40H、41H中。 汇编源程序如下图: 在MedWin中编辑好源文件后,以“.asm”为后缀将其保存为汇编文 件,然后进行编译、汇编并将代码装入内存进行仿真。你可以像上例那样步进观察其详细执行过程, 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 原因;当然也可以在“ljmp $”处设置断点,然后全速运行。需要注意程序中使用到了内部存储器,所以你需要将数据区“IData”窗口调出来进行观察。运行的最后结果如下图所示: 从图中我们能够很清楚地看到内部存储器相应单元的内容,进而观察到程序执行的结果,即:2097+4559=6656。 3.逻辑运算指令、控制转移类指令 逻辑运算指令,顾名思义,是用于逻辑运算的指令。主要包括:CLR、CPL、ANL、ORL、XRL等常用逻辑指令以及循环移位指令如:RL、RLC、RR、RRC等。 控制转移类指令是指在程序中根据具体的条件(或者没有条件)使程序转移到相应的入口的指令。它主要包括三类指令:一是无条件转移指令,比如:AJMP、SJMP、LJMP等;二是条件转移指令,比如:JZ、CJNE、DJNZ等;三是子程序调用返回指令,比如:ACALL、LCALL、RET、RETI等。 鉴于单独针对逻辑运算指令进行的仿真十分简单(事实上与数据传 送类指令相同),可以很容易、很方便地自己针对相应的指令设计程序来观察结果,进行学习。所以此处不再针对逻辑运算指令举例仿真。而控制转移类指令又不可能单独使用,往往与其他指令结合使用来组成相应的程序,所以也无法单独进行仿真。所以下面我们就将逻辑运算类指令与控制转移类指令相结合来编写仿真程序,通过一个实例同时来仿真这两类指令的应用。 例3.十六进制整数转化为BCD码整数:4位十六进制整数高低位依次放在R3、R4中,要求转换后的BCD整数按高低位顺序放在R5、R6、R7中。 程序源文件如下图: 在MedWin中编辑好源文件以后,将其以“.asm”为后缀保存为汇编源文件,然后编译、汇编并将产生的代码装入内存进行仿真调试。仿真前需要注意首先输入R3、R4设置十六进制初始值,具体设置方法如下。首先调出寄存器窗口,然后在需要修改的寄存器名称或者数值上双击,这时其内容将变为可修改,我们在其中填入需要设置的数值(字母大小写均可)即可,如下图所示: 设置好初始值以后,你可以单步观察几步以便明白其原理,然后就可以设置一个断点全速运行了,最后就可以看到所得到的结果,比如我们输入8D6,将得到结果:R5=03,R6=68,R7=22。 4.位操作指令 位操作比较简单,我们也不再写实例进行仿真,如果你感兴趣,可以自己写一些针对相应指令的小程序来仿真之。 这里我们主要说明一下仿真位操作指令与其他指令的不同及注意事项。 位操作指令是对单片机内部存储器的位地址空间进行的相应操作,所以我们查看相应结果时应该打开相应窗口。单片机的位地址空间可以 这样来打开:点击“查看”菜单下面的“数据区 Bit”子菜单。位地址空间窗口如下图所示: 除此之外,在相应的位操作中如果我们需要查看各种位标志时,可以点击上图中下侧的“位”标签,将“字节”标签换过来进行查看。 我的毕业论文(五):Proteus仿真辅助定时器/计数器的学习 2007年07月05日 星期四 14:23 MCS-51系列单片机内部有两个定时器/计数器T0、T1,它们都具有两种工作模式(定时器和计数器)以及四种工作方式(方式0、1、2、3)。 定时器/计数器T0由特殊功能寄存器TH0和TL0构成,T1由特殊功能寄存器TH1和TL1构成。除此之外,与定时器/计数器有关的特殊功能寄存器还有工作方式控制寄存器TMOD和控制寄存器TCON。关于它们的详细内容和具体应用请参阅相关参考文献,此处不做探讨。 由于定时器/计数器T0与T1用法几乎完全相同,所以下面的例子中我们将全部使用T0。而且定时器/计数器方式0和方式3较少使用, 因此我们也将主要仿真说明其方式1和2的用法,另外我们还会给出一种其计数器的用法。 例1.定时器/计数器T0工作于定时器模式方式1,在P1.0端口产生周期为100ms的方波。 首先计算计数初值:周期为100ms,定时应为50ms(半个周期)。一个计算公式为: 16计数初值=2-t×/12 其中t为定时时间(单位为s),为单片机的时钟频率(单位为MHz)。 16所以,计数初值为2-0.05×12M/12=15536=3CB0H。因此,TH0的初值应为3CH,TL0的初值应为B0H。 因此,此例的源代码如下图: 在MedWin中将源文件编辑完成以后,保存为汇编源文件并编译、汇编产生源代码(.HEX文件)。 下面我们在Proteus中设计电路,此例电路也比较简单,只需在AT89C51单片机的P1.0口连上一个示波器来观察产生的相应波形就可以了。选择示波器时要注意首先在前面的文章“我的毕业论文(三):Proteus软件的基本用法”中第一个图:Proteus界面里面的区域?点击按钮选择虚拟仪器模式,然后在区域?中选择“OSCILLOSCOPE”(示波器)。 完成的电路图如下图所示: 构建好电路图以后,下面就可以为单片机添加程序代码(.HEX文件)了。双击单片机图标,添加上面的源文件所生成的程序代码,添加好以后,接着就可以进行下面的仿真。点击运行按钮,系统就运行了起来,我们可以适当调整示波器面板上的按钮来使波形最有利于我们观察。调整好以后,系统产生的波形效果如下图所示: 如果你的Proteus版本是7.0以前的版本,那么你的示波器和波形效果可能与图中略有不同,但并不影响仿真效果;如果是最新版本,则应该完全相同。 从图中我们能够看出,波形的周期为100ms,这与我们设定的目标相一致;而其幅值则近似为5V。 例2.设计一个延时程序,延时500ms。为了能够清晰地看到延时效果,我们设计在P1.0口连接一个LED发光二极管,使其使用该延时程序每500ms闪烁一次。 通常情况下,为了简便,人们会使用软件延时,即通过执行一段没有意义的程序来达到延时的目的。但那样做会浪费系统资源,使得系统在延时过程中不能响应任何外部或内部事件。所以,人们对其做了改进, 而通过定时器/计数器定时来进行延时。 由于方式2定时时间过短(12MHz下最大250μs左右),所以,此处我们仍然选用方式1。但方式1在12MHz下的最大定时时间也只有60多ms,仍然不能满足延时要求。所以,延时程序需要软硬件协作。即我们可以这样去做,通过硬件T0延时50ms,然后设置一个计数器,当计数器计到10时,我们延时的目标就达到了。 源程序如下图:(计数器初值计算与上例相同) 将上面的源文件保存为汇编文件,然后进行编译/汇编,并生产源代码装入内存在MedWin中仿真运行看延时效果(可以通过指令单步执 行“lcall dly500”一句观察指令执行时间,则实际执行时间就是延时时间)。结果发现,实际执行中该延时程序比我们的要求多延时了87μs,这是因为延时程序中还插入了其他指令(比如设置T0模式等),所以我们的延时程序不是十分精确,实际应用中我们可以通过调整T0初值来稍作调整,但此处对延时要求并不精确,所以我们就不再做调整了。 下面我们可以在Proteus中构建电路来观察我们的延时效果。电路图十分简单,如下图所示: 注意LED的阴阳极不要接反,图中的限流电阻在模拟时可以略去,但如果添加上的话,最好阻值不要设置的过大,以免LED发光太弱,影响观察效果。 设置好电路图以及各元器件的属性以后,我们就可以点击仿真按钮来观察效果了。可以看到,LED按照大约0.5s的周期开始闪烁。 例3.定时器/计数器的计数功能。本例使用T1对外部脉冲进行计数,每计数一次,与P1口相连的8个LED发光二极管的亮灯个数和位 置就按照它们的顺序所表示的BCD码(亮灯代表1,灭灯为0)做加法。比如开始为29(00101001),计数一次以后,对应的数字变为30(00110000)。这里我们用按键来模拟外部脉冲,每按一次,表示产生一个脉冲。 显然,根据要求,我们可以使T1工作于计数器方式2,而且我们可以设置其初值为,这样,外部产生一个脉冲,T1检查到就会发生中断,然后我们在中断子程序中按要求进行处理。 其源程序如下图所示: 将上面在MedWin中编辑好的源文件保存为汇编文件,然后进行编译/汇编,并产生相应的源代码(.HEX文件)。注意因为Proteus仿真电路的按键为理想按键,所以程序设计时并没有考虑按键的抖动,但在实际应用中应该注意,否则将可能实现不了预期目的。另外,本例为了 仿真的方便,设置T1计数器的初值为H,实际应用中可以灵活地根据相关要求进行改动。 然后我们根据题中要求设计电路。设计好的电路图如下图所示: 设计电路图时要注意因为本电路图中需要较多的限流电阻(如果添加的话),所以在绘制电路图时考虑用排阻来进行代替。图中RP1就是一个8×的排阻。Proteus中提供了几种排阻,你可以使用关键词“respack”进行查找。 设计好电路图,我们就可以将上面汇编源文件产生的源代码装入单片机,然后进行仿真。仿真时使用鼠标点击按键,你可以看到LED按照BCD码加法的规律进行变化。仿真中的一个画面可以从上图中看到。 我的毕业论文(六):Proteus仿真辅助中断功能的学习 2007年07月06日 星期五 13:51 MCS-51系列单片机具有5个中断源,2个中断优先级,可以实现2级中断服务程序嵌套。5个中断源分别为:两个外部输入中断源INT0(P3.2)和INT1(P3.3),中断请求标志分别为IE0和IE1;2个内部定时器/计数器的溢出中断源T0(计数时P3.4输入)和T1(计数时P3.5输入),中断请求标志分别为T0和T1;串口中断请求源,其中断请求标志为RI或TI。 中断请求标志位分布在特殊功能寄存器TCON(IE0、IE1、T0、T1)和SCON(RI、TI)中。与中断有关的特殊功能寄存器除它们以外还有中断允许寄存器IE和中断优先级寄存器IP。这些寄存器都能够进行位寻址。此处不再对它们进行详细的探讨。关于它们的详细情况和具体功能以及中断的其他知识请参阅相关参考文献,此处我们从略。 事实上,关于中断我们在上一篇文章中讨论定时器/计数器时已经对T0、T1的相关中断进行过较为详尽的讨论和举例。而关于串口中断,我们会在下节讲解串口时进行相应的讨论,所以本节我们只简单讨论一下外部中断INT0和INT1,并举例分析。 例1.外部中断INT0和INT1同时存在。和上篇文章中的例3一样,P1口连接8个LED发光二极管,两个按键分别接到外部中断INT0和INT1。正常情况下,8个LED闪烁发光。当INT0发生中断时,使P1口的8个LED做一个灯的左移右移两次;当INT1发生中断时,使P1口的8个LED做两个灯的左移右移两次。 此例的源程序如下图所示: 源文件编辑结束以后,将源文件保存为汇编文件,然后进行编译/汇编,并产生相应的源代码以便下面仿真使用。 下面我们在Proteus中绘制电路,此例电路图和上篇文章中最后一例的电路图大体相同,只不过将接在P3.5的按键改为接在P3.2和P3.3的INT0和INT1的中断请求输入端。绘制好的电路图如下图所示: 电路设计好以后,我们就可以将上面生成的源代码装入单片机,然后进行仿真了。可以看到,仿真开始时,8个LED作大约0.2S间隔的闪烁;当我们按下INT0口的按键时,LED作一个灯的左移右移两次;当我们按下INT1口的按键时,LED作两个灯的左移右移两次。完全达到了我们预期的设计目的。仿真中的一个画面如上图所示。 我的毕业论文(七):Proteus仿真辅助串口功能的学习 2007年07月08日 星期日 12:30 MCS-51系列单片机内部有一个可编程全双工串行通信接口,具有UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)功能。它有四种工作方式,可由软件设定;它的波特率也可由软件设置片内的定时器/计数器来进行控制。 与串口相关的特殊功能寄存器主要有串口控制寄存器SCON和电源控制寄存器PCON。其中需要注意的是PCON不可位寻址。 51系列单片机的串口主要用来进行串口数据通信,除此以外,它还可以用来非常方便地扩展并行IO口,可以扩充输入或者输出。本节我们主要通过实例来说明其在串行数据通信的应用及其在扩展IO口上的应用,考虑到篇幅,我们只举以下二例。 例1.两个AT89C51的双机通信。其中一个单片机P1口外接8个按键(事实上可以用拨码开关来代替,但Proteus中没有这个器件的仿 真模型),第二个单片机P2口外接8个LED灯,使用双机串口通信将第一个单片机的拨码开关的状态发送到第二个,并在第二个单片机的LED灯上显示出相应状态。 我们取两机串口都工作于方式1,由定时器T1和SMOD控制其波特率,设T1工作于定时模式方式2,SMOD取0,取波特率为4800bit/s。则因为计算波特率公式 SMOD8波特率=2/32×/(12×(2-X)) 其中,为单片机时钟频率,X为定时器初值。 所以,我们可以得到T1计数初值为:AH(此处为了精确,我们取=11.0592MHz)。 源文件如下所示: 发送程序如下图: 接收程序如下图: 源文件编辑结束以后,将源文件保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。 下面我们来设计电路。首先在电路图中放置两片AT89C51芯片,并将它们的P3.0(RXD)和P3.1(TXD)引脚交叉相连。然后在片一的P1口连接8个按键;片二的P2口连接上8个LED。最终结果如下图所示: 在进行仿真以前,我们需要来再熟悉一下Proteus的按键。 如上图所示,仿真时我们可以点击键帽,但当我们松开鼠标时,按键就弹开了;我们还可以点击键帽右侧的标有上下箭头的红黑色小圆圈,此时当我们松开鼠标时,键帽不会弹开,按键一直保持着按下的状态,只有当我们再次点击小圆圈时,键帽才会弹开,按键才会改变状态。此例我们就需要这种属性来根据要求进行我们的仿真。 设计好电路图以后,我们就可以装入相应的程序了。注意装入程序时不要发生错误,要将相应的源代码装入相应的单片机。然后进行仿真,可以通过点击相应的按键来改变状态,进而观察到LED的状态。可以看到,串口通信得到了实现。仿真中的一个画面如上面电路图中的效果所示。 例2.串口扩充并行IO口输出。单片机的串口扩充的8位并行IO口上外接8个LED,然后从串口输出数据实现8个LED左移2次,闪烁2次的循环。 串口扩充并行口时,串口工作于方式0:同步移位寄存器方式,波特率固定,数据由RXD端输出,移位时钟由TXD送出。使用74LS164串入并出移位寄存器。 本例源文件如下图: 源文件编辑结束以后,将其保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。 然后我们来绘制电路图。电路图比较简单,如下图所示,此处不再详述。但有一点需要注意:此前的排阻不能使用了,因为那些都是多输入单输出,不能符合此例要求。 此处我们换作另外一种8输入8输出的排阻(见上图中RN1),你可以在Proteus中用关键词“RX8”进行查找。设计好的电路图如上图所示。 电路图设计好以后,我们就可以将上面产生的代码装入单片机了。装入以后进行仿真,仿真中的一个画面也可以从上图看到。 我的毕业论文(九):Proteus仿真辅助数码管的学习 2007年07月10日 星期二 13:42 数码管又称LED数码管,它是由7段或8段LED构成的显示器件。有共阴极和共阳极两种。按其显示方式则可分为静态显示方式和动态显示方式两种。关于数码管的其他知识请参阅相关参考文献,此处不作讨论。下面我们将主要讲述数码管显示的仿真。 1.静态显示方式 静态显示方式较为简单,编程十分容易,但占用IO口线较多。实际使用中不太多见。下面我们就通过一个简单的例子来予以说明。 例1.单片机的P2口接一个共阳极数码管,利用该数码管显示从0到9,然后返回到0的循环。 该例子较为简单,源文件如下图: 源文件编辑结束以后,将其保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。 下面我们编辑电路图。此例的电路图十分简单,只需将一个共阳极数码管连到单片机的P2口即可。数码管使用关键词“7Seg”进行查找。可以看到有很多结果,注意区分共阳极“Anode”和共阴极“Cathode”即可。这里我们选用较为简单的“7SEG-COM-ANODE”数码管。 最后得到的电路图如下图所示: 绘制好电路图,我们就可以将前面所生成的源代码装入单片机,然后点击仿真按钮进行仿真。 可以看到数码管显示的数字按照我们程序中设定的要求进行变化着,仿真中的一个画面如上图所示。 2.动态显示方式 动态显示方式是一种相对较为高级的显示方式,它编程较为复杂,但占用IO口线少,达到了节约硬件资源的目的,实际使用中较多利用。下面我们也利用一个实例来详细说明这种显示方式。 例2.数码管动态显示方式。单片机P2口接一个二位数码管的8位段码线,P3口的低二位接数码管的两位位码线。程序使得二位数码管做0到99的循环显示。 该例源文件如下图所示: 源文件编辑结束以后,将其保存为汇编文件,然后进行编译/汇编,并产生相应的源代码,准备用于仿真。 接下来我们绘制电路图。此例电路图比较简单,如下图所示,但有几点需要注意: (1)单片机的IO口的驱动能力有限,所以此例我们选用了大功率晶体管驱动电路,即图中的两个NPN三极管,单片机通过控制它们的通断来达到控制位码的目的。 (2)关于数码管,此例我们选用了2位的共阳极数码管7SEG-MPX2-CA,这样可以方便我们连线和使用。而且由于我们的例子中没有用到小数点(DP),所以为了简便在图中我们没有连接P2.7和DP引脚。当然,如果你连接好这个引脚,仿真结果不会受到任何影响,因为在段码表中,P2.7引脚一直输出的都是高电平,也就是说小数点一直处于熄灭状态。 绘制好电路图,就可以点击仿真按钮进行仿真了。仿真中的一个效果如上图所示。 3.事实上,在实际的应用中我们还可以选用数码管显示驱动译码芯片来达到控制数码管显示的目的。常用的这类芯片有CD4511、MAX7219等。关于这些芯片的使用方法请参阅相关参考文献,此处我们仅以MAX7219为例来简单介绍 一下这类芯片的使用。 例3.单片机使用MAX7219接8个数码管,初始时利用这些数码管从左到右显示7到0,然后依次将最右侧的数字移到最左侧显示。 鉴于C51语言在此类程序编写中的明显优势,此例我们将使用C51语言进行编写,源文件如下: 在Keil中编辑好源文件以后,进行编译、链接,并生成源代码(.HEX文件)。注意生成.HEX文件时要按照前面的文章中的相应介绍进行设置。 然后我们来绘制电路图。本例的电路图较为简单,MAX7219与数码管连接的段码和位码在芯片上已经标识明确,直接相连即可;唯独需要注意的就是要按照前面程序中定义的那样,将MAX7219的DN、CLK、LOAD三引脚分别与单片机AT89C51的P1.0、P1.1、P1.2引脚相连。如下图所示,此处我们就不再作其他说明了。 绘制好电路图以后,将我们刚才生成的源代码装入单片机,然后仿真运行,就可以看到我们所希望的效果了,仿真中的一个画面如上图所示。 我的毕业论文(十):Proteus仿真辅助LED点阵的学习 2007年07月12日 星期四 15:25 LED点阵是由LED构成的点数为8×8、16×16的点阵显示器,它可以用来显示数字、字母以及汉字等。使用十分灵活,应用较为广泛,比如大街上随处可见的LED电子广告牌。 下面我们通过一个实例来简单介绍LED点阵的使用和仿真。 例.使用一块8X8的LED点阵来显示一个向左循环移动的数字“1”。 此例比较简单,但需要注意的新东西有很多。一是8X8LED点阵,它的行列扫描。二是关于字模,网上有很多字模软件可供下载,但针对8X8LED点阵的比较少。因为数字“1”的字模比较简单,我们可以自己写出来。 由于C51语言的方便性,此处我们仍然采用其来书写,源文件如下图: 编辑好源文件以后,在Keil中进行编译、链接、并生成相应的工程源代码。 然后,我们就开始绘制电路图。关于本例的电路图,我们需要说明的是,由于采用总线方式绘制电路可以很大程度上使得电路图简化、美观,所以,此处我们将采用总线方式来绘制电路。关于总线的知识请参阅相关参考文献,此处我们只简单叙述一下在Proteus中如何绘制我们需要的总线。 采用总线方式绘制电路,首先要点击前面的“Proteus简介”一文中Proteus界面图区域?对象拾取区中的总线按钮,使系统进入绘制总线模式。这样你就可以在你需要绘制总线的地方单击像绘制一般连线一样 来绘制总线了,需要注意在你想要结束总线的地方双击才能结束总线的绘制。绘制好总线以后,我们可以先在需要与总线连接的各个线端来添加相应的标签(Label)。首先点击上述区域?对象拾取区中的添加标签按钮,使系统进入添加标签模式。然后你就可以在需要添加标签的线端上点击鼠标,系统将会弹出编辑标签对话框(Edit Wire Label)。我们只需在其中的“Label”选项卡的“String”框中填入我们需要的标签并点击确定(OK),就完成了相应标签的添加。添加好标签以后,接下来就要绘制各总线分支。绘制总线分支时需要注意按一下“Ctrl”键,你会发现连线方向已经按照你所需要的方向(45?)偏转了。在连接好总线分支以后,总线绘制就完成了。然后再稍作修饰,最后完成的电路图如下图所示: 绘制好电路图,我们就可以将上面产生的源代码装入单片机进行模拟仿真了。可以看到8X8LED点阵已经按照我们的要求开始循环显示数 字“1”。仿真中的一个画面如上图所示。 我的毕业论文(十一):Proteus仿真辅助LCD(液晶显示器)的学习 2007年07月13日 星期五 22:00 LCD就是液晶显示器,液晶显示器正在以其低功耗、高性价比以及方便实用的特性而成为单片机系统的一个重要输出器件。 关于LCD显示器的详细知识请参阅相关书籍和参考文献,此处我们只通过一个简单实例来说明LCD的用法。 例.使用Proteus中的128×64点阵图形液晶显示器来显示字符“郑州大学物理工程学院”。 首先我们要生成字符的字模,这需要通过字模软件来完成。网上有很多免费的字模软件可供下载使用,此处使用字模软件HZDotReader来生成。关于字模软件的用法请参阅相关书籍,此处也不再赘言。 生成好字模以后,因为软件设计与电路图有关,所以,我们首先来绘制例子所需要的电路图。此例选用的LCD器件是“AMPIRE128×64”,在Proteus中你可以使用该关键词来进行查找。除此以外,电路图中还需要一个滑动变阻器,你可以使用关键词“POT-”来查找,并根据需要选择相应的类型(POT-HG、POT-LIN等)。电路图中涉及的其他元器件我们在以前的电路图中都已经见到过,此处不再叙述。 最后绘制好的电路图如下图所示: 由于C51语言在此类程序编写上具有突出的优势,本例仍然采用 C51语言来书写。本例的程序源文件如下面几个图所示: 编辑好源文件以后,在Keil中编译、链接并生成工程代码(.HEX文件)。然后将生成的源代码装入上面电路图里面的单片机中,然后进行仿真,可以看到如图中所示的结果。 当然,你还可以对源程序稍作修改来实现其他你所需要的功能,比如打字效果,或者字体的移动,等等。 我的毕业论文(十二):Proteus仿真辅助DAC的学习 2007年07月14日 星期六 10:55 DAC是将数字信号转换为模拟信号的一种常用器件。可按其分辨率的高低将其分为8位、10位、12位、16位等多种类型。 课本中比较偏重讲述的是DAC0832,所以这里我们也将以其为重点并举例来讲述DAC的使用及模拟仿真。关于其他的类似器件,请查阅相关资料。 例.使用AT89C51与DAC0832的接口电路来产生三角波。 由于在Proteus中没有DAC0832器件的仿真模型,所以这里我们使用一个普适DAC模型,你可以在Proteus中使用关键词“DAC_8”来进行查找。 本例比较简单,所以仍使用了汇编语言来书写,程序源代码如下图: 编辑好源文件以后,即可进行编译、汇编并产生相应的源代码。 然后我们就可以绘制电路图了。由于本例使用了引脚较为简单的 DAC模型,所以电路连接也十分简单,如下图所示: 绘制好电路图,然后我们就可以将源代码装入单片机进行仿真了。仿真中软件将弹出示波器窗口,我们可以在窗口中看到相应的波形。其波形如下图所示: 我的毕业论文(十四):计算机仿真单片机输入器件的学习 2007年07月17日 星期二 18:34 单片机的输入器件主要有开关、拨码开关、键盘以及ADC等,与之相应,输入到单片机的信号就包括开关量、脉冲量和键盘信号等。下面我们就来详细讨论计算机在仿真这些器件方面的应用。 1 开关 在前面文章的仿真实例中我们已经多次涉及到开关和拨码开关,而且我们已经对其相当熟悉,所以此处我们不再对其作进一步探讨。 下面我们只说明一点问题。通常情况下,开关在按下和弹起的过程中会有抖动发生,所以我们在处理涉及开关的问题中一定要注意消除抖动。只不过在仿真试验中,开关的仿真模型是理想模型,没有抖动,我们也就不需要处理;但在实际应用中,这点务须注意。 2 键盘 单片机系统中常常使用非编码键盘,主要包括独立式键盘和矩阵式键盘两种。 (1).独立式键盘 独立式键盘每个按键单独占用一根IO口线,各按键相对独立,互不影响。可以使用查询方式或者中断方式来检测哪一个按键被按下,并执行相应的程序。其软件结构简单,但硬件复杂,而且当按键数量较大时将占用大量的IO口,使得IO口资源浪费较大,所以独立式键盘只适用于按键数量较少的场合。 由于独立式键盘的硬件结构以及软件处理方式与前面文章中我们所述及的按键相同,所以,此处我们不再对其进行详细讨论。关于独立式键盘的知识,请参阅相关参考文献。 (2).矩阵式键盘 矩阵式键盘又称行列式键盘,它的按键跨接在行线和列线上,适用于按键数量较多的情况。关于矩阵式键盘的基本知识也请参阅有关参考文献。此处我们以一个矩阵式键盘的例子来说明其使用方法以及软件设计。 例.单片机P1口连接一个矩阵式键盘,共有16个按键,按从左到右、从上到下的顺序依次命名为0、1、2、…、E、。P2口连接一个共阳极数码管,编写程序仿真当按键按下时,在数码管上显示出按下的按键所代表的数字。 本例是键盘与数码管的综合应用。考虑到C51语言在此类程序书写上的明显优势,本例程序将采用C51来书写。最后的源文件如下图所示: 编辑好源文件以后,我们要进行编译并产生相应的工程源代码(.HEX文件)以便下面仿真使用。 在生成源代码以后,我们就可以根据要求来绘制电路图了。此例电路图元器件比较简单,但绘制不太容易,尤其是16个按键组成的键盘矩阵,需要注意。关于电路图的其他部分,我们在前面的仿真中已经多次涉及,此处不再多言。最后绘制好的电路图如下图所示: 绘制好电路图以后,我们就可以将上面产生的源代码装入单片机进行仿真了。你可以注意到仿真中当你点击一个按键,右边的数码管就会显示该按键对应的数字。而且,如果你一直按住某个按键不放,数码管的显示是不会改变的。这完全符合我们设计的初衷。系统仿真中的一个画面如上面的图形所示。 3 ADC Proteus中的ADC器件主要在“Data Converters”子类中,种类繁多,从低精度的8位ADC到高精度的16位,从并行接口、SPI接口到IIC接口,Proteus都能仿真。但稍有遗憾的是当前的新型Σ-Δ型ADC暂时还不能仿真。 由于仿真ADC器件需要考虑相当多的东西,而本文时间紧迫,所以这里我们就不进行相应的仿真了。如果您对此比较感兴趣,可以试着用温度传感器测温,然后由ADC转换并将其送入单片机处理,最后在数码管或LCD上显示温度,做一个数字温度计。 我的毕业论文(十六):Proteus仿真IO接口扩展的学习 2007年07月19日 星期四 21:21 单片机的IO接口扩展按其扩展方式可以分为简单IO扩展、可编程IO接口芯片扩展以及串口扩展。下面我们将分别进行讲述。 1. 简单IO扩展 简单IO扩展主要是使用TTL或者CMOS系列锁存器和三态门进行扩展。这种扩展方式比较简单,尤其当系统资源较为丰富时,我们经常可以采用这种方式。 此种扩展方式中一个较为常见的例子是使用P0口扩展8个按键和8个LED,当一个按键按下的时候,使与其对应的LED发光。由于比较简单,此处不再赘述。 2. 可编程IO接口芯片扩展 由于在Proteus中只能仿真8250和8255A两个可编程接口芯片,其他的如8155、8279等均不能仿真,所以本节我们将以8255A为重点进行叙述。事实上,如8155、8279等芯片在实际应用中早已被淘汰,所以Proteus不能仿真这些芯片并非其弱点。 8255A是一种可编程并行IO接口芯片,它有3个8位的并行IO口,而且有3种工作方式,可以通过编程很方便地改变其功能,使用灵活,通用型强。本节只就该芯片简单地举一例来说明,关于它的详细使用方法请参阅相关文献。 例.使用8255扩展AT89C51的并行IO口,并在扩展的8255的PA、PB口上分别接上8位数码管的段码和位码,显示数字从0到7的循环变化。 本例采用8位数码管的目的是为了说明8255扩展IO口的作用,即使用一个P0口就实现了原来需要用两个口才能实现的功能,节省了系统资源。 例子比较简单,源文件如下图: 编辑好源文件以后,我们就可以编译、连接并生成相应的源代码以供我们的仿真实例使用。 下面我们来绘制电路图。本例电路图不算复杂,元器件也不多,但是AT89C51与8255之间、8255与8位数码管之间以及电路中的其他元器件之间的连线较多,使得电路图的布局不很方便。所以,在本例的电路图中我们再次使用了总线连接方法。因为总线在电路图中的重要 性,所以关于总线的知识,以及总线画法,请参阅相关书籍,最好能做到熟练掌握。最后绘制好的电路图如下图所示: 绘制好电路图以后,我们就可以将上面生成的源代码装入单片机进行仿真了。此例仿真和大多数实例完全一样,不再赘言。仿真中的一个画面如上图所示。 3. 使用串口扩展IO口 使用串口来扩展IO接口,主要牵涉到两种芯片,分别是:串入并出移位寄存器74LS164和并入串出移位寄存器74LS165。关于这种通过串口来扩展IO口的方法,我们在前面关于串口的文章中已经做过详细的介绍和举例,此处不再叙述。 我的毕业论文(十八):Proteus仿真16*16LED点阵显示汉字 2007年07月25日 星期三 18:17 例.利用Proteus仿真一块16×16LED点阵,并在其上循环显示汉字“郑州大学”。 Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先介绍使用8×8点阵构建16×16点阵的方法,并构建一块16×16LED点阵,用于本例的显示任务。 首先,从Proteus元件库中找到“MATRIX-8X8-RED”元器件,并将四块该元器件放入Proteus文档区编辑窗口中。此时需要注意,如果该元器件保持初始的位置(没有转动方向),我们要首先将其左转90?,使其水平放置,那么此时它的左面8个引脚是其行线,右边8个引脚是其列线(当然,如果你是将右转,则右边8个引脚是行线)。然后我们将四个元器件对应的行线和列线分别进行连接,使每一条行线引脚接一行16个LED,列线也相同。并注意要将行线和列线引出一定长度的引脚,以便下面我们使用。 连接好的16×16点阵如下图所示: 连接成如上图的16×16点阵只是第一步,这样分开的数块并不能达到好的显示效果,下面我们要将其进一步组合。组合实际上很简单,首先选中如上图中右侧的两块8×8点阵,然后拖动并使其与左侧的两块相并拢,如下图所示: 我们可以看到原来的连线已经自动隐藏了,至于线上的交点,我们不要去动。然后,我们再来最后一步,选中下侧的两块点阵,并拖动使其与上侧的两块并拢,最后的效果如下图所示: 可以看到,原来杂乱的连线现在已经几乎全部隐藏了,一块16×16的LED点阵做成了。需要注意,做成的LED点阵的行线为左侧的16 个引脚,下侧的16个引脚为其列线,而且其行线为高电平有效,列线为低电平有效。然后,我们将其保存,以便以后使用。 制作好16×16LED点阵,我们接下来来进行本例的实验。 由于本例的软件程序需要首先注意硬件连接,所以,我们首先来看一下本例的电路图。电路图中用到了74159集成芯片,其功能是将4位输入译为16输出(低电平有效),刚好满足我们的要求。电路图中的其他元器件我们在以前的仿真实例中都已介绍过,此处不再赘述。最终完成的电路图如下所示: 绘制好电路图,下面我们来编辑程序源文件,如下图: 编辑好源文件,我们就可以编译、链接并产生源代码了,生成源代码以后,打开我们刚才在Proteus中绘制好的电路图,并将生成的源代码装入单片机进行仿真。 仿真中的一个画面如上面的电路图所示。也可能你的画面和上图中的不同,可能会有红绿小点闪烁,事实上那是Proteus中实时显示的电平信号。我们可以在“System”菜单下点击“Set Animation Options...”子菜单来打开“Animated Circuits Coniguration”对话框,然后将“Animation Options”选项下面的“Show Logic State o Pins?”复选框去掉选中来改变 设置。如下图所示: 改变设置以后,重新仿真运行,是否就看到了和上图中一致的效果了。
本文档为【[优质文档]proteus软件仿真教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_511210
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:0
分类:企业经营
上传时间:2017-09-29
浏览量:15