实验四定时器8253与中断控制器8259A实验_第1页
实验四定时器8253与中断控制器8259A实验_第2页
实验四定时器8253与中断控制器8259A实验_第3页
实验四定时器8253与中断控制器8259A实验_第4页
实验四定时器8253与中断控制器8259A实验_第5页
全文预览已结束

下载本文档

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

文档简介

1、实验四 定时器8253与中断控制器8259A实验一实验目的1. 掌握计数器/定时器8253的工作原理和编程方法。2. 掌握8259中断控制器的工作原理;3. 掌握中断服务程序的编写。二实验内容1. 该实验用PC机内部的中断控制器8259A,中断源用TPC_H实验箱上8253来产生,电路如下所示,将8253计数器0、计数器1分别设置为方式3和方式2,计数初值设为2000,每隔4秒产生一次。TPC_H实验箱上的IRQ已连接到PC机内部主片8259A的IRQ7,主片8259A的端口地址为20H和21H,主机启动时,系统已将8259A中断控制器进行了初始化(边沿触发一般完全嵌套方式非自动结束,ICW2

2、为08H,IRQ7对应的中断类型码为0FH);2. 实验电路如下图:实验连线6条,如图红色虚线所示JBI/OMEMJCDMAI/OD7D6D5D4D3D2D1D0A1A0CSGNDWRRDCLK0GATE0OUT082531234567820192112911102322VCC24+5VCLK1GATE1OUT1151413+5V去IRQ7去U3 15端280H287HIOWIOR去50线总线插座去1MHz输出端注意:做中断实验时,JB上的短路片应插在“I/O”位置,JC上的短路片插在“I/O”位置。3. 编写程序,要求每次主机响应外中断IRQ7时,显示THIS IS A 8259A INTE

3、RRUPT !,在键盘上敲任意一个键,程序退出。4. 修改电路和程序,直接用手动产生单个脉冲作为中断请求信号,要求每按一次开关产生一次中断,在屏幕上显示一次“THIS IS A IRQ7 INTRUPT!”,中断10次后程序退出。118U11:D74LS00U11:C74LS001213910R11R10+5VIRQ7三预习要求1. 复习8259A工作原理,编程方法和使用方法。2. 根据要求编写相应的汇编程序。四报告要求1. 整理好经过运行是正确的源程序,并加上注释。2. 总结实验调试过程中遇到的问题。3 通过实验回答思考题。五思考题初始化时设置为非自动结束方式,那么在中断服务程序将结束时必须

4、设置什么操作命令?如果不设置这种命令会发生什么现象?六、 实验原理1、PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBM-PC/XT机内有一片8259中断控制器对外可提供8个中断源: 中断源中断类型号中断功能IRQ008H时钟IRQ109H键盘IRQ20AH保留IRQ30BH串行口2IRQ40CH串行口1IRQ50DH硬盘IRQ60EH软盘IRQ70FH并行打印机8个中断源的中断请求信号线IRQ0IRQ7在主机的62线总线插槽中可以引出,系统已设定中断请求信号为“边沿触发”、普通结束

5、方式。对于286以上的微机又扩展了一片8259中断控制器,主片的IRQ2已用于从片的级连。本实验箱在出厂时,默认IRQ7引到实验台上。2、编程说明:PC机中断控制器8259的地址为20H、21H,编程时要根据中断类型号设置中断矢量,8259中断屏蔽寄存器IMR对应位要清0(允许中断),中断服务程序返回前要使用中断结束命令:MOV AL,20H OUT20H,AL中断结束返回DOS时应将IMR对应位置1,以关闭中断。返回DOS关闭IRQ7中断开中断Y开始清中断标志位设置IRQ7的中断矢量读8259中断屏蔽寄存器允许IRQ7中断DL=0FFH ,6号功能中断调用开中断有键按下码?吗?N七、实验参考

6、流程如下:开始显示中断响应的提示信息发出中断结束命令开中断中断返回中断服务程序中断主程序八、实验步骤:、打开实验箱,按红虚线位置连接好接线(6条),检查连接有无错误。、连接微机至实验板的50线扁平电缆。、打开微机和实验板电源。、编写程序并调试程序。、调试通过后全速运行并观察实验结果。、写出实验报告并交微机组成原理实验室。九、实验参考程序如下:;*;* 8259IRQ7定时中断服务程序 *;*;data segmentmess db THIS IS A 8259A INTERRUPT !,0aH,0dH,$data endsstacksegment db 100h dup(?)stackends

7、code segmentassume cs:code,ds:data,ss:stackstart:mov ax,csmov ds,axmov dx,offset int7mov ax,250fhint 21h ;设中断程序int7的类型号为0fhcli ;清中断标志位in al,21h ;读中断屏蔽寄存器and al,7fh ;开放IRQ7中断out 21h,alsti ;开中断mov dx,283h ;向8253写控制字mov al,36h ;使0通道为工作方式3out dx,almov ax,2000 ;写入循环计数初值2000mov dx,280hout dx,al ;先写入低字节mov

8、 al,ahout dx,al ;后写入高字节mov dx,283hmov al,74h ;设8253通道1工作方式2out dx,almov ax,2000 ;写入循环计数初值2000mov dx,281hout dx,al ;先写低字节mov al,ahout dx,al ;后写高字节sss:jmp sssint7: mov ax,data ;中断服务程序mov ds,axmov dx,offset messmov ah,09 ;显示每次中断的提示信息int 21hmov al,20hout 20h,al ;发出EOI结束中断mov ah,06h ;检测按键状态mov dl,0ffhint

9、 21hje retein al,21hor al,80h ;关闭IR7中断out 21h,alsti ;置中断标志位mov ah,4ch ;返回DOSint 21h rete:sti ;开中断iret ;中断返回code endsend start;*;* 8259IRQ7中断10次服务程序 *;*;data segmentmess db THIS IS A 8259A INTERRUPT !,0aH,0dH,$data endscode segmentassume cs:code,ds:datastart:mov ax,cs mov ds,ax mov dx,offset int7 mov ax,250fh int 21h ;设中断程序int7的类型号为0fh cli ;清中断标志位 in al,21h ;读中断屏蔽寄存器 and al,7fh ;开放IRQ7中断 out 21h,al mov cx,10 ;记中断循环次数为10次 sti ;置中断标志位ll: jmp llint7: mov ax,data ;中断服务程序 mov ds,ax mov dx,offset mess mov ah,09 ;显示每次中断的提示信息 int

温馨提示

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

评论

0/150

提交评论