8086实验指导书-2016(定稿20161009)_第1页
8086实验指导书-2016(定稿20161009)_第2页
8086实验指导书-2016(定稿20161009)_第3页
8086实验指导书-2016(定稿20161009)_第4页
8086实验指导书-2016(定稿20161009)_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、PROTEUS-8086实验指导书PROTEUS-8086实验指导书编者 段绪红、李德智、李崇维电气工程专业实验中心2016年9月目 录PROTEUS的操作1PROTEUS简介1实验原理1新建工程2编译工程4原理图绘制6仿真调试技巧138086软件部分实验18实验一 系统认识实验18实验二 循环程序设计20实验三 分支程序设计23实验四 数码转换实验26实验五 子程序设计308086硬件部分实验33实验一 IO口读写实验 (245、373)33实验二 8255并行I/O扩展实验36实验三 可编程定时/计数器8253实验39实验四 七段数码管显示实验42附录:DEBUG调试程序的使用及其上机过程

2、45 PROTEUS的操作PROTEUS简介PROTEUS是本实验箱进行8086实验的必备软件,是电路设计、电路仿真与调试、程序编译的环境。PROTEUS教学实验系统(8086/8051)主要由教学实验箱、实验指导书及其配套光盘组成。通过USB连接线把电脑与实验箱相连接,能完成针对8086的各种交互式仿真实验;通过WWISP下载器,可以对8051芯片进行ISP编程,进行单片机实验课程。本教学实验箱摒弃以往的设计思想,采用模块化设计,总线器件都可以挂在总线上,只须要接上CS片选就可以实验,减少了实验过程中的接线问题,同时也可极大地提高学生的实验速度。结合PROTEUS的电路仿真功能,能够大大提高

3、学生实验的动手设计能力。实验原理大部分实验的开展,我们都采用在PROTEUS平台下的交互式仿真,使用硬件平台与电脑软件仿真同时进行的方法,实验的开展流程如下:PROTEUS软件实验教学实验系统硬件实验硬件实验参考硬件连接表,选出实验板,做好硬件连接原 理 图 绘 制程序编写、编译程序编写、编译通过USB线把电脑和实验箱连接,仿真调试仿真调试仿真调试得到正确硬件仿真效果得到正确软件仿真效果在进行硬件实验中,有几点需要注意:1、尽量保持线束的整齐,对于控制线少交叉缠绕。2、拔线时请逐根拔除,切忌强行硬拔整股连线(易造成整股损坏)。3、液晶类实验涉及到液晶对比度的调节,请通过邻近电位器来调整。新建工

4、程首先,打开PROTEUS软件,打开菜单“File->New Project”。可以在Name下修改工程名,在Path下修改工程保存的路径,建议在E盘或者F盘上先新建一个文件夹存放自己的工程及代码,名称可以是自己姓名拼音或学号。点击Next,选择原理图的样式大小。点击Next,选择PCB模板,如不需要可选择默认选项。点击Next,选择固件工程,选择好需要的控制器Controller:纯软件仿真选8086,软硬件仿真选USB8086,选择编译器Compiler:本课实验全部选择汇编语言MASM32。点击Next,然后点击Finish,汇编程序模板生成。编译工程点击菜单栏System->

5、;Compilers Configurations,在对话框中,点击Check All能找到如下图的编译器则安装正确,点击OK关闭对话框。点击菜单栏Build->Build Project,如果编译成功,如下图:接下来我们就可以添加自己的代码了,不过还有个需要注意的地方:点击菜单栏Build->Project Settings,如果需要工程文件和源代码文件在同一路径,则需要取消Embed Files的复选勾,否则源代码及编译结果会自动放到PROTEUS安装路径。添加源代码,编译工程如下图,完成。或者添加现成的汇编代码文件。原理图绘制以8255并行接口扩展实验电路为例。 电路元器件清

6、单:808674LS37374HC1388255RESPACK-8DIPSW_8LEDRES (1)从库中选取元器件 如图所示,按下对象选择器左上方的“P”按钮,你也可以通过快捷键来启动元件库浏览器对话框(默 认的快捷键是 P)。在“设备选择”窗口,“关键字(d)”中输入所需要的元器件名。可以试着将“8255”输入到元件库浏览器的关键字栏中,浏览器将会根据您输入的关键字提供元件列表供您选择,在元件列表中的“8255”元件上双击鼠标左键将把需要的元件放到对象 选择器中,如下图所示:以此类推,将所需元器件全部选好。(2)电路图布局 从对象选取器中选中 74LS373。 在编辑窗口中单击鼠标左键进入

7、放置模式,将出现 74LS373 元件的虚影。 移动鼠标到放置位置,在编辑窗口再次点击左键,器件将放置到编辑窗口的对应位置上。 通常我们需要在放置元件后移动元件或一整块电路。先选择要移动的对象(元件或电路块),在选择的对象上按住左键,移动鼠标到新的位置,然后释放鼠标左键,将对象放置到新位置。 在放置好存储芯片之后,下一步就是放置其他外围部件并调整好方向。如图所示: (3)电路图布线连线过程中,光标样式会随不同动作而变化。起始点是绿色铅笔,过程是白色铅笔,结束点是绿色铅笔。 将鼠标放置在存储芯片的 SCK 引脚上时,光标会自动变成绿色。 点击鼠标左键然后向左移动鼠标到 100 欧姆电阻的管脚处,

8、导线将会跟随移动,在移动的过程中光标 /画线笔将变成白色。 再次点击鼠标左键以完成画线。 在导线上进行连线的方法基本是相同的,但仍然有几个地方需要注意:您不可以从导线的任意位置开始连线,而只能从芯片的管脚开始连线,连接到另一根导线。当您连接到其它已存在导线时,系统会自动放置结点,然后结束连线操作。在连线过程中,如果您需要连接两根导线,操作步骤如下:首先需要在其中一根导线上放置结点, 再从这个结点上连线到另一根导线。 (4)元器件标签和标号我们知道,所有的放置到原理图中的元器件都有一个唯一的参考标号和元件值。元件的参考标号是把元件放置到原理图上时系统自动分配的,如果需要,也可以手动修改。对于其它

9、的标签,如元件值标签,你可以更改元件值,更改摆放的位置,选择显示或隐藏等操作,下面演示操作的过程: 当我们绘制一系列走向相同的连线时,Proteus提供了一种非常有用的连续放置导线的方法,可以在绘制新的连线 时自动重复上一次的操作,我们称之为“双击复制”技巧。首先通过旋转和放置一些默认类型的终端在原理图右侧,如下图所示:注意:这种方法画出的导线与前一次画出的必须是一模一样的,也即是方向相同,长度相等,而且必须连续操作。 (5)属性赋值工具的使用属性赋值工具可以用来快速的设置元器件值,引脚标号等。如下图,需要给74LS373的Q0-Q7脚添加标号AB0-AB7。具体操作如下: 打开属性赋值工具,

10、快捷键是A。 属性赋值工具界面如下。在字符串窗口输入NET=AB#。点击确定。 依次在74LS373的Q0-Q7脚,单击鼠标左键,添加标号AB0-AB7。 (6)完成原理图布线仿真调试技巧仿真前原理图的设置:右击原理图中的8086(纯软件仿真,若是要硬件仿真就是USB8086)仿真器,选择Edit Properties如下图设置。注意时钟频率设置在200kHz以内,内存大小不能为0且足够用于代码和数据存储。Proteus中提供了很多调试工具和手段,这些工具的菜单都放在Proteus的Debug(调试)菜单下,如下图所示:第一栏的菜单是仿真开始、暂停与停止的控制菜单,与Proteus ISIS左

11、下角的仿真控制按钮的功能是一样的。第二栏是执行菜单,可以执行一定的时间后暂停,也可以加断点执行和不加断点执行。第三栏是代码调试菜单,有单步、连续单步,跳进/跳出函数,跳到光标处等功能。第四栏是诊断和远程调试监控,但8086没有远程监控功能。诊断可以设置对总线读写,指令执行,中断事件和时序等进行跟踪。有四个级别,分别是取消、警告、跟踪和调试。级别的不同,决定事件记录的不同。例如,如果要对中断的整个过程进行详细的分析,则可以选择跟踪或者调试级别,ISIS将会对中断产生的过程,响应的过程进行完整的记录,有助于学生加深中断过程的理解。设置诊断选项最后一栏是8086的各种调试窗口,包括观察窗口,存储器窗

12、口,寄存器窗口,源代码窗口和变量窗口。其中观察窗口可以添加变量进行观察,并且可以设置条件断点。这在调试程序的时候非常有用。观察窗口设置条件断点变量窗口会自动把全局变量添加进来,并实时显示变量值,但不能设置条件断点。变量窗口寄存器窗口实时显示8086各个寄存器的值。寄存器窗口存储器窗口实时显示存储器的内容。存储器窗口源代码调试窗口是最主要的调试窗口,在这里可以设置断点,控制程序的运行,如果是C程序,还可以进行反汇编。以上几个工具配合起来,比起任何的IDE都要实用的多,可以大大提高学生的学习效率。8086软件部分实验实验一 系统认识实验一、 实验要求利用PROTEUS平台,建立8086 的多位十六

13、进制加法运算的例子。 二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用加法类运算指令编程及调试方法。3、掌握加法类指令对状态标志位的影响。三、 实验说明由于本实验是三个十六位二制数相加运算,N4为存放结果,其中N1为1111H、N2为2222H、N3 为3333H 所以结果应该为6666H。开始N1+N2N1+N2+N3结束四、 实验程序流程图五、 实验步骤1、Proteus仿真a.在Proteus中新建工程“多位十六进制加法运算.pdsprj”,添加自己编写的汇编代码,编译直至成功;b.单步运行,打开调试窗口进行调试。参考代码: ; N4=N1+N2+N3 =1111H+2222H+

14、3333H=6666H CODE SEGMENT ASSUME CS:CODE,DS:DATA BEG: MOV AX,DATA MOV DS,AX MOV SI,OFFSET NUM1 MOV AX,0 ADD AX,SI+0 ADD AX,SI+2 ADD AX,SI+4 MOV SI+6,AX JMP $ CODE ENDS DATA SEGMENT NUM1 DW 1111H ;N1 NUM2 DW 2222H ;N2 NUM3 DW 3333H ;N3 NUM4 DW 0000H ;N4 DATA ENDS END BEG2、调试、验证a设置断点、单步运行程序,一步一步调试;b观察每

15、一步运行时,8086内部寄存器的数值变化;c检查验证结果。 六、 实验结果和体会 七、 建议 实验二 循环程序设计一、 实验要求利用PROTEUS平台,建立8086 的循环程序的例子。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用LOOP判断转移指令实验循环的方法。三、 实验说明1、编制程序,使S=l+2×3+3×4+4×5+.+N(N+1),直到N(N+1)项大于200为止。2、求某数据区内负数的个数。设数据区的第一单元存放区内数据的个数,从第二单元开始存 放数据,在区内最后一个单元存放结果。为统计数据区内负数的个数,需要逐个判断区内 的每一个数据,然

16、后将所有数据中凡是符号位为1的数据的个数累加起来,即得区内所包 含负数的个数。四、 实验程序流程图®DX® ®® AL*BL®AX DX+AX®DXAX>200 结束NYY图2-1 实验1流程图开始DI增数据个数®CXCH、BL置数据区首址®DII增®结束存结果数据首位?YYNN图2-2 实验2流程图五、 实验步骤1、Proteus仿真a.在Proteus中新建两个工程“循环程序.pdsprj”,分别添加自己编写的汇编 代码,编译直至成功;b.单步运行,打开调试窗口进行调试。2、调试、验证a设置断点

17、、单步运行程序,一步一步调试;b观察每一步运行时,8086内部寄存器和变量的数值变化;c检查验证结果。六、实验结果和体会 七、 思考题修改程序,使其能分别求出数据区中正数、零和负数的个数。实验三 分支程序设计一、 实验要求利用PROTEUS平台,建立8086 的分支程序的例子,实现数据块搬移。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握使用转移类指令编程及调试方法。3、掌握各种标志位的影响。三、 实验说明程序要求把内存中一数据区(称为源数据块)传送到另一存贮区(称为目的数据块)。源数据块和目的数据块在存贮器中可能有三种情况,如图3-1所示。00H00H00H 源数据块(目的数据块) 目

18、的数据块(或源数据块)FFFFHFFFFHFFFFH源数据块目的数据块目的数据块源数据块 (a) (b) (c)图31源与目的数据块的三种结构 对于两个数据块分离的情况,如图31(a)数据的传送从数据块的首址开始,或者从数据块的末址开始均可。但对于有部分重叠的情况,则要加以分析,否则重叠部分会因“搬移”,而遭破坏。 可以得出如下结论。当源数据块首址>目的块首址时,从数据块首地址开始传送数据。当源数据块首址<目的块首址时,从数据块末地址开始传送数据。开始SI¬源数据块首址DI¬目的数据块首址CX¬搬家字节数SI>DI?SI¬SI+CX-1

19、DI¬DI+CX-1DI¬SIDI¬SISI¬SI+1DI¬DI+1SI¬ SI-1DI¬ DI-1CX¬ CX-1CX¬CX-1CX=0?CX=0?结束<>NNYY四、 实验程序流程图图3-2 分支程序流程图五、 实验步骤1、Proteus仿真a.在Proteus中新建工程“分支程序.pdsprj”,添加自己编写的汇编代码,编译直至成功;b.单步运行,打开调试窗口进行调试。2、调试、验证a设置断点、单步运行程序,一步一步调试;b观察每一步运行时,8086内部寄存器和变量的数值变化;c. 改变

20、源地址中的内容、长度,试试移动的结果;d. 检查、验证结果。六、 实验结果和体会 七、 思考题为什么当源数据块首址>目的块首址时,应从数据块首地址开始传送数据?而当源数据块首址目的块首址时,应从数据块末地址开始传送数据?实验四 数码转换实验一、 实验要求利用PROTEUS平台,实现8086 的二进制、十进制和BCD码互相转换。二、 实验目的1、熟悉实验系统的编程和使用。2、掌握简单的数值转换算法。3、基本了解数值各种表达方法。三、 实验说明计算机与外设间的数码转换关系如图4-l所示,数码对应关系如表4-1所示。键 盘光电机拔码开关数据开关位显示CRT显示多段显示打印机主机ASCII码BC

21、D码二进制ASCII码段 码二进制ASCII码ASCII码图4-1数码转换关系 表4-l数码对应关系十六进制数BCD码二进制机器码ASCII码七段码共阳共阴00000000030H40H3FH10001000131H79H06H20010001032H24H5BH30011001133H30H4FH40100010034H19H66H50101010135H12H6DH60110011036H02H7DH70111011137H78H07H81000100038H00H7FH91001100139H18H67HA101041H08H77HB101142H03H7CHC110043H46H39H

22、D110144H21H5EHE111045H06H79HF111146H0EH71H定义源、目标地址定义转换位数nn1®cx取第一位ASCII码减去乘加下一位码减转换完否?存入结果单元并停机NY四、 实验程序流程图图4-2 十进制数转换为二进制数流程图YCX¬循环计数初值¬¬错误标志“”¬码取入码低四位¬¬存入结果,修改地址结果AL3AH?YNAL30H?NNY图4-3 十进制数转换为非压缩型的BCD码流程图五、 实验步骤1、Proteus仿真a.在Proteus中新建两个工程“XX进制转XX码.pdsprj”,分别添加自己

23、编写 的汇编代码,编译直至成功;b.设置断点、运行程序,打开调试窗口进行调试。2、调试、验证a设置断点、单步运行程序;b观察程序运行到断点时,8086内部寄存器和变量的数值变化;c验证实验结果。六、 实验结果和体会 七、 建议 实验五 子程序设计一、实验目的1学习子程序的定义和调用方法。2掌握子程序、子程序的嵌套、递归子程序的结构。3掌握子程序的程序设计、编制及调试方法。二、实验内容1.求无符号字节序列中的最大值最小值设有一字节型序列,其存贮首址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值与最小值。程序流程图如图5-l所示。开始数据首址®SI序列的字节个数调

24、用求最大最小值子程序 结 束图5-1 主程序流程图()?SI,CX,BX入栈(SI)®BH;BH®BL(SI)1®SI;(SI)®AL(AL)(BH)(CX)1®CXRETAL®BH(AL)>(BL)()?AL®BLNNNNYYYY图5-2 子程序流程图2.求N!利用子程序的嵌套和子程序的递归调用,实现N!的运算。根据阶乘运算,我们有: N!=N(N-1)!=N(N一l )(n-2)!=0!=1由此我们可以想到,欲求N的阶乘,可以用一递归子程序来实现,每次递归调用时应将调用参数减1,即求(N-1)的阶乘,并且当调用参数

25、为0时应停止递归调用,且有0!=1的中间结果。最后将每次调用的参数相乘得到最后结果;因每次递归调用时参数都送入栈中,当N减为0而程序开始返回时,应按嵌套的方式逐层返回,并逐层取出相应的调用参数。假定,N放在3000H3001H单元中,N!的结果放在3010H起始的单元中,N在00H0FH间取数,且(3000H)中放低位。三、实验步骤1、Proteus仿真a.在Proteus中新建两个工程“子程序设计X.pdsprj”,添加自己编写的汇编代码,编译直至成功;b.设置断点、运行程序,打开调试窗口进行调试。2、调试、验证a设置断点、单步运行程序;b观察程序运行到断点时,8086内存相应地址单元和寄存

26、器的数值变化;c验证实验结果。四、实验结果和体会 五、思考题1.若求有符号字节型序列中的最大值与最小值,如何修改程序?2.子程序执行完毕后要返回调用程序,它返回调用程序的什么地方,是靠什么指令、什么方法返回的?3.若N=3。请画出求N!程序运行时的堆栈变化情况,并加以解释。8086硬件部分实验实验一 IO口读写实验 (245、373)一、 实验要求利用板上集成电路上的资源,扩展一片74HC245,用来读入开关状态;扩展一片74HC373,用来作来输出口,控制8个LED灯。二、 实验目的1、了解CPU常用的端口连接总线的方法。2、掌握74HC245、74HC373进行数据读入与输出。三、 实验电

27、路及连线1、Proteus实验电路2、硬件验证实验硬件连接表(必须关闭电源再连线)接线孔1接线孔2245 CSD000H-DFFFH373 CS8000H-8FFFHB0-B7SW1-SW8Q0-Q7D1-D8四、 实验说明一般情况下,CPU的总线会挂有很多器件,如何使这些器件不造成冲突,这就要使用一些总线隔离器件,例如 74HC245、74HC373。74HC245是三态总线收发器,本实验用它做输入,片选地址为D0000H-DFFFFH。就是用于读入开关值。74HC373是数据锁存芯片,通过它作数据的锁住输出。开始通过245读入通过373输出结束转移是否五、 实验程序流程图六、 实验步骤1、

28、Proteus仿真a.在Proteus中新建工程“245输入373输出SH.pdsprj”注意控制器选择“USB8086”,绘制实验电路图;b.添加自己编写的汇编代码,编译直至成功;c.如不能正常工作,打开调试窗口进行调试。2、实验板验证a通过USB线连接实验箱;b按连接表连接电路;c运行PROTEUS仿真,检查验证结果。七、 实验结果和体会 八、 建议 实验二 8255并行I/O扩展实验一、 实验要求利用8255可编程并行口芯片,实现输入、输出实验,实验中用8255PA口作读取开关状态输入,8255PB口作控制发光二极管输出。二、 实验目的1 、了解8255芯片结构及编程方法。2 、了解82

29、55输入、输出实验方法。三、 实验电路及连线1 、Proteus实验电路2、硬件验证实验硬件连接表(必须关闭电源再连线)接线孔1接线孔28255 CS8000H-8FFFHPB0-PB7D1-D8PA0-PA7SW1-SW8四、 实验说明1、8255A芯片简介:8255A可编程外围接口芯片是INTEL公司生产的通用并行接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0:基本输入/ 输出方式方式l:选通输入/ 输出方式方式2:双向选通工作方式2、使8255A端口A工作在方式0并作为输入口,读取SWl-SW8的开关量,PB口工作在方式0作为输出口。五、 实验

30、程序流程图开始设置工作方式读PA口置PB口六、 实验步骤1、Proteus仿真a.在Proteus中新建工程“8255_SH.pdsprj”,绘制实验电路图;b.添加自己编写的汇编代码,编译直至成功;c.如不能正常工作,打开调试窗口进行调试。2、实验板验证a通过USB线连接实验箱;b按连接表连接电路;c运行PROTEUS仿真,检查验证结果。七、 实验结果和体会 八、 建议 实验三 可编程定时/计数器8253实验一、 实验要求利用8086外接8253可编程定时/计数器,可以实现方波的产生。二、 实验目的1 、学习8086与8253的连接方法。2 、学习8253的控制方法。3 、掌握8253定时器

31、/计数器的工作方式和编程原理。三、 实验电路及连线1 、Proteus实验电路2、硬件验证实验硬件连接表(必须关闭电源再连线)接线孔1接线孔28253 CSA000H-AFFFHCLOCK_OUTCLOUK_IN分频1/4CLK0GATE0+5VOUT0示波器(电压表)四、 实验说明8253芯片介绍8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz, 用+5V单电源供电。8253的功能用途:延时中断实时时钟可编程频率发生器数字单稳事件计数器复杂的电机控制器二进制倍频器8253的六种工作方式:方式0:计数结束中断方式3:方波频率发生器方式l:可编程频率发生方式4:

32、软件触发的选通信号方式2:频率发生器方式5:硬件触发的选通信号开始设置工作方式启动8253结束五、 实验程序流程图六、 实验步骤1、Proteus仿真a.在Proteus中新建工程“8253_SH.pdsprj”,绘制实验电路图;b.添加自己编写的汇编代码,编译直至成功;c.如不能正常工作,打开调试窗口进行调试。2、实验板验证a通过USB线连接实验箱;b按连接表连接电路;c运行PROTEUS仿真,检查验证结果。七、 实验结果和体会 八、 建议 实验四 七段数码管显示实验一、 实验要求 利用8255的IO控制8位七段数码管显示实验,实现显示。二、 实验目的1了解数码管显示原理。2掌握读表程序的编写。三、 实验电路及连线1. Proteus实验电路2、 硬件验证实验硬件连接表(必须关闭电源再连线)接线孔1接线孔28255_CS8000H-8FFFHLED_A-LED_DPPA0-PA7COM_1-COM_8PB0-PB7四、 实验说明1主要知识点概述:1)LED数码显示原理七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的极管的接线形式,可分成共阴极型和共阳极型。LED数码管的ga七个发光二极管因加正电压而发亮,因加零电压而不以发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,下面给出共阳极的字形码。“0”

温馨提示

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

评论

0/150

提交评论