实验三 8259 8253 8255综合实验.doc
文本预览下载声明
实验三 8253、8255、8259综合实验
一.8253计数器实验
要求:计数器1方式0计数,计满3个数产生中断,中断5次后结束。
实验线路:
实验程序:
INTPORT1 EQU 0FF80H
INTPORT2 EQU 0FF81H
INTQ3 EQU INTREEUP3
TCONTR0 EQU 0043H
TCON1 EQU 0041H
PA EQU 0FF20H ;字位口
PB EQU 0FF21H ;字形口
PC EQU 0FF22H ;键入口
ORG 12D0H
START: JMP START0
BUF DB ?,?,?,?,?,?
intcnt db ?
data1 db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h
db 0a1h,86h,8eh,0ffh,0ch,89h,0deh,0c7h,8ch,0f3h,0bfh,8FH
START0: CLD
CALL BUF1
CALL WRINTVER ;WRITE INTRRUPT
MOV AL,13H
MOV DX,INTPORT1
OUT DX,AL
MOV AL,08H
MOV DX,INTPORT2
OUT DX,AL
MOV AL,09H
OUT DX,AL
MOV AL,0F7H
OUT DX,AL
MOV intcnt,01H ;TIME=1
MOV DX,TCONTR0
MOV AL,51H
OUT DX,AL
MOV DX,TCON1
MOV AL,03
OUT DX,AL
MOV DX,0FF23H
MOV AL,80
OUT DX,AL
STI
WATING: CALL DISP ;DISP 8259-1
JMP WATING
WRINTVER: MOV AX,0H
MOV ES,AX
MOV DI,002CH
LEA AX,INTQ3
STOSW
MOV AX,0000h
STOSW
RET
INTREEUP3: push ax
push bx
push cx
push dx
MOV DX,TCON1
MOV AL,03
OUT DX,AL
MOV AL,INTCNT
CALL CONVERS
MOV BX,OFFSET BUF
MOV AL,10H
MOV CX,05H
INTRE0: MOV [BX],AL
INC BX
LOOP INTRE0
ADD INTCNT,01H
CMP INTCNT,06H
JNA INTRE2
CALL BUF2 ;DISP:good
INTRE1: CALL DISP
JMP INTRE1
CONVERS: AND AL,0FH
MOV BX,offset buf
MOV [BX+5],AL
RET
INTRE2: MOV AL,20H
MOV DX,INTPORT1
OUT DX,AL
pop dx
pop cx
pop bx
pop ax
IRET
DISP: MOV AL,0FFH ;00H
MOV DX,PA
OUT DX,AL
MOV CL,0DFH ;20H
MOV BX,OFFSET BUF
DIS1: MOV DX,PC
OUT DX,AL
MOV AL,[BX]
MOV AH,00H
PUSH BX
MOV BX,OFFSET DATA1
ADD BX,AX
MOV AL,[BX]
POP BX
MOV DX,PB
OUT DX,AL
MOV AL,CL
MOV DX,PA
OUT DX,AL
PUSH CX
显示全部