|
楼主 |
发表于 2011-11-13 21:43:17
|
显示全部楼层
主要使用了8255用于led驱动显示;
8259 获取中断向量。
; You may customize this and other start-up templates;
; The location of this template is c:\emu8086\inc\0_com_template.txt
org 100h
CT8255SET EQU 86H ;CPU-8255控制寄存器
PORTA EQU 80H ;8086 A1接8255 A0;A2 接 A1; A3,A4,A5控制片选 ,A7控制E门
PORTB EQU 82H
PORTC EQU 84H
CTAIBO EQU 10010000B ;A IN, B OUT
;8259地址 ,设置奇偶地址
CT8259_EVEN EQU 88H ;片选A3=1.100010A0 ;A1负责奇偶地址
CT8259_ODD EQU 8AH
;--------------------------------
;设置8259
MOV AL,13H
MOV DX, CT8259_EVEN;ICW1 偶地址 ;单片;边缘触发方式
OUT DX,AL
MOV AL, 18H
MOV DX,CT8259_ODD; ICW2 基地址;设置中断号18-1FH
OUT DX,AL
MOV AL, 01H
OUT DX,AL ;定义ICW4,非级联,非缓冲
;定义OCW2 中断嵌套方式
MOV AL,00100000B
MOV DX, CT8259_EVEN;OCW2 普通EOI方式
OUT DX,AL
;----------------------------------------------
STI
BEGIN:
MOV DX,CT8255SET ;pc to 8255 control byte;设置8255工作方式
MOV AL,CTAIBO ;control byte addr
OUT DX,AL
MOV DX,PORTB
MOV AL,0
;
;数码管译码
MOV BX,OFFSET LED
XLATB
OUT DX,AL
G1:
call Iproc
; MOV BL,0FFH
;数码管译码
MOV BX,OFFSET LED
XLATB
;-------------
PUSH CX
MOV CX,40H ;延时
DELAY:LOOP DELAY
POP CX
;-------------------
MOV DX,PORTB
OUT DX,AL
JMP G1:
HLT
LED DB 3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fH,77H,7cH,39H,5eH,79H,71H;////共阴数码管段选码表,无小数点
;中断
;-----------------------------------------------
Iproc proc
INT 18H
MOV AL,1
MOV BX,OFFSET LED
XLATB
MOV DX,PORTB
OUT DX,AL
IRET
;------------------------------------------------
INT 19H
MOV aL,2
MOV BX,OFFSET LED
XLATB
MOV DX,PORTB
OUT DX,AL
IRET
;------------------------------------------------
INT 1AH
MOV aL,3
MOV BX,OFFSET LED
XLATB
MOV DX,PORTB
OUT DX,AL
IRET
;------------------------------------------------
Iproc endp
ret |
|