使用参考8259A的单级中断控制实验.docx
26页实验五使用8259A的单级中断控制实验一、实验目的1、掌握中断控制器8259A与微机接口的原理和方法2、掌握中断控制器8259A的应用编程二、预备知识1、8259A的内部结构8259A是专为控制优先级中断而设计的芯片它将中断源按优先级排队、辨认中断源、提供中断向量的电路集成于一体,只要用软件对它进行编程,就可以管理8级中断如图5—19所示,它由中断请求寄存器(IRR)、优先级分析器、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、数据总线缓冲器、读写控制电路和级联缓冲器、比较器组成A MTT拉剃逐号~图5-19中断请求寄存器:寄存所有要求服务的请求IR0~IR7中断服务寄存器:寄存正在被服务的中断请求中断屏蔽寄存器:存放被屏蔽的中断请求,该寄存器的每一位表示一个中断号,该位为1,屏蔽该号中断,否则开放该号中断数据总线缓冲器:是双向三态的,用以连接系统总线和8259A内部总线,通过它可以由CPU对8259A写入状态字和控制字读写控制电路:用来接受I/O命令,对初始化命令和操作命令字寄存器进行写入,以确定8259A的工作方式和控制方式级联缓冲器/比较器:用于多片8259A的连接,能构成多达64级的矢量中断系统。
2、8259A编程及初始化(1)写初始化命令字*写初始化命令字ICW1(A0=0),以确定中断请求信号类型,清除中断屏蔽寄存器,中断1优先级排队和确定系统用单片还是多片」口不需耳[CW4,1=需要写ICW4715543210A7A6A5F15L口■多片以为级连;1=只一片8259LO中断向量地址间距81=地址间距4(初解模式下为0)L口=上升沿触发;2高电平触发-为1JCW1标志位L中断向量A7AdA5位(刖招模式下为叩0)*写初始化命令字ICW2,以定义中断向量的高五位类型码76543210A15/T7A14/T6A13/T5A12/T4AimA1OA3A8A15-A8:X0X0/3口片5方式下的中断向量高芯位加能方式下A&A□不用,设为口口口T7-T3,即36卷口以方式下的中断向量*写初始化命令字ICW3,以定义主片8259A中断请求线上IR0~IR7有无级联的8259A从主片76543210IR7EO第i位=0,表明IRi引脚上无从片第i位=1,表明IRi引脚上有从片75543210从片一口0口:从片连在主片的IRO±一口吐从片连在主片的【R1上-111:从片连在主片的IR7上*写初始化命令ICW4,用来定义8259A工作时用8085模式,还是8088模式,以及中断服务寄存器复位方式等。
76543210—口=工作于8邯留80鸵方式工作于8优"即当方式一口井断服务寄存器不自动复位用EOI命令复位L14断服务寄存器自动复位一0=从片L2主片一0825g与数据总线无缓冲器隹接L『以5g与数据总线有覆冲器隹接一单片8259「殷嵌套方式—1修片£259特殊忘套方式(2)写控制命令字*写操作命令字0CW1,用来设置或清除对中断源的屏蔽第i位=0,对应的中断请求IRi开放第i位=1,对应的中断请求IRi屏蔽注:OCW1如不写,则在初始化命令写入后, OCW1为全开放状态注:8259A复位时自动设置IR0优先权最高,IR7优先权最低001754320―0DR1FE用——10=下一个近读中断请求寄存器IRR—11■下一个电读中断服务寄存器IER—询命令,不是查询命令—叩JI乩用一10书殊屏蔽方式潘除11=特殊屏蔽方式设置*操作命令字OCW3,设置查询方式、特殊屏蔽方式以及读取8259中断寄存器的当前状态3)8259A查询字通过OCW3命令字的设置,可使CPU处于查询方式,随时查询8259A有否中断请求,有则转入相应的中断服务程序三、实验内容本系统中已设计有一片8259A中断控制芯片,工作于主片方式,8个中断请求输入端IR0~IR7对应的中断型号为8~F,其和中断矢量关于如下表5—3所示。
表5—3弘5gA中新源中断类型号中断矢量表地址IROS23HIR1924H~27H1FL2A龙H-2BHIR3B2CH-2FHIR4C30H-33HIR5D34H-37HIRE5E兑H~3BHIR7F3CH-3FH根据实验原理图5—20(见下页),8259A和8088系统总线直接相连,8259A上连有一系统地址线A0,故8259A有2个端口地址,本系统中为20H、21H20H用来写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插孔初始电平为低电平0 1 2 3 4 s G 7 0 u R R A c c c _D _D _D _D _D _D _D _D A o o T T N N NI I1 2 u 8A210TTSSUl 012345670RDNNAAA0123456?RRRRRRRRIIIIIIII5P/ENCSn-2生一-301234567R R R R R R R -R IIIIIIIIsp一图5—20五、实验软件框图主程序:中断服务程序:六、实验软件清单CODESEGMENTASSUMECS:CODEINTPORT1EQU0020HINTPORT2EQU0021HINTQ3EQUINTREEUP3INTQ7EQUINTREEUP7CONTPORTEQU00DFHDATAPORTEQU00DEHDATA0EQU0580HDATA1EQU0500HDATA2EQU0508HDATA3EQU0518HDATA4EQU0520HORG1800HSTART:JMPTintlTintl:CALLFORMATCLDMOVDI,DATA0MOVCX,08HXORAX,AXREPSTOSW;DISP 8259-1MOVSI,DATA3CALLLEDDISPMOVAX,0HMOVDS,AXCALL WRINTVER;WRITE INTRRUPTMOVAL,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,DATA0CALLLEDDISPDMOVDX,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],07HJALED2MOV BL,DS:[0600H]MOV BH,0H#MOVAL,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],6D66HMOVWORDPTRDS:[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。





