课程设计报告纸
MOV AL, 10000000B ;8255初始 MOV DX, PCTL OUT DX, AL
MOV DX, OFFSET MES4
MOV AH, 9 ;显示MES4 INT
21H
MOV DX, OFFSET MES0
MOV AH, 9 ;显示MES0 INT 21H
MOV DX, OFFSET MES1
MOV AH, 9 ;显示MES1 INT
21H
MOV DX, OFFSET MESS
MOV AH, 9 ;显示MESS INT 21H
CLI ; 8259初始 MOV MOV MOV MOV MOV MOV MOV ADD MOV MOV MOV
AX, 0000H
ES, AX ;替换INTR的中断矢量
DI, INTR_IVADD ;保存INTR原中断处理程序入口偏移地址 AX, ES:[DI]
IP_BAK,AX
AX, OFFSET MYISR ;设置当前中断处理程序入口偏移地址 ES:[DI],AX DI, 2
AX, ES:[DI] ;保存INTR原中断处理程序入口段地址 CS_BAK,AX
AX, SEG MYISR ;设置当前中断处理程序入口段地址
MOV ES:[DI],AX
MOV DX, INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位 IN AL, DX ;保存INTR原中断屏蔽字 MOV AND OUT MOV MOV OUT
MOV MOV OUT MOV MOV OUT
IM_BAK,AL
AL, INTR_IM ;允许PC机内部8259的IR2中断 DX, AL
DX, MY8259_ICW1 ; 初始化实验系统中8259的ICW1 AL, 13H ;边沿触发、单片8259、需要ICW4 DX, AL
DX, MY8259_ICW2
AL, 08H ;初始化实验系统中8259的ICW2 DX, AL
DX, MY8259_ICW4 ;初始化实验系统中8259的ICW4 AL, 01H DX, AL
- 11 -
;非自动结束EOI
MOV DX,MY8259_OCW3
课程设计报告纸
MOV AL, 0AH
OUT DX, AL
MOV DX, MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV
AL, 0FCH
;打开IR0的屏蔽位
OUT DX, AL
MOV DX, TCTL ;8254初始 MOV AL, 17H OUT DX, AL MOV DX, TIMER0; MOV AL,2 OUT DX,AL STI S33:
MOV AL, 0
MOV DX, ADCS OUT DX,
AL
;启动0809 IN0
MOV FLAG,0FFH
CALL DISPINT0
MOV DX, OFFSET MES2
MOV AH, 9 ;显示MES2 INT 21H MOV AL,IN1OUT CALL DISPINT1 MOV DL,0FFH MOV AH,6 INT 21H JZ S33 QUIT: CLI MOV MOV MOV MOV MOV ADD MOV MOV MOV MOV
AX, 0000H
;恢复INTR原中断矢量
ES, AX
DI, INTR_IVADD ;恢复INTR原中断处理程序入口偏移地址 AX, IP_BAK ES:[DI],AX DI, 2
AX, CS_BAK ES:[DI],AX
DX, INTR_OCW1
AL, IM_BAK ;恢复INTR原中断屏蔽寄存器的屏蔽字
;恢复INTR原中断处理程序入口段地址
OUT DX, AL
STI EXIT: MOV AH, 4CH INT
21H
;返回到DOS
- 12 -
课程设计报告纸
;***********************数码管显示INT1**************************** DISPINT1 PROC
PUSH AX
MOV BL,AL ; 屏幕显示 AND AL, 0F0H MOV CL, 4 ROR AL, CL CALL CRT1 MOV AL, BL AND AL, 0FH CALL CRT1 CRLF POP AX RET
DISPINT1 ENDP CRT1
PROC
AL, 30H AL, 39H
D0
AL, 7 ;在屏幕上显示一位16进制字符
ADD
CMP JBE ADD
; 显示高位
;显示低位
D0: MOV DL, AL
MOV AH, 2 INT 21H RET CRT1 ENDP
;***********************数码管显示INT0**************************** DISPINT0 PROC PUSH DS
PUSH AX MOV AL,IN0IN ;转换IN0个位 十分位 百分位 MOV AH,0 DIV E1
MOV SI,OFFSET B MOV [SI],AL MOV AL,AH MOV AH,0 MUL D1 DIV E1 INC SI MOV [SI],AL MOV AL,AH MOV AH,0
- 13 -
课程设计报告纸
MUL D1 DIV E1 INC SI
CMP AH,19H JNBE S11 MOV AL,0 JMP S2 S11: INC AL
S2: MOV [SI],AL
MOV CL, 8 ;从最左边开始显示 MOV MOV
SI, OFFSET B
AL, [SI]
LEA BX, DCTBL XLAT ;输出段码 ADD AL,80H MOV DX, PB55 OUT MOV MOV OUT CALL INC MOV LEA XLAT MOV OUT MOV MOV OUT CALL INC ROL MOV LEA XLAT MOV OUT MOV MOV OUT CALL
DX, AL
DX, PA55
AL, CL ;输出位码 DX, AL
DELAY
SI ;段码地址+1 AL, [SI] BX, DCTBL DX, PB55
DX, AL DX, PA55
AL, CL ;输出位码 DX, AL
DELAY
SI ;段码地址+1 CL, 1 ;位码向左移1位 AL, [SI] BX, DCTBL DX, PB55
DX, AL DX, PA55
AL, CL ;输出位码 DX, AL DELAY ;输出三位码
- 14 -
ROL CL, 1 ;位码向左移1位
课程设计报告纸
MOV SI, OFFSET B
MOV AL,[SI] CMP AL,2 JB A2 MOV MOV OUT JMP G3
A2:MOV DX, PC55 MOV AL, 00H OUT DX, AL MOV DX, TCTL ;8254计数器1控制蜂鸣器 MOV AL, 77H OUT DX, AL MOV DX, TIMER1; MOV AL,00 OUT DX,AL MOV AL,01 OUT DX,AL G3: POP POP
AX DS
DX, PC55
AL, 0FFH DX, AL
RET
DISPINT0 ENDP MYISR PROC
NEAR ;中断处理程序MYISR
PUSH AX
PUSH DX
CLI ;关中断 MOV DX,MY8259_OCW3 IN AL,DX AND AL,03H CMP AL,01H JE IROISR JMP OVER IROISR: CMP FLAG,0FFH JE S MOV DX,IN1
IN AL,DX MOV IN1OUT,AL ; A2为IN1 AD后的值 JMP OVER S: MOV DX,ADCS
IN AL, DX MOV IN0IN, AL ; A1为IN0 MOV AH,0
- 15 -
课程设计报告纸
DIV N ; IN0 AD后线性转换给0832的值 NEG AL ADD AL,80H MOV BL,AL CMP BL,40H JB SS1 SUB BL,4 SS1: MOV AL,BL
MOV A3,AL MOV DX,DACS OUT DX,AL MOV DX,IN1 ; 启动IN1 OUT DX,AL MOV AL,0
MOV FLAG,AL
OVER: MOV DX,INTR_OCW2 ; 向PC机内部8259发送中断结束命令 MOV OUT MOV
AL, 20H
DX, AL
AL, 20H
OUT 20H, AL STI
POP DX POP AX IRET MYISR ENDP DELAY PROC PUSH MOV
NEAR ;延时
CX
CX, 0FFFFH
LOOP $ POP CX RET DELAY ENDP CODE ENDS END START
- 16 -
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库微机原理课程设计报告--数据采集系统三(中断法)(3)在线全文阅读。
相关推荐: