🌴 2022.5.12 早八 实验

实验五 基本IO操作温度控制实验

1.1 实验要求

熟悉emu8086仿真系统

  1. 掌握基本IO操作和EMU8086使用外置仿真设备的方法

  2. 使用IO方式实现温度采集和加热控制

  3. 控制温度保持在75℃到80℃并维持两分钟

1.2 理论分析

实现对温度计的控制(打开 \emu8086\DEVICES\Thermometer.exe),IN 125指从125读取数据,OUT 127指向127发送数据使用延时程序控制温度计。编写延时子程序,通过15H中断的86H子功能编写1s延时程序。

  1. 127端口持续输出1,使用循环将装置加热到75°C

  2. 通过125端口读入装置温度,判断温度是否在75°C - 80°C,并作出相应的处理

  3. 通过循环,3执行2分钟

1.3 汇编语言

💻提示:所有实验源码已在Github整理

;IN 125,OUT 127指\emu8086\DEVICES\Thermometer.exe,从125读取数据,向127发送数据

MOV AL,1
OUT 127,AL ;打开加热,然后在LP0循环一直到大于75

LP0:
IN AL,125
CMP AL,75
JL LP0 ;<75跳转LP0继续加热

MOV CX,120 ;一次1s,两分钟为120次
LP:
IN AL,125 ;125指\emu8086\DEVICES\Thermometer.exe,从125读取数据,向127发送数据
CMP AL,75
JL LOW ;<75跳转LOW
CMP AL,80
JLE OK ;<80跳转OK,否则顺序执行HIGH

HIGH:
MOV AL,0
OUT 127,AL ;温高关加热
JMP OK

LOW:
MOV AL,1
OUT 127,AL ;温低开加热
JMP OK

OK: ;1秒延时判断
PUSH CX ;压栈保护记录两分钟的CX,因为延时程序也用CX
CALL DELAY5MS ;75℃到80℃
POP CX
LOOP LP

DELAY5MS PROC NEAR ;延时,15H中断的86H子功能
;wait 1 seconds (1 million microsecpnds)
;000F4240H = 1,000,000 = CX,DX 微秒
MOV CX,15
MOV DX,4240H
MOV AH,86H
INT 15H
RET
DELAY5MS ENDP

1.4 实验结果

微机原理与接口技术11