?? 10.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 + -