• [芯片] 1、接口技术·实验一·中断8259


     

     

    目录

    一、实验目的和要求

    二、实验原理与背景

    2-1、微处理器的中断类型

    2-2、8259A内部结构

    2-3、8259A读写控制逻辑

    2-4、PC上可屏蔽中断

    三、实验具体的内容

    四、实验的代码说明

    五、实验结果的分析

    附录材料


     

    一、    实验目的和要求

    学会8259芯片和微机接口原理和方法。

    掌握8259中断芯片的基本工作原理、工作方式和编程原理。

     

    二、    实验原理与背景

    2-1、微处理器的中断类型

     

              图2.1 微处理器中断结构图

    2-2、8259A内部结构

     

              图2.2 8259A内部结构图

    2-3、8259A读写控制逻辑

     

              图2.3 8259A读写控制逻辑

     

    2-4、PC上可屏蔽中断

    PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机内有一片8259中断控制器对外可以提供8个中断源:

    •   中断源     中断类型号    中断功能
    •   IRQ0          08H        时钟
    •   IRQ1          09H        键盘
    •   IRQ2          0AH        保留
    •   IRQ3          OBH        串行口2
    •   IRQ4          0CH        串行口1
    •   IRQ5          0DH        硬盘
    •   IRQ6          0EH        软盘
    •   IRQ7          0FH        并行打印机

    8个中断源的中断请求信号线IRQ0~IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一片8259中断控制,IRQ2用于两片8259之间级联,对外可以提供16个中断源:

    •   中断源     中断类型号   中断功能
    •   IRQ8          070H       实时时钟
    •   IRQ9          071H       用户中断
    •   IRQ10         072H       保留
    •   IRQ11         O73H       保留
    •   IRQ12         074H       保留
    •   IRQ13         075H       协处理器
    •   IRQ14         076H       硬盘
    •   IRQ15         077H       保留

    TPC-USB实验板上,将中断源固定接到3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。

     

    三、实验具体的内容

    直接用手动产生单脉冲作为中断请求信号。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。步骤如下:

    ①   连接实验电路如图3.1所示。

     

    图3.1  TPC-USB平台中断实验连线图

    ②   根据流程图1.2,编程并运行,观察实验结果。

     

                  图3.2  TPC-USB平台中断实验流程图

     

    四、实验的代码说明

     1 data segment
     2   mess db 'tpca interrupt!',0dh,0ah,'$' 
     3 data ends
     4 code segment 
     5     assume cs:code,ds,data
     6 start:
     7 
     8     mov ax, cs
     9     mov ds, ax
    10     mov dx,offset int3     ;中断子程序入口偏移量
    11     mov ax,250bh            ;设置中断的中断矢量
    12     int 21h 
    13        
    14     cli                     ;CPU清中断标志
    15     in  al,21h             ;设置中断屏蔽OCW1
    16     and al,0f7h            ;开放IRQ3中断
    17     out 21h,al
    18     mov cx,10              ;循环10次的循环计数器
    19     sti                     ;CPU开中断
    20 ll:                         ;循环等待
    21     jmp ll
    22 ;-------------------------------------------------    
    23 int3:                       ;中断子程序
    24     mov ax,data             ;09中断显示字符
    25     mov ds,ax
    26     mov dx,offset mess
    27     mov ah,09
    28     int 21h  
    29     
    30     mov al,20h              ;发出EOI结束中断
    31     out 20h,al               
    32     
    33     loop next               ;循环(CX为循环计数器)
    34     
    35     in al,21h               ;循环结束后关闭IRQ3中断
    36     or al,08h
    37     out 21h,al   
    38     
    39     sti                      ;开中断
    40     mov ah,4ch              ;结束程序
    41     int 21h
    42     
    43 next:
    44     iret
    45 code ends
    46 end start

    五、实验结果的分析

    直接用手动产生单脉冲作为中断请求信号。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。

     

             图5.1 实验DOS窗口截图

    附录材料

     

     

    本文链接: http://www.cnblogs.com/zjutlitao/p/4172171.html

    更多精彩:http://www.cnblogs.com/zjutlitao/p/4125085.html 

    文档下载:http://pan.baidu.com/s/1i3469X7

     

  • 相关阅读:
    知识点
    nodejs总结之redis模块
    nodejs总结之日志模块log4js
    各种类型的串口说明
    linux常用命令
    JAVA总结之编码
    JAVA总结之异常
    JAVA总结之方法重载
    JAVA总结之关键字static和final
    JAVA总结之数组篇
  • 原文地址:https://www.cnblogs.com/zjutlitao/p/4172171.html
Copyright © 2020-2023  润新知