📄 25_temp.asm
字号:
;//****************************************************************
;文件名: Temperature for 8088
;功能: 温度测量控制显示实验
;接线: 用导线连接温度与控制模块的T-Detect到并行模数转换模块的IN-0;
; 用导线连接并行模数转换CS_0809到CPU模块的200H;
; 用导线连接8255的CS_8255到CPU模块的210H;
; 并行模数转换模块的接压力测量模块的Vref电源;
; 用导线连接温度与控制模块的T-CON到8255的PC0。
;//****************************************************************
Z8279 EQU 239H
D8279 EQU 238H
LEDFEQ EQU 38H ;扫描频率
LEDMOD EQU 00H ;左边输入 八位字符显示
;外部译码键扫描方式,双键互锁
LEDCLS EQU 0C1H ;清除显示 RAM
D0809 EQU 200H ;通道0地址
D8255 EQU 213H ;8255 状态/命令口地址
DSEG SEGMENT
BUFFER DB ?
BUFFER1 DB ?
BUFFER2 DB ?
SetTemp DB ? ;设定温度缓冲
CurTemp DB ? ;测得温度缓冲
DSEG ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:CODE
START:
PUSH CS
POP DS
call delay
MOV DX,Z8279
MOV AL,LEDMOD
OUT DX,AL
MOV AL,LEDFEQ
OUT DX,AL
MOV AL,LEDCLS;清除显示
OUT DX,AL
MOV DX,D8255
MOV AL,80H ;设置8255为输出
OUT DX,AL
MOV SetTemp,50 ;设定温度 50度
MLOOP:
mov dx,D0809
mov al,0
out dx,al
call delay
in al,dx ;读入结果
MOV BL,67
MUL BL ;*67
MOV AL,AH ;/256
MOV CurTemp,AL
MOV AH,0
MOV BL,10
DIV BL ;拆开显示
MOV BUFFER,AL ;十位数
MOV AL,AH
MOV BUFFER1,AL ;个位数
CALL CONTROL ;温度控制
CALL DISPLAY
CALL DELAY
JMP MLOOP
CONTROL:
MOV AL,CurTemp
MOV BL,SetTemp
DEC BL
SUB AL,BL
JNC GOON
HEAT:
MOV DX,D8255
MOV AL,1 ;PC0 置“1” 加热
OUT DX,AL
JMP TORET
GOON:
MOV AL,CurTemp
MOV BL,SetTemp
INC BL
SUB AL,BL
JC TORET
MOV DX,D8255
MOV AL,0 ;PC0 置“0” 停止加热
OUT DX,AL
TORET: RET
DISPLAY:
MOV AL,BUFFER
PUSH AX
mov dx,z8279
mov al,85h
out dx,al
pop ax
LEA BX,LEDSEG
XLAT
MOV DX,D8279 ;将十位数写到数码管上
OUT DX,AL
MOV AL,BUFFER1
PUSH AX
mov dx,z8279
mov al,84h
out dx,al
pop ax
LEA BX,LEDSEG
XLAT
MOV DX,D8279 ;将个位数写到数码管上
OUT DX,AL
mov dx,z8279
mov al,81h
out dx,al
MOV DX,D8279
MOV AL,63H ;o
OUT DX,AL
mov dx,z8279
mov al,80h
out dx,al
MOV DX,D8279
MOV AL,39H ;o
OUT DX,AL
RET
delay proc near
push cx
mov cx,01f00h
loop $
pop cx
ret
delay endp
LEDSEG: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;'0,1,2,3,4,5,6,7'
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;'8,9,A,B,C,D,E,F'
DB 00H,63H,39H ;' ,o,C'
CODE ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -