基于手动按钮建立8259A中断控制器硬件中断的应用.docx_第1页
基于手动按钮建立8259A中断控制器硬件中断的应用.docx_第2页
基于手动按钮建立8259A中断控制器硬件中断的应用.docx_第3页
基于手动按钮建立8259A中断控制器硬件中断的应用.docx_第4页
基于手动按钮建立8259A中断控制器硬件中断的应用.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

学 号: 0120810340802课 程 设 计题 目基于手动按钮建立8259A中断控制器硬件中断的应用学 院计算机科学与技术专 业计算机科学与技术班 级计科0808班姓 名朱林指导教师周银良2011年7月5日接口课程设计任务书学生姓名 朱林 专业班级 计科0808班 指导老师 周银良 工作单位 题目:基于手动按钮建立8259A中断控制器硬件中断的应用 (采用汇编语言设计)一、 内容:根据附录中由8259中断控制器建立的硬件中断图,建立硬件中断应用。在MIFID微机实验台上的IDE使用汇编程序设计语言编程实现。二、 要求:1、 使用MIFID微机实验台上的SW3按钮产生脉冲,让并行接口8255A的PC2接收,然后并行接口8255A的PC4产生一个方波,作为中断请求信号给IRQ10。发出一次中断请求信号由按下SW3按钮决定。2、 在中断服务子程序中,设计按一定的规律点亮LED发光二极管。3、 按一定的规律点亮LED发光二极管的数据存入文件中,同时数据在CRT上的指定位置显示出来。4、 设计程序运行时的界面友好。三、 进度安排:序号内容所用时间1接口电路设计2天2编写程序1天3调试程序1天4撰写课程设计报告1天合计5天 指导教师签名: 年 月 日 系主任(责任教师)签名: 年 月 日1 设计题目及要求1.1 设计内容根据附录中由8259中断控制器建立的硬件中断图,建立硬件中断应用。在MIFID微机实验台上的IDE使用汇编程序设计语言编程实现。1.2 设计要求1、 使用MIFID微机实验台上的SW3按钮产生脉冲,让并行接口8255A的PC2接收,然后并行接口8255A的PC4产生一个方波,作为中断请求信号给IRQ10。发出一次中断请求信号由按下SW3按钮决定。2、 在中断服务子程序中,设计按一定的规律点亮LED发光二极管。3、 按一定的规律点亮LED发光二极管的数据存入文件中,同时数据在CRT上的指定位置显示出来。4、 设计程序运行时的界面友好。2 设计思路2.1 8255A工作说明8255A是控制系统中应用非常广泛的可编程并行接口芯片,它有PA、PB和PC3个并行端口,可实现查询、中断等数据传输。(1)基本特征8255具有两个8位(PA和PB)和两个4位(PC高/低4位)并行输入/输出端口,PC端口具有按位复位/置位功能。有0方式、1方式和2方式等,可适应CPU和I/O接口多种数据传送方式,分别对应无条件传送、应答传送和中断传送等。PC端口除用作数据端口外,当工作在1方式和2方式时,它的部分引线被分配为专用联络信号,PC端口可单独指定按位控制,当状态信号使用等。8255A内部主要由控制寄存器、状态寄存器和数据寄存器组成,PA、PB和PC均具有输出锁存、输出缓冲功能。(2)8255A内部结构数据总线缓冲器这是一个三态双向8位缓冲器,是8255A与CPU系统数据总线的接口,所有的数据发送和接收,以及CPU发出的控制字和从8255A输出的状态信息均通过该缓冲器传送。读写控制逻辑读写控制逻辑由读信号RD、写信号WR、片选信号及端口选择地址信号A1A0来实现。读写控制逻辑控制总线的开放和关闭,以及信息的传送路径(通道)和传送方向。它可把CPU的控制命令或数据传送到相应的端口,也可控制外设信息或输入数据从相应端口传送到CPU。数据端口PA、PB、PC8255A包括3个8位的输入输出端口,每个端口都有一个数据输入寄存器和一个数据输出寄存器,根据处理器对接口的要求,作为输入端口都有三态输入缓冲和输出锁存功能。在实际应用中,PC的8位可分为两个4位端口(仅在0方式下),也可以分为一个5位端口和一个3位端口(1方式下)来使用。A组和B组控制电路PA、PB和PC3个端口的工作方式是CPU通过向A、B两组控制寄存器写方式控制字来设定的。A组控制PA和PC的高4位,B组控制PB和PC的低4位,A组和B组的控制寄存器还接收PC的按位控制命令,以实现PC的按位置位/复位功能。(3)8255A控制字控制字用于控制8255A各个端口的工作方式和端口的输入/输出,它通过CS+11端口输入到8255A。本次实验中使用到两个主要芯片: Intel 8255(并行输入/输出接口芯片),Intel 8259(中断控制芯片)。2.2 8259A工作原理中断控制器8259A用于管理PC的硬件中断,在接口技术中的中断编程是指通过中断方式实现控制、数据采集等功能。在实际应用中,控制板通常使用PC主机板上的8259A实现中断,因此在进行中断编程时必须遵守PC对8259A的设置,也就是说在应用程序中无须对8259A进行编程设置,但必须了解8259A在PC中的设置。(1)8259A功能Intel8259A是与8080/8085系列及8088/8086系列兼容的可编程中断控制器,它的主要功能如下。具有8级优先权控制,通过级联可拓展至64级优先权控制。每一级中断都可以独立被屏蔽或允许。在中断相应周期,8259A可提供中断向量,从而快速地转入中断服务程序。8259A有多种工作方式,均可通过程序来选择。Intel 8259A用于管理和控制80x86的可屏蔽中断请求,实现优先级判决,提供中断类型码,屏蔽中断请求等功能。使用单片8259A可以管理8级中断;采用级联方式,可扩充到64级(用9片8259A)。这次实验用到级联方式。在第1个中断响应周期,主从片均接受到中断响应信号;随后,主片在CAS2 - CAS0上发出被响应的从片ID码,通知从片在第2个中断响应周期将中断类型号传送至数据总线。(2)8259A结构8259A的内部由8个功能模块组成,如上图所示。其中与中断处理有关的有:中断请求寄存器(IRR)、中断服务寄存器(ISR)、中断屏蔽寄存器(IMR)、优先权电路及控制逻辑。中断请求寄存器(IRR):用于保存外设在IR7IR0线上提出的中断请求,由链接在IR7IR0线上的外设产生的触发信号来置位,其内容可用OCW2命令读出。中断服务寄存器(ISR):在中断相应之后的第一个INTA周期,将ISR中与IRR对应的中断源置位,表明该中断源正处在被服务中,ISR的复位需要用中断结束命令OCW2来执行。中断屏蔽寄存器(IMR):IMR对IRR中相应的中断请求起屏蔽的作用,用户可根据需要允许某些中断发生(相应位置0)或禁止某些中断(相应位置1)。优先权电路(PR):用于判断当前的中断请求是否输入到CPU,当中断优先权高于CPU在服务中断的优先权,则当前中断终止在服务中断,并响应当前中断请求;若当前中断优先权低于CPU在服务中断,则等待CPU完成当前中断后再响应该中断。8259A的中断优先权电路是一个采用优先权编码的数字比较电路,所谓优先权高低也就是中断类型编号的大小。读写控制逻辑:CPU对8259A的读写操作除INTA信号作特殊操作外,一般的读写操作由CS、WR、RD和A0等几个输入线控制,使8259A可以接收CPU写入的初始化命令字(ICW)和操作命令字(OCW),向CPU送出状态信息。(3)操作命令字8259A工作之前,需要用两类控制字对8259A进行工作方式的设定,并启动8259A进行规定的操作。初始化命令字ICW1ICW4:计算机系统启动时由系统软件(初始化程序)设置,在计算机系统工作过程中一般不会改变。操作命令字OCW1OCW3:由应用程序设定,用来对中断处理过程进行动态控制。初始化过程结束,8259A进入工作状态后,才能写入操作命令字(OCW)。操作命令字OCW1OCW3 的设置没有规定先后顺序。OCW1OCW1 为中断屏蔽操作命令字,用来实现中断屏蔽功能,要求写入8259A的奇地址端口(A0=1)。OCW1 的内容被直接置入中断屏蔽寄存器IMR中。其中M0M7 分别对应8259A的IR0IR7。当OCW1 中的Mi 位为1时,则相应的IRi 的中断请求就被屏蔽。M7M6M5M4M3M2M1M01OCW1A0 D7 D6 D5 D4 D3 D2 D1 D0 OCW2a:设置中断优先级是否采用循环方式。 R1,采用循环方式;R0,采用非循环方式。b:中断结束操作。 EOI=1,采用非自动中断结束方式,需要发送中断结束命令;EOI=0,采用自动中断结束方式,不需要发送中断结束命令。 OCW3主要作用是读出IRR、ISR的状态。ESMMSMM01PPRRIS0OCW3A0 D7 D6 D5 D4 D3 D2 D1 D0本次实验用操作命令字ocw1来开放以及屏蔽IRQ10和IRQ2,ocw2发中断结束命令。3 设计方案说明3.1 硬件连接图3.2 程序流程图初始化变量设置8259A设置8255A退出开始检测是否按Q或q?4 源程序STACK1 SEGMENT STACK DW 200 DUP(?)STACK1 ENDSDATA SEGMENTMESG1 DB Press SW3 one time to invoke interrupt one time,and to light one of LEDs,0ah,0dh DB Exit with q/Q,0ah,0dh,$LEDDATA DB 01H,02H,04H,08H,10H,20H,40H,80HNUM DW(0) INT0A_OFF DW(?)INT0A_SEG DW(?) DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV AH,09H MOV DX,OFFSET MESG1 INT 21h ;显示提示信息 MOV DX,303H ;初始化8255 MOV AL,83H OUT DX,AL MOV DX,300H ;LED灯熄灭 MOV AL,00H OUT DX,AL MOV AX,3572H ;获取原中断向量 INT 21H MOV INT0A_OFF,BX ;保存原中断向量 MOV BX,ES MOV INT0A_SEG,BX CLI ;关中断 MOV AX,2572H MOV DX,SEG LEDLIGHT ;设置新的中断向量 PUSH DS MOV DS,DX MOV DX,OFFSET LEDLIGHT INT 21H POP DS STI ;开中断 IN AL,0A1H ;打开IRQ10 AND AL,0FBH OUT 0A1H,AL IN AL,21H ;打开IRQ2 AND AL,0FBH OUT 21H,ALL1: MOV AH,0BH ;检查是否有Q或q键按下 INT 21H INC AL JNZ NEXT0 ; 若无键按下,则程序往下执行 MOV AH,08H ;如有Q或q键按下,则程序退出 INT 21H CMP AL,q JZ EXIT CMP AL,Q JZ EXITNEXT0: MOV DX,302H ;查PC2是否为0 IN AL,DX AND AL,04H JNZ L1 PUSH CX MOV CX,0FFHLOOP1:LOOP LOOP1 POP CX IN AL,DX AND AL,04H JZ L1 MOV DX,303H ;按下SW3,则PC41申请中断 MOV AL,09H OUT DX,AL PUSH CX MOV CX,100WT: LOOP WT POP CX MOV DX,303H ;置PC4=0 MOV AL,08H OUT DX,AL JMP L1 EXIT: MOV AX,2572H ;恢复中断向量 MOV DX,INT0A_SEG PUSH DS MOV DS,DX MOV DX,INT0A_OFF INT 21H POP DS IN AL,0A1H ;屏蔽IRQ10 OR AL,04H OUT 0A1H,AL IN AL,21H ;屏蔽IRQ2 OR AL,04H OUT 21H,AL MOV AX,4C00H ;程序退出 INT 21H LEDLIGHT PROC FAR ;中断服务程序 PUSH SI PUSH AX PUSH DX CLI ;关中断 MOV SI,OFFSET LEDDATA ADD SI,NUM MOV AL,SI MOV DX,300H OUT DX,AL ;点亮LED INC NUM CMP NUM,07H JNE NEXT MOV NUM,00HNEXT : MOV AL,62H ;发中断结束命令 MOV DX,0A0H OUT DX,AL ;向从片8259发EOI命令 OUT 020H,AL ;向主片8259发EOI命令 STI ;开中断 POP DX POP AX POP SI IRETLEDLIGHT ENDPCODE ENDS END START5 实验心得及体会通过这次课程设计,我学到很多东西。首先,在做这次实验之前,我将书本上关于中断控制器和并行接口的相关内容温习了一遍,熟悉了8259A和8255A的相关控制字的设置以及每个控制字的含义,这样,在做这个实验的时候,能够很清楚的知道怎样接线,怎样实现达到要求,虽然程序已经给出,但要明白程序中每个语句的含义,还是花费了不少时间。其次,这次实验增强了我的动手能力,接好线后,才能运行程序,得到预期效果,我的实验题目是基于手动按钮建立8259A中断控制器硬件中断的应用,并且要在

温馨提示

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

最新文档

评论

0/150

提交评论