📄 hycd.asm
字号:
;************;
;中断入口程序;
;************;
;
ORG 0000H
LJMP START
ORG 0003H
RETI
ORG 000BH
RETI
ORG 0013H
RETI
ORG 001BH
RETI
ORG 0023H
RETI
;************;
; 初始化程序 ;
;************;
INIT: MOV P1,#00H
RET
;************;
; 主 程 序 ;
;************;
START: ACALL INIT
STAR1: MOV P3,#0FFH
JNB P3.3,FUN0 ;亮点流动
JNB P3.4,FUN1 ;依次点亮
JNB P3.5,FUN2 ; 交错
JNB P3.2,FUN3 ;关闭按纽
AJMP STAR1
FUN0: LCALL DL20MS ;消岸抖动
JB P3.3,STAR1
WAITL0: JNB P3.3,WAITL0 ;等待键释放
FUN01: LCALL FUN00
MOV P3,#0FFH
JNB P3.2,STAR1
LJMP FUN01
FUN1: LCALL DL20MS ;消岸抖动
JB P3.4,STAR1
WAITL1: JNB P3.4,WAITL1 ;等待键释放
FUN10: LCALL FUN11
MOV P3,#0FFH
JNB P3.2,STAR1
LJMP FUN10
FUN2: LCALL DL20MS ;消岸抖动
JB P3.5,STAR1
WAITL2: JNB P3.5,WAITL2 ;等待键释放
FUN20: LCALL FUN22
MOV P3,#0FFH
JNB P3.2,STAR1
LJMP FUN20
FUN3: LCALL DL20MS ;消岸抖动
JB P3.2,STAR1
WAITL3: JNB P3.2,WAITL3 ;等待键释放
MOV P1,#00H ;关显示
LJMP STAR1
FUN00: MOV A,#01H
FUN000: MOV P1,A
LCALL DL05S
JB ACC.7,OUT
RL A
AJMP FUN000
OUT: MOV P1,#00H
RET
FUN11: MOV A,#01H
FUN111: MOV P1,A
MOV R1,A
LCALL DL05S
CJNE A,#0FFH, CNTN
MOV P1,#00H
LCALL DL05S
RET
CNTN: RL A
ORL A,R1
AJMP FUN111
FUN22: MOV A,#0AAH
MOV P1,A
LCALL DL30S
CPL A
MOV P1,A
LCALL DL30S
RET
;************;
; 延时程序 ;
;************;
DL512: MOV R2,#0FFH
LOOP1: DJNZ R2,LOOP1
RET
DL20MS: MOV R3,#28H
LOOP2: LCALL DL512
DJNZ R3,LOOP2
RET
DL05S: MOV R4,#0AH
LOOP3: LCALL DL20MS
DJNZ R4,LOOP3
RET
DL30S: MOV R5,#03H
LOOP4: LCALL DL05S
DJNZ R5,LOOP4
RET
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -