微机综合实验-Protues

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

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

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

资源描述

微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲1第一部分基于Protues的接口仿真实验实验一Protues操作基础1、实验目的熟悉ProteusISIS编辑环境,了解电路绘图工具的使用和原理图设计步骤。2、实验内容1——一阶动态电路仿真(a)元件的拾取元件名称说明参数CAPACITOR电容1000μFRES电阻1KΩ,100ΩLAMP灯泡12VSW-SPDT两位开关BATTERY电池直流电源12V(b)编辑窗口视野控制(c)元件位置的调整和参数修改(d)电路连线(原理图电气规则检测)BAT112VC11000uR11kL112VSW1SW-SPDTR2100(e)电路动态仿真(写出实验结果)文件保存cap1.dsn3、实验内容2——一8086最小模式下的总线结构和I/O口地址(实验报告上给出电路图和端口地址分配表即可)8086最小模式下的总线结构和I/O口地址分配如图1.1所示,与教材上不同的是•没有加双向数据收发器,不影响实验结果的正确性。•其中8086的引脚A16~A19在图中命名为AD16~AD19,是为了与经过74HC373锁存输出的引脚(A16~A19)区分开。实际上这4根引脚不与数据总线复用。这张最小模式的电路图以后每次实验都会用到,所以要保存好,避免每次重新画。微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲2AD[16..19]AD[0..15]AD[16..19]A[0..19]AD7AD0AD1AD2AD3AD4AD5AD6AD8AD9AD10AD11AD12AD13AD14AD15A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15AD16AD17AD18AD19A16A17A18A19D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274HC373A1B2C3E16E24E35Y015Y114Y213Y312Y411Y510Y69Y77U474LS138D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U574HC373A12A13A14IO0IO1IO2IO3IO4IO5IO6IO7A15D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U374HC373/BHEAD[0..15]READY22INTR18NMI17RESET21CLK19MN/MX33HOLD/GT131HLDA/GT030A[16..19]M/IO/S028ALE/QS025DT/R/S127INTA/QS124TEST23BHE34DEN/S226RD32WR/LOCK29U18086/RD/WRNMI图1.18086最小模式下的总线结构和I/O口地址分配分析图1.1中74LS138译码器构成的I/O端口译码电路,可得到表1所示的端口地址分配情况。表1.I/O端口地址A15A14A13A12A11~A0十六进制地址IO010000~08000HIO110010~09000HIO210100~0A000HIO310110~0B000HIO411000~0C000HIO511010~0D000HIO611100~0E000HIO711110~0F000H图1.1中用到的元件8086、74LS138、74HC373,需要在“ComponentMode”下点击按钮P,从元件库中选出见图1.2。电源和接地端则在“TerminalMode”下选择“power”和“ground”。引脚端点和标号在“TerminalMode”下选择“default”。画总线要选择“BUSMode”。微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲3图1.2元件的选取图1.3终端和总线的绘制如果需要为终端等输入标签LABEL,则选中终端双击,出现图1.4所示的对话框,输入即可。如果为引脚添加标签,则选中引脚后点击右键,选择“Placewirelabel”,同样会出现图1、ComponentMode2、PickfromLibraries3、输入元件名8086TerminalModeDefaultBusMode画蓝色的总线微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲41.4所示的对话框。如果LAEBL名已经存在,可以在下拉列表中选择。图1.4标签的添加微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲5实验二简单I/O接口1、实验原理用74HC245作为输入端口将8个开关状态读入,然后由74HC373输出到8个发光二级管来显示开关的状态。开关左边白色,则小灯亮,左边黑色小灯灭。注:电路中8086最小模式和译码电路没有画出,请参考图1.1。AD0AD1AD2AD3AD4AD5AD6AD7AD0AD1AD2AD3AD4AD5AD6AD7BD0BD1BD2BD3BD4BD5BD6BD7EOFFON12345678161514131211109DSW1DIPSW_8234567891RP1RESPACK-8A02B018A13B117A24B216A35B315A46B414A57B513A68B612A79B711CE19AB/BA1U774HC245D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U674HC373BD0R1100R2100R3100R4100R5100R6100R7100R8100BD1BD2BD3BD4BD5BD6BD7121312U7:A74273456U7:B7427IO0A0A0IO1/RD/WRU8NOTD1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD4LED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLO图2.1简单输入输出程序原理图图中用到的元件包括:74HC373,74HC245,7427,NOT,RES(双击后阻值修改成100欧姆),RESPACK-8(排阻)、DISPW-8(开关组),LED-YELLOW(黄色发光二极管)2、参考程序请分析电路图并完成下面的程序CODESEGMENTASSUMECS:CODESTART:MOVDX,;输入端口读入开关状态MOVDX,;将状态输出至LEDJMPSTARTCODEENDS微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲6ENDSTART说明:由于Proteus是器件级的仿真过程,因此汇编程序的运行仿真是在无操作系统支持的状态下进行的。所以,仿真时汇编程序不再支持DOS和BIOS调用。而且在Proteus下的仿真过程应该是持续的,主程序不能结束并推出运行,必须以某种方式使得程序循环执行。本实验中的做法是利用JMPSTART指令构成无条件循环结构使得仿真继续进行。3、实验步骤(1)按图2.1绘制好电路图,并保存,比如文件名为IO.dsn;(2)编写完成上述程序,编译链接生成可执行程序后,比如可执行程序名为IO.exe,将该文件与电路图文件IO.dsn放在同一路径下。(3)双击电路中的8086后出现图2.2,有两个地方需要设置:首先点击ProgramFile后面的文件夹图标,将可执行文件IO.exe加载进来;然后点击AdvancedProperties下方的下拉列表,选择第2行InternalMemorySize,在旁边的文本框中改成0x10000(即1MB)。图2.2程序加载及内存大小设置(4)点击最下方的运行图标,观察仿真效果,拨动开关,观察发光二级管是否相应变化。实验报告内容包括:实验名称:简单I/O接口实验目的:掌握端口译码电路的分析与设计方法,掌握无条件传输方式的电路和软件设计实验内容:(1)实验原理,(2)程序实验结果:根据观察到的内容写改成0x10000微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲7实验三不可屏蔽中断内容一:控制8位LED循环移动1、实验原理利用不可屏蔽中断监测按键状态,当有按键按下时,LED向右移动一位。注:电路中8086最小模式没有画出,请参考图1.1。AD1AD2AD3AD4AD5AD6AD7BD0BD1BD2BD3BD4BD5BD6BD7AD0D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U674HC373BD0R1100R2100R3100R4100R5100R6100R7100R8100BD1BD2BD3BD4BD5BD6BD73456U7:B7427A0IO0/WRD1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD4LED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOWNMIR910k图3.1控制8位LED循环移动原理图用到的元件包括:74HC373,74HC245,7427,RES(与LED相连的电阻需要双击后阻值修改成100欧姆),LED-YELLOW(黄色发光二极管),BUTTON(按钮)2、程序分析不可屏蔽中断请求由NMI引脚上的上升沿信号触发,不受终端标志位CF的影响。中断类型号为2。中断相关程序编写,一般步骤包括:(1)根据中断类型码计算中断向量在中断向量表中的地址,这里是2*4~2*4+3;(2)然后将中断服务程序入口地址送入中断向量表的相应位置;(3)编写中断服务子程序下面是参考程序codesegmentassumecs:codestart:pushesxorax,axmoves,axmoval,2xorah,ahshlal,1shlal,1;计算2号中断的中断向量在中断向量表中的地址movsi,ax;中断向量的表地址送SI微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲8movax,offsetnmi_servicemoves:[si],ax;保持中断服务程序的IP地址movbx,csmoves:[si+2],bx;保持中断服务程序的CS地址popesmoval,;LED初值,最低位D1亮movdx,;74HC373输出口地址outdx,aljmp$nmi_service:;中断服务程序;LED状态移位movdx,;74HC373输出口地址outdx,alexit:iret;中断返回codeendsendcodeendsend思考要实现LED亮灭的移动该如何实现?图3.1中LED是共阳极的,阴极通过限流电阻与74HC373的引脚相连,请问引脚上为高电平时LED是亮还是灭?低电平呢?改如何设置74HC373输出引脚的初始状态,才能使得只有D1亮,其他D2~D8灭呢?实验中每按下一次Button按钮,就触发一次NMI请求,执行一次中断服务程序,因此控制LED右移的指令在中断服务程序中,请思考应该用什么指令?内容二:控制七段数码递增显示1、实验原理利用不可屏蔽中断监测按键状态,当有按键按下时,七段数码管加1,加到9后回0,初始时显示0。附:七段数码管显示原理(a)七段数码管(b)共阴(b)共阳图3.3数码管原理图微机原理与接口技术实验讲义南京信息工程大学信息与控制学院陈逸菲9表3.1七段数码管编码共阴共阳数字D7D6D5D4D3D2D1D0编码D7D6D5D4D3D2D1D0编码0001111113FH11000000C0H10000011006H11111001FBH2010110115BH10100100A4H3010011114FH10110001B1H40110011066H1001100199H5011011016DH1001001092H6011111017DH1000001082H70000011107H1111

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

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

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

×
保存成功