您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 实验六--8259外部中断实验
实验四8259外部中断实验姓名:学号:班级:1、实验要求:用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。要求程序中对每次中断进行计数,并将计数结果显示在LED数码管上。2、实验目的:(1)学习8088/86与8259的连接方法。(2)学习8088/86对8259的控制方法。3.实验器材:(1)G2010+实验平台1台(2)G6W仿真器1台(3)连线若干根(4)8259芯片1片(5)万用表1块(6)Lab8088板1块4、实验电路:5、实验说明:编程时注意:(1)正确地设置可编程中断控制和工作方式。(2)必须正确地设置中断服务程序地址。8259可外接8个中断源,本实验只响应INT0中断,8259也可以多级连接以响应多个中断源。实验时,将单脉冲信号接到8259的INT0脚。每次中断时,可看到LED显示会加1。6、实验框图:开始设置中断服务程序地址计数值加1输出计数值主程序框图EXTINT中断子程序框图7、程序清单:(IN8088A/B04.ASM)OUTBITequ0e101h;位控制口CLK164equ0e102h;段控制口(接164时钟位)DAT164equ0e102h;段控制口(接164数据位)ICW1equ00010011b;单片8259,上升沿中断,要写ICW4ICW2equ00100000b;中断号为20HICW4equ00000001b;工作在8086/88方式OCW1equ11111110b;只响应INT0中断CS8259Aequ0A000h;8259地址CS8259Bequ0A001hdatasegmentLEDBufdb6dup(?);显示缓冲Numdb1dup(?);显示的数据DelayTdb1dup(?)LEDMAP:;八段管显示码db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hCNTdb0dataendscodesegmentassumecs:code,ds:dataDelayprocnearpushax;延时子程序pushcxmoval,0movcx,axloop$popcxpopaxretDelayendp设置中断控制器工作方式中断允许等待中断中断入口输出中断结束命令中断返回DisplayLEDprocnearmovbx,offsetLEDBufmovcl,6;共6个八段管movah,00100000b;从左边开始显示DLoop:movdx,OUTBITmoval,0outdx,al;关所有八段管moval,[bx]movch,8;送164DLP:pushaxmovah,0testal,80hjzGN1movah,1GN1:movdx,DAT164;输出数据位moval,ahandal,0fdhoutdx,almovdx,CLK164;送出时钟脉冲;moval,1oral,02houtdx,al;moval,0andal,0fdhoutdx,alpopaxshlal,1decchjnzDLPmovdx,OUTBITmoval,ahoutdx,al;显示一位八段管pushaxmovah,1callDelaypopaxshrah,1incbxdeccljnzDLoopmovdx,OUTBITmoval,0outdx,al;关所有八段管retDisplayLEDendpIEnterprocnearpushaxpushdxincCNTmovdx,CS8259Amoval,20h;中断服务程序结束指令outdx,alpopdxpopaxiretIEnterendpIInitprocmovdx,CS8259Amoval,ICW1outdx,almovdx,CS8259Bmoval,ICW2outdx,almoval,ICW4outdx,almoval,OCW1outdx,alretIInitendpStartprocnearclimovax,data实验截图:实验总结:通过这个实验,我基本了解了如何用8088/86控制8259可编程中断控制器,实现对外部中断的响应和处理。这个实验时本学期实验课的最后一节,实验过程还是比较简单,按照实验步骤就能做完这个实验,并且在能够在LED数码管上显示,前面四位显示8259芯片号,后面两位显示计数器的值,这个数值是两位的16进制数。通过老师的讲解更加了解整个程序的具体操作。
本文标题:实验六--8259外部中断实验
链接地址:https://www.777doc.com/doc-4424156 .html