⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 25_temp.asm

📁 可作为接口实验的参考教材
💻 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 + -