资源描述:
《实验十8255方式1中断》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验十可编程8255方式1一、实验目的1、掌握8255工作方式1时的使用及编程。2、进一步掌握中断处理程序的编写。二、实验设备TPC-USB实验系统(块USB总线接口模块、一个扩展实验台及软件集成实验环境)三、实验原理与内容1、按图10-1,8255方式1的输出电路连好线路。2、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:依次输出01H、02H,04H,08H,10H,20H,40H,80H使L0~L7依次发光,中断8次结束。3、按图10-2,8255方
2、式1输入电路,连好线路。图10-1输出电路图10-2输入电路4、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断8次结束。四、参考流程图(如图10-3、图10-4)五、汇编程序参考程序1:codesegmentassumecs:codestart:movax,csmovds,axmovdx,offsetint_procmovax,250bh;设外部中断int_proc类型号为0BHint21h
3、movdx,21h;中断屏蔽寄存器inal,dxandal,0f7h;开放IRQ3中断outdx,almovdx,28bh;控制字端口1010001011moval,0a0h;置8255为A口方式1输出10100000outdx,almoval,0dh;将PC6置位00001101outdx,almovbl,1ll:jmpll;循环等待int_proc:moval,blmovdx,288h;将AL从8255的A口输出1010001000outdx,almoval,20hout20h,al;中断结束命令
4、EOI(用20h表示)shlbl,1jncnext;CF=0,中断次数小于8,返回主程序inal,21horal,08h;关闭IRQ3中断out21h,alsti;开中断movah,4ch;返回DOSint21hnext:iretcodeendsendstart参考程序2:movax,250bhint21hmovdx,21hinal,dx;设置IRQ3中断矢量andal,0f7h;开放IRQ3中断outdx,almovdx,28bh;控制端口moval,0b8h;设8255为A口方式1输入101110
5、00outdx,almoval,09h;将PC4置位00000100outdx,almovbl,8;BL为中断次数计数器sss:jmpsssint_proc:;中断服务程序movdx,288h;自8255A口输入一数据inal,dxmovdl,al;将所输入的数据保存到DLmovah,02h;显示ASCII码为DL的字符int21hmovdl,0dh;回车int21hmovdl,0ah;换行int21hmovdx,20h;发出EOI结束命令moval,20houtdx,aldecbl;计数器减1jnz
6、next;不为0则返回主程序inal,21horal,08hout21h,al;关IRQ3中断sti;movah,4ch;返回DOSint21hnext:iretcodeendsendstart