这里使用开关代替温度数值,没有用到温度传感器,太麻烦了;
DATA SEGMENT
SMG DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
PORTA EQU 30H
PORTB EQU 32H
PORTC EQU 34H
PORTK EQU 36H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA;,SS:STACK
START:
MAIN PROC FAR
MOV AL,10010000B
OUT PORTK,AL
XH: MOV AX,DATA
MOV DS,AX
IN AL,PORTA
CMP AL,40
JG BAOJ
CMP AL,10
JL BAOJ
MOV BL,10
DIV BL
MOV DL,AH
XOR DH,DH
MOV DI,DX
AND AL,AL
JZ NEX1
MOV AH,0
DIV BL
MOV DL,AH
MOV SI,DX
JMP DISPLAY
NEX1:XOR SI,SI
DISPLAY:
MOV AL,10H
OUT PORTC,AL
MOV AL,SMG[SI]
OUT PORTB,AL ;输出十位
CALL DELAY
MOV AL,20H
OUT PORTC,AL
MOV AL,SMG[DI]
OUT PORTB,AL ;输出个位
CALL DELAY
MOV AL,80H
OUT PORTC,AL
MOV AL,0C6H
OUT PORTB,AL ;输出C
CALL DELAY
JMP XH
BAOJ:
MOV AL,86H
OUT PORTB,AL
MOV AL,83H
OUT PORTC,AL
JMP XH
MOV AH,4CH
INT 21H
RET
MAIN ENDP
DELAY PROC
PUSH CX
MOV CX,1000H
WAIT1: LOOP WAIT1
POP CX
RET
DELAY ENDP
CODE ENDS
END START