微机原理与接口实验 4.7 中断控制器-8259 赖晓铮课件_第1页
微机原理与接口实验 4.7 中断控制器-8259 赖晓铮课件_第2页
微机原理与接口实验 4.7 中断控制器-8259 赖晓铮课件_第3页
微机原理与接口实验 4.7 中断控制器-8259 赖晓铮课件_第4页
微机原理与接口实验 4.7 中断控制器-8259 赖晓铮课件_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理与接口实验系列一、IO(8255)二、定时器/(8253)三、串口通信(8251)四、模数转换(ADC0809)五、数模转换(DAC0832)六、液晶屏显示(LCD1602)七、中断控制器(8259)laixz@QQ:68046508(七)

中断控制器(8259)实验实验内容:●构建一个“嵌套中断CPU+8259”的微型计算机系统,使嵌套中断结构的CPU可以通过8259A芯片根据中断优先级列表响应和管理多个外部中断事件。实验目的:●理解可编程中断控制器8259A的内部结构和工作原理。●掌握嵌套中断结构的CPU通过8259A管理多个中断事件的方法。微程序版“CPU+8259”电路图中断控制器8259应用电路图可编程中断控制器芯片8259A结构图INTAD7~D0INT中断请求寄存器中断屏蔽寄存器数据总线缓冲器IR0IR7读/写控制逻辑级联缓冲器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先级分析器中断服务寄存器控制逻辑8259A主从式级联中断系统结构图8259A工作方式一览中断查询触发方式:查询字8259A初始化命令字ICW38259A初始化命令字ICW4IR2中断8259A操作命令字OCW28259A中断响应过程及示例问题:如何实现两次#INTA脉冲?8259A中断响应过程时序图实验步骤:1)8259A测试程序test_8259.asm存放在实验4.7项目的子文件夹test里,其功能与“实验3.4嵌套中断CPU实验”的示例程序nested_ISR相似:主程序功能是寄存器R0递减过程,最低优先级中断IR7的子程序功能是寄存器R1递减过程,最高优先级中断请求IR0的子程序功能则是赋值R0和R1皆为80H,令R0和R1递减一次即停止。与nested_ISR不同的是,test_8259程序中R0和R1的初值都是由8255A的PA口外接的拨码开关赋值(注:拨码开关的取值一定要大于80H,否则程序跑不起来)。具体代码如后页所示。2)编译、烧写、自动运行程序test_8259,随机触发中断请求IR0或IR7,观察PC、IR、通用寄存器Rx及总线BUS的数据变化。(编译和烧写asm文件的方法参见“2.6存储器实验:ROM批量导入数据”)实验步骤:3)在程序test_8259的自动运行过程中,设置HLT指令“断点”,改为手动单步在IR7的中断子程序中嵌套触发中断请求IR0。观察和记录进入各级中断时,程序计数器PC、标志位寄存器PSW、总线BUS、通用寄存器Rx、以及BP_PC堆栈和BP_PSW堆栈的状态,然后再跳出“断点”返回上级程序。4)把中断请求IR0和IR7的子程序对调(在软件上怎么实现?),改为IR0触发寄存器R1递减,而中断IR7触发R0和R1递减停止。在IR0的中断子程序中随机嵌套触发中断请求IR7,请问中断请求IR7可以嵌套IR0中断子程序么?IR7中断子程序什么时候运行?汇编助记符注释(M地址:机器指令)SETR2,86H选择8255,控制端A1A0=1100H:0011100001H:10000110OUTAR2,PORT002H:01011010SETR2,99H控制字:PA输入/PB输出/PC输入03H:0011100004H:10011001OUTR2,PORT005H:01011000JMP,30H跳转到主程序06H:0001000007H:00110000test_8259(主程序)汇编助记符注释(M地址:机器指令)SETR1,80H;中断源0R1赋值80H(减1则最高位变0)10H:0011010011H:10000000HLT12H:00000001SETR2,82H选PB口,A1A0=0113H:0011100014H:10000010OUTAR2,PORT015H:01011010OUTR0,PORT0PB口输出16H:01010000MOVR0,R1R0赋值80H(减1则最高位变0)17H:01100001SETR2,C0H选择8259/偶地址18H:0011100019H:11000000OUTAR2,PORT01AH:01011010test_8259(中断子程序0)汇编助记符注释(M地址:机器指令)SETR2,60HEOI命令(OCW2命令字)固定优先级/中断结束/L2L1L0=0001BH:001110001CH:01100000OUTR2,PORT01DH:01011000OUTAR2,PORT0去掉8259片选,避免误修改配置1EH:01011010IRET1FH:01110000test_8259(中断子程序0)汇编助记符注释(M地址:机器指令)SETR2,60HEOI命令(OCW2命令字)固定优先级/中断结束/L2L1L0=0002BH:001110002CH:01100000OUTR2,PORT02DH:01011000OUTAR2,PORT0去掉8259片选,避免误修改配置2EH:01011010IRET2FH:01110000test_8259(中断子程序7)汇编助记符注释(M地址:机器指令)SETR2,C0H配置8259/偶地址30H:0011100031H:11000000OUTAR2,PORT032H:01011010SETR2,13H设置初始化命令字ICW1:上升沿触发/单片工作/需要设置ICW433H:0011100034H:00010011OUTR2,PORT035H:01011000SETR2,C2H配置8259/奇地址36H:0011100037H:11000010OUTAR2,PORT038H:01011010SETR2,08H设置初始化命令字ICW2:中断类型号(中断向量表入口地址00001xxx)39H:001110003AH:00001000OUTR2,PORT03BH:01011000test_8259(主程序)汇编助记符注释(M地址:机器指令)SETR2,80H;main选PA口,A1A0=0042H:0011100043H:10000000OUTAR2,PORT044H:01011010INR0,PORT0PA口输入,R0赋值45H:01000000SUBIR0,01R0递减“-1”46H:1100000047H:00000001JS46HR0最高位为1,则循环递减48H:0001110049H:01000110HLT4AH:00000001test_8259(主程序)思考题:●请把本实验的微程序版“嵌套中断CPU+8259”电路改成硬布线版和流水线版“嵌套中断CPU+8259”电路,并且运行本实验步骤所示的8259A测试程序。流水线版本的“嵌套中断CPU+8259”电路的设计有哪些需要注意地方?上述程序在硬布线或流水线版本中需要修改么?若需要,请修改并测试。

提示:

首先,参考“3.4嵌套中断CPU”实验,设计具有四级PC/PSW“断点”堆栈的流水线版嵌套中断CPU;

其次,8259端口[D7,D0]连接IO总线与CPU交互的同时,还要连接PC总线以便于把中断类型码打入程序计数器PC;

最后,如何设计使中断响应信号出现两个下降沿,满足8259A中断处理流程,是流水线版“嵌套中断CPU+8259”设计的关键。(七)

中断控制器(8259)实验附录:CPU指令集(OP码表)OP码(I7I6I5I4)指令助记符OP码(I7I6I5I4)指令助记符0111IRET1111OR/ORI0110MOV1110AND/ANDI0101OUT/OUTA1101ADD/ADDI0100IN1100SUB/SUBI0011SET1011XOR/XORI0010SOP(INC/DEC/NOT/THR)1010SHT(RLC/LLC/RRC/LRC)0001JMP/JMPR/Jx/JxR1001STO/PUSH0000NOP/HLT1000LAD/POP汇编语言功能I7I6I5I4I3I2I1I0LADRA,[ADDR];[ADDR]RA1000RA0/0ADDRPOPRA,[RB];[RB]RA1000RARBSTORA,[ADDR];(RA)[ADDR]1001RA0/0ADDRPUSHRA,[RB];(RA)[RB]1001RARB三、存储器及堆栈操作指令:汇编语言功能I7I6I5I4I3I2I1I0JMPADDR;ADDRPC00010/00/0ADDRJMPRRB;(RB)PC00010/0RBJCADDR;IFCF=1,ADDRPC00010/10/0ADDRJCRRB;IFCF=1,(RB)PC00010/1RBJZADDR;IFZF=1,ADDRPC00011/00/0ADDRJZRRB;IFZF=1,(RB)PC00011/0RBJSADDR;IFSF=1,ADDRPC00011/10/0ADDRJSRRB;IFSF=1,(RB)PC00011/1RB四、跳转系列指令:五、算术逻辑运算指令:汇编语言功能I7I6I5I4I3I2

I1I0RLCRA;(RA)右逻辑移位1010RA0/0LLCRA;(RA)左逻辑移位1010RA1/0RRCRA;(RA)右循环移位1010RA0/1LRCRA;(RA)左循环移位1010RA1/1汇编语言功能I7I6I5I4I3I2I1I0INCRA;(RA)+1RA0010RA0/0DECRA;(RA)-1RA0010RA0/1NOTRA;#(RA)RA0010RA1/0THRRA;(RA)RA0010RA1/1五、算术逻辑运算指令:汇编语言格式功能I7I6I5I4I3I2I1I0ADDRA,RB;(RA)+(RB)RA1101RARBADDIRA,IMM;(RA)+IMMRA1101RA0/0IMMSUBRA,RB;(RA)-(RB)RA1100RARBSUBIRA,IMM;(RA)-IMMRA1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论