📄 qckz.asm
字号:
;==========
;================================================================================
R0 == 0X00
TCC == 0X01
PC == 0x02
R3 == 0X03
PORT5 == 0X05
PORT6 == 0X06
IOCF == 0X0F
IOCE == 0X0E
IOCD == 0X0D
R3F == 0X0F ;不同型号修改
C == 0X00
DELAY_C1 == 0X10
PWM_C1 == 0X12
PWM_C2 == 0X13
FLAG == 0X14
BA == 0X15
BR3 == 0X16
T_PARA == 0X17 ;变化周期
I_PARA == 0X18 ;状态
DIRECT_F == 0
COMP_F == 1
AC_FLAG == 2
;===========================================================================
TIME_PARA1== 1 ;可修改的时间参数
;============================================================================
ORG 0X0
JMP START
;============================================================================
; ORG 0X8 ;中断服务程序
;INTT:
; MOV BA,A
; SWAP BA
; SWAPA R3
; MOV BR3,A
;
; ; MOV A,R3F ;
; ; JBS R3F,2
; ; JMP INT_RETURN
; clr R3F
;
; inc 0x1d
; MOV A,PWM_C2
; SUB A,T_PARA
; JBS 0X03,0X02
; JMP INT_RETURN0
;
; MOV A,@0
; MOV PWM_C2,A
; MOV PWM_C1,A
; MOV A,@TIME_PARA1 ;所有记数中断开始,严格同步
; MOV DELAY_C1,A
; BS FLAG,DIRECT_F
; JMP INT_RETURN
;
;INT_RETURN0:
; INC PWM_C2
;
;INT_RETURN:
; SWAPA BR3
; MOV R3,A
; SWAPA BA
; RETI
;============================================================================
;=====================================================================================
;上电后程序通过读拨码开关的状态,决定颜色变化的周期,
;以及开始点亮的初始状态
;P61,P62,P63,决定点亮的初始状态,P65,P66,P67,决定点颜色变化的周期,P64另做选程序用(led,lamp),
;P50,红,P51,绿,P52,蓝
;=====================================================================================
START: CALL INIT ;初始化
MOV A,@0X99
MOV T_PARA,A
/* MOV A,PORT6
RRCA PORT6
MOV T_PARA,A
AND A,@0X07
MOV I_PARA,A
SWAPA T_PARA
AND A,@0X07
CALL TRANS
MOV T_PARA,A
MOV T_PARA,A
MOV A,I_PARA
ADD PC,A
NOP ;JMP LOOP_T00取消第一个渐暗的状态
JMP LOOP_T10
JMP LOOP_T20
JMP LOOP_T30
JMP LOOP_T40
JMP LOOP_T50
JMP LOOP_T60
JMP LOOP_T70
TRANS: ADD PC,A
NOP
RETL @0X33
RETL @0X66
RETL @0X99
RETL @0X0CC
RETL @0X0FF
RETL @0X0FF
RETL @0X0FF
RETL @0X0FF
RETL @0X0FF */
LOOP_T00: MOV A,@0B00000000 ;RED GREEN BLUE=0
MOV PORT5,A
LOOP_T0: WDTC
CALL DELAY
CALL DETECT_AC
JBS FLAG,DIRECT_F
JMP LOOP_T0
BC FLAG,DIRECT_F
LOOP_T10: MOV A,@0B00000000
MOV PORT5,A
;============================================================
;红色由暗渐亮,其他暗
;============================================================
LOOP_T1:
WDTC
CALL DELAY
CALL DETECT_AC
MOV A,PWM_C1
SUB A,PWM_C2
JBS 0X03,0
JMP LT1
BS PORT5,3
JBS FLAG,DIRECT_F
JMP LOOP_T1
BC FLAG,DIRECT_F
JMP LOOP_T20
LT1: BC PORT5,3
JBS FLAG,DIRECT_F
JMP LOOP_T1
BC FLAG,DIRECT_F
;============================================================
;红的保持亮,绿色由暗渐亮
;============================================================
LOOP_T20:
MOV A,@0B00001000;1
MOV PORT5,A
LOOP_T2: WDTC
CALL DELAY
CALL DETECT_AC
MOV A,PWM_C1
SUB A,PWM_C2
JBS 0X03,0
JMP LT2
BS PORT5,1
JBS FLAG,DIRECT_F
JMP LOOP_T2
BC FLAG,DIRECT_F
JMP LOOP_T30
LT2: BC PORT5,1
JBS FLAG,DIRECT_F
JMP LOOP_T2
BC FLAG,DIRECT_F
;============================================================
;绿色保持亮,红色色由亮渐暗
;============================================================
LOOP_T30:
MOV A,@0B00001010;1
MOV PORT5,A
LOOP_T3: WDTC
CALL DELAY
CALL DETECT_AC
MOV A,PWM_C1
SUB A,PWM_C2
JBS 0X03,0
JMP LT3
BC PORT5,3
JBS FLAG,DIRECT_F
JMP LOOP_T3
BC FLAG,DIRECT_F
JMP LOOP_T40
LT3: BS PORT5,3
JBS FLAG,DIRECT_F
JMP LOOP_T3
BC FLAG,DIRECT_F
;============================================================
;绿色保持亮,兰色色由暗渐亮
;============================================================
LOOP_T40: MOV A,@0B00000010;0
MOV PORT5,A
LOOP_T4: WDTC
CALL DELAY
CALL DETECT_AC
MOV A,PWM_C1
SUB A,PWM_C2
JBS 0X03,0
JMP LT4
BS PORT5,2
JBS FLAG,DIRECT_F
JMP LOOP_T4
BC FLAG,DIRECT_F
JMP LOOP_T50
LT4: BC PORT5,2
JBS FLAG,DIRECT_F
JMP LOOP_T4
BC FLAG,DIRECT_F
;;============================================================
;;兰色保持亮,绿色由亮渐暗
;;============================================================
LOOP_T50: MOV A,@0B00000110;0
MOV PORT5,A
LOOP_T5: WDTC
CALL DELAY
CALL DETECT_AC
MOV A,PWM_C1
SUB A,PWM_C2
JBS 0X03,0
JMP LT5
BC PORT5,1
JBS FLAG,DIRECT_F
JMP LOOP_T5
BC FLAG,DIRECT_F
JMP LOOP_T60
LT5: BS PORT5,1
JBS FLAG,DIRECT_F
JMP LOOP_T5
BC FLAG,DIRECT_F
;;============================================================
;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -