標題: 單片機外部中斷實驗(8259A) [打印本頁]

作者: Gladys    時間: 2017-6-21 16:03
標題: 單片機外部中斷實驗(8259A)
MODE         EQU         80H         ; 8255 工作方式
PA8255         EQU         8000H         ; 8255 PA 口輸出地址
CTL8255 EQU         8C00H

ICW1         EQU         00010011B         ; 單片 8259, 上升沿中斷, 要寫 ICW4
ICW2         EQU         00100000B         ; 中斷號為 20H
ICW4         EQU         00000001B         ; 工作在 8086/88 方式
OCW1         EQU         00000000B         ; 只響應(yīng) INT0 中斷
CS8259A EQU         09000H         ; 8259 地址
CS8259B EQU         09100H

CODE         SEGMENT
        ASSUME CS:CODE, DS: DATA,SS:STACK

ORG 00H
        JMP IEnTER
ORG 800H

START:
        MOV AX, DATA
        MOV DS, AX

        MOV AX, STACK
        MOV SS, AX

        MOV AX, TOP
        MOV SP, AX

        MOV DX, CTL8255
        MOV AL, MODE
        OUT DX, AL

        CLI  
        PUSH DS

        MOV AX ,0
        MOV DS ,AX
        MOV BX, 128 ;0X20 * 4 中斷號

        MOV AX, CODE
        MOV CL, 4
        SHL AX, CL ; X 16
        ADD AX, OFFSET IEnTER
        MOV [BX], AX ; 中斷入口地址(段地址為 0)


        MOV AX, 0
        INC BX
        INC         BX
        MOV [BX], AX         ; 代碼段地址為 0

        POP DS
        CALL IInIT

        MOV         AL, CNT ; 計數(shù)值初始為 0
        MOV         DX, PA8255
        OUT         DX, AL
        STI
        
LP:
        NOP
        JMP LP
IInIT:
        MOV DX,CS8259A
        MOV AL,ICW1
        OUT DX,AL
        
        MOV DX,CS8259B
        MOV AL,ICW2
        OUT DX,AL
        
        MOV AL,ICW4
        OUT DX,AL
        
        MOV AL,OCW1
        OUT DX,AL
        RET
        
IEnTER:
        CLI
        MOV DX,PA8255
        DEC CNT
        MOV AL,CNT
        OUT DX,AL
        
        MOV DX,CS8259A
        MOV AL,20H
        OUT DX,AL
        STI
        IRET
CODE ENDS

DATA SEGMENT
        CNT DB 0FFH
DATA ENDS

STACK SEGMENT 'STACK'
        STA DB 100 DUP(?)
        TOP EQU LENGTH STA
STACK ENDS

END START
        







歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1