您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 使用8259A的单级中断控制实验
实验五使用8259A的单级中断控制实验一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法。2、掌握中断控制器8259A的应用编程。二、预备知识1、8259A的内部结构8259A是专为控制优先级中断而设计的芯片。它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断。如图5-19所示,它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成。图5-19中断请求寄存器:寄存所有要求服务的请求IR0~IR7。中断服务寄存器:寄存正在被服务的中断请求。中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断。数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字。读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式。级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。2、8259A编程及初始化(1)写初始化命令字*写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断优先级排队和确定系统用单片还是多片。*写初始化命令字ICW2,以定义中断向量的高五位类型码。*写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从片。第i位=0,表明IRi引脚上无从片第i位=1,表明IRi引脚上有从片*写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。(2)写控制命令字*写操作命令字0CW1,用来设置或清除对中断源的屏蔽。第i位=0,对应的中断请求IRi开放第i位=1,对应的中断请求IRi屏蔽注:OCW1如不写,则在初始化命令写入后,OCW1为全开放状态。*操作命令字OCW2,设置优先级是否进行循环、循环方式及中断结束方式。注:8259A复位时自动设置IR0优先权最高,IR7优先权最低。*操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态。(3)8259A查询字通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,有则转入相应的中断服务程序。三、实验内容本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表5-3所示。表5-3根据实验原理图5-20(见下页),8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有2个端口地址,本系统中为20H、21H。20H用来写ICW1,21H用来写ICW2、ICW3、ICW4,初始化命令字写好后,再写操作命令字。OCW2、OCW3用口地址20H,OCW1用口地址21H。图5-14中,使用了3号中断源,IR3插孔和SP插孔相连,中断方式为边沿触发方式,每按一次AN按钮产生一次中断信号,向8259A发出中断请求信号。如果中断源电平信号不符规定要求则自动转到7号中断,显示“Err”。CPU响应中断后,在中断服务中,对中断次数进行计数并显示,计满5次结束,显示器显示“8259Good”。四、实验线路连接8259A的IR3插孔和SP插孔相连。SP插孔初始电平为低电平。图5-20五、实验软件框图六、实验软件清单CODESEGMENTASSUMECS:CODEINTPORT1EQU0020HINTPORT2EQU0021HINTQ3EQUINTREEUP3INTQ7EQUINTREEUP7CONTPORTEQU00DFHDATAPORTEQU00DEHDATA0EQU0580HDATA1EQU0500HDATA2EQU0508HDATA3EQU0518HDATA4EQU0520HORG1800HSTART:JMPTint1Tint1:CALLFORMATCLDMOVDI,DATA0MOVCX,08HXORAX,AXREPSTOSWMOVSI,DATA3CALLLEDDISP;DISP8259-1MOVAX,0HMOVDS,AXCALLWRINTVER;WRITEINTRRUPTMOVAL,13HMOVDX,INTPORT1OUTDX,ALMOVAL,08HMOVDX,INTPORT2OUTDX,ALMOVAL,09HOUTDX,ALMOVAL,0F7HOUTDX,ALMOVBYTEPTRDS:[0601H],01H;TIME=1STIWATING:JMPWATINGWRINTVER:MOVAX,0HMOVES,AXMOVDI,002CHLEAAX,INTQ3STOSWMOVAX,CSSTOSWMOVDI,003CHLEAAX,INTQ7STOSWMOVAX,CSSTOSWRETINTREEUP3:CLIMOVAL,DS:[0601H]CALLCONVERSMOVSI,DATA0CALLLEDDISPDMOVAL,20HMOVDX,INTPORT1OUTDX,ALADDBYTEPTRDS:[0601H],01HCMPBYTEPTRDS:[0601H],06HJNAINTRE1MOVSI,DATA4CALLLEDDISPINTRE3:JMPINTRE3CONVERS:MOVBH,0HANDAL,0FHMOVBL,ALMOVAL,CS:[BX+DATA2]MOVBX,DATA0MOVDS:[BX],ALRETINTRE1:MOVAL,20HMOVDX,INTPORT1OUTDX,ALSTIIRETINTREEUP7:CLIMOVSI,DATA1CALLLEDDISPMOVAL,20HMOVDX,INTPORT1OUTDX,ALIRETLEDDISP:MOVAL,90HMOVDX,CONTPORTOUTDX,ALMOVBYTEPTRDS:[0600H],00LED1:CMPBYTEPTRDS:[0600H],07HJALED2MOVBL,DS:[0600H]MOVBH,0HMOVAL,CS:[BX+SI]MOVDX,DATAPORTOUTDX,ALADDBYTEPTRDS:[0600H],01HJNZLED1LED2:RETLEDDISPD:MOVAL,90HMOVDX,CONTPORTOUTDX,ALMOVBYTEPTRDS:[0600H],00LEDD1:CMPBYTEPTRDS:[0600H],07HJALEDD2MOVBL,DS:[0600H]MOVBH,0HMOVAL,DS:[BX+SI]MOVDX,DATAPORTOUTDX,ALADDBYTEPTRDS:[0600H],01HJNZLEDD1LEDD2:RETFORMAT:MOVBX,0MOVWORDPTRDS:[BX+0500H],5050HADDBX,2MOVWORDPTRDS:[BX+0500H],0079HADDBX,2MOVWORDPTRDS:[BX+0500H],0000HADDBX,2MOVWORDPTRDS:[BX+0500H],0000HADDBX,2MOVWORDPTRDS:[BX+0500H],063FHADDBX,2MOVWORDPTRDS:[BX+0500H],4F5BHADDBX,2MOVWORDPTRDS:[BX+0500H],6D66HADDBX,2MOVWORDPTRDS:[BX+0500H],077DHADDBX,2MOVWORDPTRDS:[BX+0500H],6F7FHADDBX,2MOVWORDPTRDS:[BX+0500H],7C77HADDBX,2MOVWORDPTRDS:[BX+0500H],5E39HADDBX,2MOVWORDPTRDS:[BX+0500H],7179HADDBX,2MOVWORDPTRDS:[BX+0500H],4006HADDBX,2MOVWORDPTRDS:[BX+0500H],4040HADDBX,2MOVWORDPTRDS:[BX+0500H],6D6FHADDBX,2MOVWORDPTRDS:[BX+0500H],7F5BHADDBX,2MOVWORDPTRDS:[BX+0500H],3F5EHADDBX,2MOVWORDPTRDS:[BX+0500H],5C3FHADDBX,2MOVWORDPTRDS:[BX+0500H],6D6FHADDBX,2MOVWORDPTRDS:[BX+0500H],7F5BHRETCODEENDSENDSTART七、实验步骤1、按图5-20连好实验线路2、运行实验程序在系统显示“DVCC-86H”状态下,按任意键,系统显示命令提示符“-”。按GO键,显示“1000XX”输入F000:B2E0按EXEC键,在DVCC-8086H上显示“8259-1”。3、按AN按键,每按二次产生一次中断,在显示器左边一位显示中断次数,满5次中断,显示器显示“8259good”。实验六8255A可编程并行口实验(一)一、实验目的1、掌握并行接口芯片8255A和微机接口的连接方法。2、掌握并行接口芯片8255A的工作方式及其编程方法。二、预备知识1、8255A结构8255A是可编程并行接口芯片,双列直插式封装,用+5V单电源供电,如图5-6是8255A的逻辑框图,内部有3个8位I/O端口:A口、B口、C口;也可以分为各有12位的两组:A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作;读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和8088系统数据总线相连。2、8255A端口地址见表5-1表5-1图5-123、8255A工作方式8255A芯片有三种工作方式:方式0、方式1、方式2。它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。方式0:基本输入/输出图5-7(a)方式0引脚功能如图5-13(a)所示。该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出,C口分成高4位(PC7~PC4)和低4位(PC3~PC0)两组,也有控制字决定其输入或输出。需注意的是:该方式下,只能将C口其中一组的四位全部置为输入或输出。方式1:选通输入/输出图5-13(b)方式1输入图5-13(c)方式1输出如图5-13(b)、(c)所示。该方式又叫单向输入输出方式,它分为A、B两组,A组由数据口A和控制口C的高4位组成,B组由数据口B和控制口C的低4位组成。数据口的输入/输出都是锁存的,与方式0不同,由控制字来决定它作输入还是输出。C口的相应位用于寄存数据传送中所需的状态信号和控制信息。方式2:双向输入输出图5-13(D)方式2双向输入输出如图5-13(d)所示。本方式只有A组可以使用,此时A口为输入输出双向口,C口中的5位(PC3~PC7)作为A口的控制位。4、8255A控制字(1)方式选择控制字(2)PC口按位置/复位控制字三、实验内容1、实验原理如实验原理图5-14所示,PC口8位接8个开关K1~K8,PB口8位接8个发光二极管,从PC口读入8位开关量送PB口显示。拨动K1~K8,PB口上接的8个发光二极管L1~L8对应显示K1~K8的状态。图5-142、实验线路连接(1)8255A芯片PC0~PC7插孔依次接K1~K8。(2)8255A芯片PB0~PB7插孔依次接L1~L8。(3)8255A的CS插孔接译码输出070H-07FH插孔。四、实验软件框图五、实验软件清单CODESEGMENTASSUMECS:CODEIOCONPTEQU0073HIOCPTEQU0072HIOBPTEQU0071HCONTPORTEQU00DFHDATAPORTEQU00DE
本文标题:使用8259A的单级中断控制实验
链接地址:https://www.777doc.com/doc-5652196 .html