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

📄 10.asm

📁 家用风扇控制器 用六个发光二极管,指示风速强,中,弱
💻 ASM
字号:

CODE SEGMENT
     ASSUME CS:CODE,DS:DATA,SS:STACK
DATA SEGMENT
  SU              DB  00H
  LEI            DB  00H
  SHIJIAN   DW 0000H
  DIANJI     DB  80H
  ZHUAN   DB  00H
DATA ENDS

STACK SEGMENT STACK'STACK'
  STT     DB 100 DUP(?)
  TOP    EQU LENGTH STT
STACK ENDS

INTQ0  EQU INTREEUP0
INTQ1  EQU INTREEUP1
INTQ2  EQU INTREEUP2
INTQ3  EQU INTREEUP3

IOCONPT     EQU 0FF2BH               ;定义8255端口地址
IOAPT           EQU 0FF28H
IOBPT           EQU 0FF29H
IOCPT           EQU 0FF2AH

TCONTRO     EQU 0043H                ;定义8253各端口地址
TCON0           EQU 0040H
TCON1           EQU 0041H
TCON2           EQU 0042H

INTPORT1   EQU 0060H              ;定义8259各端口地址
INTPORT2   EQU 0061H

DAPORT      EQU 0020H              ;定义0832端口地址



                 ORG 10E0H

START:
          MOV AX,DATA
          MOV DS,AX
          MOV AX,STACK
          MOV SS,AX
          MOV SP,TOP

         MOV DX,IOCONPT             ;8255控制字
         MOV AL,80H
         OUT  DX,AL 
         MOV DX,IOBPT                   ;程序开始灯全灭
         MOV AL,00H
         OUT DX,AL
         MOV DX,DAPORT              ;程序开始电机停止转动
         MOV AL,80H                         
         OUT DX,AL



        MOV DX,TCONTRO           ;8253控制字
        MOV AL,37H                         ;0通道方波BCD
        OUT DX,AL                
        MOV AL,0B7H                       ;2通道方波BCD
        OUT DX,AL
        MOV DX,TCON0                 ;通道0初值10000
        MOV AL,00H
        OUT DX,AL
        MOV AL,00H
        OUT DX,AL
        MOV DX,TCON2               ;通道2初值100
        MOV AL,14H
        OUT DX,AL
        MOV AL,00H
        OUT DX,AL
       
       CLD
       MOV DX,INTPORT1         ;初始化8259,ICW1
       MOV AL,13H
       OUT DX,AL
       MOV DX,INTPORT2         ;ICW2
       MOV AL,08H                      
       OUT DX,AL
       MOV AL,09H                      ;ICW4
       OUT DX,AL
       MOV AL,0F0H                   ;OCW1
       OUT DX,AL


       MOV  AX,0H
       MOV ES,AX
       MOV DI,0020H                     ;写0号中断矢量
       LEA AX,INTQ0
       STOSW
       MOV AX,SEG INTQ0
       STOSW
       MOV DI,0024H                    ;写1号中断矢量
       LEA AX,INTQ1
       STOSW
       MOV AX,SEG INTQ1
       STOSW
       MOV DI,0028H                   ;写2号中断矢量
       LEA AX,INTQ2
       STOSW
       MOV AX,SEG INTQ2
       STOSW
       MOV DI,002CH                  ;写3号中断矢量
       LEA AX,INTQ3
       STOSW
       MOV AX,SEG INTQ3
       STOSW
       STI


WAITING:       NOP 
                          NOP
                          NOP
                          JMP WAITING
       



          
INTREEUP0:      CLI
                    PUSH DX
                    PUSH AX
                    PUSH ES
                    CMP SU,00H
                    JE MAN
                    CMP SU,01H
                    JE ZHONG
   KUAI:      MOV SU,00H
                    CALL XIANSHI 
                    MOV DIANJI, 0FFH
                    MOV AL,DIANJI
                    MOV DX,DAPORT
                    OUT DX,AL
                    MOV ZHUAN,0FFH
                    MOV SHIJIAN,0000H
                    JMP TUI0
   MAN:       MOV SU,01H
                    CALL XIANSHI
                    MOV DIANJI,0D0H
                    MOV AL,DIANJI
                    MOV DX,DAPORT
                    OUT DX,AL
                    MOV ZHUAN,0FFH
                    MOV SHIJIAN,0000H
                    JMP TUI0
ZHONG:   MOV SU,10H
                    CALL XIANSHI
                    MOV DIANJI,0E0H
                    MOV AL,DIANJI
                    MOV DX,DAPORT
                    OUT DX,AL
                    MOV ZHUAN,0FFH
                    MOV SHIJIAN,0000H
                    JMP TUI0

TUI0:          MOV AL,20H
                    MOV DX,INTPORT1
                    OUT DX,AL
                    POP ES
                    POP AX
                    POP DX
                    STI
                    IRET

INTREEUP1:       CLI
                     PUSH DX
                     PUSH AX
                     PUSH ES
                     CMP LEI,00H
                     JE ZI
                     CMP LEI,01H
                     JE SHUI
 ZHENG:    MOV LEI,00H
                     CALL XIANSHI
                     MOV AL,DIANJI
                     MOV DX,DAPORT
                     OUT DX,AL
                     MOV ZHUAN,0FFH
                     MOV SHIJIAN,0000H
                     JMP TUI1
         ZI:       MOV LEI,01H
                     CALL XIANSHI
                     MOV AL,DIANJI
                     MOV DX,DAPORT
                     OUT DX,AL
                     MOV ZHUAN,0FFH
                     MOV SHIJIAN,0000H
                     JMP TUI1
SHUI:          MOV LEI,10H
                     CALL XIANSHI
                     MOV AL,DIANJI
                     MOV DX,DAPORT
                     OUT DX,AL
                     MOV ZHUAN,0FFH
                     MOV SHIJIAN,0000H
                     JMP TUI1
                                         
TUI1:           MOV AL,20H
                     MOV DX,INTPORT1
                     OUT DX,AL
                     POP ES
                     POP AX
                     POP DX
                     STI
                     IRET

INTREEUP2:       CLI
                    PUSH DX 
                    PUSH AX
                    PUSH ES
                    MOV AL,80H                                                 ;程序结束灯灭电机停
                    MOV DX,DAPORT
                    OUT DX,AL
                    MOV AL,00H
                    MOV DX,IOBPT
                    OUT DX,AL
                    MOV AL,20H
                    MOV DX,INTPORT1
                    OUT DX,AL
                    POP ES
                    POP AX
                    POP DX
                    STI
                    IRET
                     

INTREEUP3:                  CLI
                               PUSH DX
                               PUSH AX
                               PUSH ES
                               INC SHIJIAN
                               CMP LEI,00H                               ;正常风则不变动
                               JE EOI
                               CMP LEI,01H                               
                               JE ZIRAN                                       
     
     SHUIMIAN:     CMP SHIJIAN,0008H 
                                JNE EOI
                                CMP ZHUAN,0FFH
                                JNE SHUI1
                                NOT ZHUAN                             ;8秒到转的变停
                                MOV AL,80H
                                MOV DX,DAPORT
                                OUT DX,AL
                                MOV SHIJIAN,0000H
                                JMP EOI
        SHUI1:           NOT ZHUAN                            ;8秒到停变转
                                MOV AL,DIANJI
                                MOV DX,DAPORT
                                OUT DX,AL
                                MOV SHIJIAN,0000H
                                JMP EOI

        ZIRAN:         CMP ZHUAN,0FFH
                               JE ZI1
                               CMP SHIJIAN,08H                       ;8秒到则开始转
                                JNE EOI
                               NOT ZHUAN  
                               MOV AL,DIANJI
                               MOV DX,DAPORT                             
                               OUT DX,AL
                               MOV SHIJIAN,0000H
                               JMP EOI
                                
          ZI1:             CMP SHIJIAN,0004H
                               JNE EOI
                               NOT ZHUAN                              ;4秒到则停止
                               MOV AL,80H
                               MOV DX,DAPORT
                               OUT DX,AL
                               MOV SHIJIAN,0000H
                               JMP EOI

EOI:           MOV AL,20H              ;复位中断服务寄存器
                   MOV DX,INTPORT1
                   OUT DX,AL
                   POP ES
                   POP AX
                   POP DX
                   STI 
                   IRET

        
                   
XIANSHI  PROC NEAR                            ;LED灯显示子程序
        CMP SU,00H
        JE S1
        CMP SU,01H
        JE S2
        CMP SU,10H
        JE S3
     S1:   CMP LEI,00H
              JE S11
             CMP LEI,01H
              JE S12
             CMP LEI,10H
             JE S13
          S11:  MOV DX,IOBPT                                       ;3快正常
                   MOV AL,0CH
                   OUT DX,AL
                   JMP S
          S12:  MOV DX,IOBPT
                   MOV AL,14H                                            ;6快自然
                   OUT DX,AL
                   JMP S
         S13:   MOV DX,IOBPT
                   MOV AL,24H                                          ;9快睡眠
                   OUT DX,AL
                   JMP S
    S2:  CMP LEI,00H
            JE S21
           CMP LEI,01H
            JE S22                                              
           CMP LEI,10H
           JE  S23
         S21:  MOV DX,IOBPT
                  MOV AL,09H                                               ;1慢正常
                  OUT DX,AL
                  JMP S
         S22:  MOV DX,IOBPT
                  MOV AL,11H                                               ;4慢自然
                  OUT DX,AL
                  JMP S
         S23:  MOV DX,IOBPT
                  MOV AL,21H                                               ;7慢睡眠
                  OUT DX,AL
                  JMP S
    S3:  CMP LEI,00H
            JE S31
           CMP LEI,01H
            JE S32
           CMP LEI,10H
            JE S33
         S31: MOV DX,IOBPT
                 MOV AL,0AH                                              ;2中正常
                 OUT DX,AL
                 JMP S
        S32:  MOV DX,IOBPT                                         ;5中自然
                 MOV AL,12H
                 OUT DX,AL
                 JMP S
        S33:  MOV DX,IOBPT
                 MOV AL,22H                                              ;8中睡眠
                 OUT DX,AL
                 JMP S
S:             RET
XIANSHI ENDP          

CODE ENDS
    END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -