Protues8259A实验报告

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

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

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

资源描述

华北电力大学实验报告||实验名称8259A应用实验课程名称微机原理及应用老师|专业班级姓名学号一实验要求74LS273接8个指示灯,要求第一次中断LED0亮,第二次中断LED1亮,以此重复,直到10次计数到为止。【已知8259A采用上升沿触发,单片,全嵌套、非缓冲、普通中断结束方式,需要设置ICW4,中断类型号为80H—87H,在8259A的IR2端(INT2端)输入一个中断请求信号(该信号由开关提供),74LS273的输出接LED指示灯。】二思路1硬件(1)74HC138译码电路如图所示,A15为1,E2、E3接地保证74HC138正常工作,此时Y0、Y1对应地址分别为8000H、9000H。(2)8259的片选地址为9000H,所以CS接Y1。8086有16位数据总线,其低8位作为偶存储体来传输数据,8086的A0要一直为0,所以8259的A0要接8086的A18259的IR2端接开关,用来输入中断请求信号(3)74LS273的片选地址为8000H,且需要向其写入LED灯的状态,则Y0和WR经或非门后接入CLK。2软件(1)流程图(2)8259A初始化(ICW)据要求(上升沿触发、单片、全嵌套、非缓冲、普通中断结束方式、需设置ICW4,中断类型号为80H—87H),初始化:ICW1=13H(00010011B);写入偶地址端口9000HICW2=08H(00001000B);写入奇地址端口9002HICW4=01H(00000001B);写入奇地址端口9002H(3)中断屏蔽字(OCW1)(写入奇地址端口9002H)允许IR2中断OCW1与0FBH(11111011B)相与禁止IR2中断OCW1与04H(00000100B)相或(4)中断结束字(OCW2)(写入偶地址端口9000H)OCW2=20H(00000010B)三源程序CODESEGMENT;CODE逻辑段开始ASSUMECS:CODESTART:CLI;关中断;8259初始化MOVDX,9000H;ICW1=13H(00010011B)MOVAL,13HOUTDX,ALMOVDX,9002H;ICW2=80H(10000000B)MOVAL,80HOUTDX,ALMOVDX,9002H;ICW3=01H(00000001B)MOVAL,01HOUTDX,ALMOVAX,0;非规范装入地址向量MOVDS,AXMOVBX,82H*4MOVAX,OFFSETINTPMOV[BX],AXINCBXINCBXMOVAX,SEGINTPMOV[BX],AXMOVDX,9002H;允许IRQ2中断INAL,DXANDAL,0FBHOUTDX,ALMOVDX,8000HMOVAL,00HOUTDX,AL;发光二极管初始化为全灭MOVBL,1;BL中为LED灯亮的初始状态:LED0亮MOVCX,10;设置中断次数为10STIL1:MOVAL,82H;Proteus中8086模型有问题,它取得的中断号是最后发到总线上的数据,并不是由8259发出的中断号MOVDX,0B000HOUTDX,AL;所以造成了要在这里执行EOI的假相,地址使用没有用过的,如b000h,8259的地址是9000hCMPCX,0JZQUITJMPL1;循环等待中断QUIT:CLIMOVDX,9002H;禁止IRQ2中断INAL,DXORAL,4OUTDX,ALSTI;开中断MOVCX,0FFFFHL:LOOPL;为看到第10次中断结束后LED灯亮,需用延时MOVDX,8000HMOVAL,00H;10次中断结束,LED灯全灭OUTDX,ALJMP$INTPPROC;中断服务子程序MOVAL,BLMOVDX,8000HOUTDX,ALROLBL,1DECCX;计数值减1MOVDX,9000HMOVAL,20HOUTDX,AL;发中断结束命令EOIIRET;中断返回INTPENDPCODEENDSENDSTART;汇编结束四运行结果第一次按开关执行第一次中断LED0亮。第二次按开关LED1亮以此重复,LED灯依次亮灭,直到10次计数为止。第十次按动开关LED1亮最后LED灯全灭五实验思考题1、中断服务子程序是何时开始执行的?将INTP的入口地址送入到IP和CS后。2、中断类型号是何时送到数据总线上的?INTA发出第二个负脉冲时

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

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

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

×
保存成功