版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十六讲:中断控制器Intel8259A重点:8259A的编程、8259A的级联、8259A的应用举例七、8259A的编程1、8259A的端口地址由8259A的结构可知:寻址8259A内部寄存器组的信号包括:CS*、A0、RD*、WR*;CS*是片选信号,低电平时,芯片工作。A0:寻址8259A芯片中不同的寄存器组,8259A芯片占用系统的两个端口地址,偶地址和奇地址,规定偶地址小于奇地址。8259A内部寄存器的区别,采用特征位和操作顺序方法。2、8259A的初始化编程初始化编程8259A开始工作前,必须写入初始化命令字ICW操作命令字工作期间要改变8259A的中断控制方式,可写入操作命令字OCW1、初始化命令字ICW初始化命令字ICW,有4个在8259A开始工作前写入必须按照ICW1~ICW4顺序写入ICW1和ICW2必须写ICW3和ICW4由工作方式决定D7D6D5D4D3D2D1D0×××1LTIM×SNGLIC4ICW1:写入偶地址端口D0(IC4):D0=1设置ICW4,D0=0不设置ICW4。D1(SNGL):=1单片;=0多片级连。D2(ADI):8088/8086系统不用。D3(LTIM):=1电平触发;=0上升沿触发。D4=1是ICW1的特征位。D5-D7:8088/8086系统不用。ICW2:写入奇地址端口
D7—D3:中断类型码的高5位,D2—D0由IRi决定(000—IR0---111—IR7)。
例:若ICW2=45H,则8级中断源的中断类型码:IR0为40H,…,IR7为47HT7T6T5T4T3×××D7D6D5D4D3D2D1D0ICW3:级连命令字主8259A:Si=1对应IRi接有从片从8259A:ID2~ID0为该片的识别码例:主ICW3=11100010,说明IR7、IR6、IR5、IR1上接有从片;若从片的INT接在主片的IR1引脚上,其ICW3=00000001D7D6D5D4D3D2D1D0S7S6S5S4S3S2/ID2S1/ID1S0/ID0ICW4:D7~D5=000是ICW4的特征SFNM——嵌套方式:(=1)特殊全嵌套方式,(=0)全嵌套方式
BUF——数据线的连接方式:缓冲方式(=1);非缓冲方式(=0)
M/S——主片/从片选择:主片(M/S=1);从片(M/S=0)
AEOI—中断结束方式:自动中断结束(=1);非自动中断结束(=0)
μPM—16位8086(PM=1)D7 D6 D5D4 D3 D2 D1 D000 0SFNM BUF M/S AEOIμPM例:单片8259A,8088模式,采用缓冲方式连接,优先级设置为全嵌套中断方式,端口地址为20H,21H。中断类型码:08HMOVAL,13H;边沿触发,单片,需ICW4OUT20H,ALMOVAL,08H;中断向量为00001***OUT21H,ALMOVAL,09H;8088模式,缓冲,全嵌套OUT21H,AL2、操作命令字OCW8259A工作期间,可随时接受操作命令字OCW:OCW1~OCW3OCW1:写入奇地址端口,是中断屏蔽命令字,通过编程对中断源进行屏蔽或开放Di=1禁止IRi中断;0允许IRi中断。D7D6 D5 D4 D3 D2 D1 D0M7M6M5M4 M3 M2 M1 M0OCW2:写入偶地址端口,D4D3=00是特征位,用于设置中断优先级循环方式和中断结束方式。
R(=1)优先级采用循环方式;(=0)为非循环方式
SL(=1)用L2、L1、L0指明中断源;
EOI指示OCW2是否作为中断结束命令。
R、SL、EOI0、0、0:清除自动EOI循环优先级命令;1、0、0:设置自动EOI循环命令;0、0、1:普通的EOI命令。完全嵌套方式下,中断服务程序结束时,用命令设置EOI=1结束中断程序返回断点;0、1、1:特殊EOI,非完全嵌套方式下,用L2、L1、L0指出ISR寄存器中需要被清除的位;1、0、1:自动循环的EOI,使当前中断处理程序的ISR清零,优先级次序左移一位;1、1、1:设置特殊循环方式,清除当前中断的对应位ISR;用L2、L1、L0指出哪一个中断源的中断优先级降为最低;1、1、0:设置优先级,用L2、L1、L0指出中断优先级最低的中断源。(3)、OCW3:写入偶地址端口D4D3=01是特征位D7D6D5D4D3D2D1D00ESMMSMM01PRRRISD6D5=(11)置特殊屏蔽模式;(=01)撤消特殊屏蔽模式;D6=0,D5无意义。D2:查询方式位(P),=1,设置为查询方式。P=0与D1(RR)、D0(RIS)组合构成对内部寄存器的读出命令D2D1D0=010,读中断请求寄存器(IRR)。D2D1D0=011,读取中断服务寄存器(ISR)。八、8259A的级联主片的3条级联线与各从片的同名级联线引脚对接,主片为输出,从片为输入。主片向从片发优先级别最高的中断请求的从片代码,从片用该代码与本片的代码进行比较,符合则将本片ICW2中设定中断类型码,送数据总线。sp*/en*主片的接+5v,从片的接地。级连系统中的所有8259A都必须进行各自独立的编程,作为主片的8259A必须设置为特殊的全嵌套方式,以避免同一从片中,优先级较高的中断请求被屏蔽。九、8259A的应用举例例1、
IBMPC机中,单片8259A。在I/O地址中,分配给8259A的端口地址为20H和21H,要求初始化为:边沿触发、缓冲连接、中断结束采用EOI命令、中断优先级采用完全嵌套方式,8级中断源的中断类型分别为08H—0FH初始化程序为:
MOVDX,20HMOVAL,00010011BOUTDX,AL;写入ICW1MOVDX,21HMOVAL,08HOUTDX,AL;写入ICW2MOVAL,00001101BOUTDX,AL;写入ICW4XORAL,ALOUTDX,AL;写入OCW1
。。。。。。
STI
。。。。。。例3、读8259A相关寄存器的内容。设8259A的端口地址为20H、21H,读IRR、ISR、IMR寄存器的内容,并相继保存在数据段2000H开始的内存单元中;若该8259A为主片,请用查询方式,查询哪个从片有中断请求。解:MOVAL,xxx01010B;设置OCW3,读取IRR的内容
OUT20H,ALINAL,20H;读入并保存IRR的内容
MOV(2000H),ALMOVAL,xxx01011B;置OCW3读取ISR的内容OUT20H,ALINAL,20H;读入并保存ISR的内容MOV(2001H),ALINAL,21H读入并保存IMR的内容MOV(2002H),ALMOVAL,xxx0110xB;置OCW3,查询是否有中断请求OUT20H,ALINAL,20H读相应状态,判断最高位是否为1TESTAL,80HJZDONEANDAL,07H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论