实验八:电压报警器
实验器材:
电路图:
仿真视频:
《微机原理接口与技术》(8086汇编)期末考试、考研常见考题、习题,题型汇总、知识点总结、专周(十六)之电压报警器
程序源码:
;author:liuxianfei0810
A8255 EQU 40H
B8255 EQU 42H
C8255 EQU 44H
Q8255 EQU 46H
AA8255 EQU 60H
BB8255 EQU 62H
CC8255 EQU 64H
QQ8255 EQU 66H
IO2=20H
CODE SEGMENT
ASSUME DS:DATA,CS:CODE
START:
MOV AX,DATA
MOV DS,AX
MOV AL,00110110B
MOV DX,IO2+6
OUT DX,AL
MOV AX,10
MOV DX,IO2
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV AL,01110110B
MOV DX,IO2+6
OUT DX,AL
MOV AX,4A9H*10 ;JISHU
MOV DX,IO2+2
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,Q8255
MOV AL,80H
OUT DX,AL
MOV DX,QQ8255
MOV AL,91H
OUT DX,AL
MOV DX,C8255
MOV AL,0F0H
OUT DX,AL
MOV AL,00H
MOV DX,CC8255
OUT DX,AL
MOV SI,OFFSET TEMPDATA
HERE:
MOV DX,C8255
MOV AL,0F0H
OUT DX,AL
CALL DUSHU
MOV [SI],AL
MOV DX,C8255
MOV AL,0F1H
OUT DX,AL
CALL DUSHU
MOV [SI+1],AL
;author:liuxianfei0810
MOV DX,C8255
MOV AL,0F2H
OUT DX,AL
CALL DUSHU
MOV [SI+2],AL
;author:liuxianfei0810
MOV DX,C8255
MOV AL,0F3H
OUT DX,AL
CALL DUSHU
MOV [SI+3],AL
;author:liuxianfei0810
MOV DX,C8255
MOV AL,0F4H
OUT DX,AL
CALL DUSHU
MOV [SI+4],AL
;author:liuxianfei0810
MOV DL,[SI]
MOV AL,11H
CMP DL,[SI+1]
JAE UNCHANG1
MOV DL,[SI+1]
MOV AL,22H
UNCHANG1:
CMP DL,[SI+2]
JAE UNCHANG2
MOV DL,[SI+2]
MOV AL,44H
UNCHANG2:
CMP DL,[SI+3]
JAE UNCHANG3
MOV DL,[SI+3]
MOV AL,88H
UNCHANG3:
MOV [SI+6],DL
MOV BL,DL
CMP BL,[SI+4]
JB ANQUAN
MOV DL,[SI]
CMP DL,[SI+4]
JB UNCHANG11
MOV AL,11H
UNCHANG11:
MOV DL,[SI+1]
CMP DL,[SI+4]
JB UNCHANG22
OR AL,22H
UNCHANG22:
MOV DL,[SI+2]
CMP DL,[SI+4]
JB UNCHANG33
OR AL,44H
UNCHANG33:
MOV DL,[SI+3]
CMP DL,[SI+4]
JB JING
OR AL,88H
JMP JING
ANQUAN:
AND AL,0FH
JING:
MOV DX,A8255
OUT DX,AL
MOV CX,5
MON:
;author:liuxianfei0810
MOV AL,[SI+6]
CALL XIANSHU
LOOP MON
JMP HERE
DUSHU PROC
MOV DX,CC8255
MOV AL,80H
OUT DX,AL
MOV DX,CC8255
MOV AL,00H
OUT DX,AL
WAIT0:
IN AL,DX
AND AL,01H
JNZ WAIT0
WAIT1:
IN AL,DX
AND AL,01H
JZ WAIT1
MOV DX,AA8255
IN AL,DX
RET
DUSHU ENDP
;author:liuxianfei0810
XIANSHU PROC
;author:liuxianfei0810
MOV AH,0
MOV BL,64
DIV BL
MOV BX,OFFSET SEGDATA
XLAT
OR AL,80H
MOV DX,B8255
OUT DX,AL
MOV AL,11101111B
MOV DX,C8255
OUT DX,AL ;完成首位显示
CALL DELAY
MOV AL,0FFH
OUT DX,AL
MOV AL,AH
MOV BL,10
MUL BL
MOV BL,64
DIV BL
MOV BX,OFFSET SEGDATA
XLAT
MOV DX,B8255
OUT DX,AL
MOV AL,11011111B
MOV DX,C8255
OUT DX,AL
CALL DELAY
MOV AL,0FFH
OUT DX,AL
;author:liuxianfei0810
MOV AL,AH
MOV BL,10
MUL BL
MOV BL,64
DIV BL
MOV BX,OFFSET SEGDATA
XLAT
MOV DX,B8255
OUT DX,AL
MOV AL,10111111B
MOV DX,C8255
OUT DX,AL
CALL DELAY
MOV AL,0FFH
OUT DX,AL
;author:liuxianfei0810
MOV AL,00011100B
MOV DX,B8255
OUT DX,AL
MOV AL,01111111B
MOV DX,C8255
OUT DX,AL
;author:liuxianfei0810
CALL DELAY
MOV DX,C8255
MOV AL,0FFH
OUT DX,AL
CALL DELAY
RET
XIANSHU ENDP
;author:liuxianfei0810
DELAY PROC
PUSH BX
PUSH CX
MOV BX,1
LP2:
MOV CX,10
LP1: LOOP LP1
DEC BX
JNZ LP2
POP CX
POP BX
RET
DELAY ENDP
CODE ENDS
DATA SEGMENT
SEGDATA DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
TEMPDATA DB 8 DUP(?)
BIG DB ?
DATA ENDS
END START
;author:liuxianfei0810