📄 渐变.dt
字号:
/*
****************************************************
;MCU == EM78P153SN
;彭云
*****************************************************
*/
; define 0x10--0x2f
; r9 equ 0x09
; key3_you equ 0
r10 equ 0x10 ;标志位寄存器
r11 equ 0x11 ;12位数接收,循环12次
r12 equ 0x12 ;4位数据码寄存器
r14 equ 0x14 ;4位数据码寄存器
r13 equ 0x13 ;8位地址码寄存器
r15 equ 0x15 ;8位地址码寄存器
r16 equ 0x16 ;编码平移4位
r17 equ 0x17
r18 equ 0x18
r19 equ 0x19
r1a equ 0x1a
r1b equ 0x1b
r1c equ 0x1c
r1d equ 0x1d
r1e equ 0x1e
r1f equ 0x1f
;
r20 equ 0x20
r21 equ 0x21
r22 equ 0x22 ;临时寄存器
r23 equ 0x23 ;临时寄存器
r24 equ 0x24 ;8位地址密码
r25 equ 0x25 ;8位地址密码
r26 equ 0x26
r27 equ 0x27
r28 equ 0x28
r29 equ 0x29
r2a equ 0x2a
r2b equ 0x2b
r2c equ 0x2c
r2d equ 0x2d
r2e equ 0x2e
;**************************************************
;r10:
r0 == 0x00
tcc == 0x01
pc ==0x02
status== 0x03
z == 2
c ==0
r4 == 0x04
; ioc5 == 0x05
ioc6 == 0x06
;
iocb == 0x0b
iocc == 0x0c
iocd == 0x0d
ioce == 0x0e
iocf == 0x0f
rf == 0x0f
exif == 0x02
tcif == 0
;I/O define
p6 == 0x06
fa == 2
;rem == 1 ;接收信号检测口
;
; p6 == 0x06
; key1 == 7
; key2 == 6
; key4 == 5
;****************************************宏指令定义
;****************************************************
org 0x00
jmp begin
nop
nop
org 0x08
jmp int_1
nop
nop
org 0x20
;*************************************************
dealy_1s: ;1s延时程序
mov a,@100
mov r2b,a
mov a,@250
mov r2a,a
mov a,@10
mov r2c,a
ds1:
nop
nop
djz r2a
jmp ds1
wdtc
mov a,@250
mov r2a,a
djz r2b
jmp ds1
mov a,@100
mov r2b,a
djz r2c
jmp ds1
ret
;*************************************************
dealy_2s: ;2s延时程序
mov a,@100
mov r2b,a
mov a,@250
mov r2a,a
mov a,@20
mov r2c,a
ds2:
nop
nop
djz r2a
jmp ds2
wdtc
mov a,@250
mov r2a,a
djz r2b
jmp ds2
mov a,@100
mov r2b,a
djz r2c
jmp ds2
ret
;*************************************************
dealy_4s: ;4s延时程序
mov a,@100
mov r2b,a
mov a,@250
mov r2a,a
mov a,@40
mov r2c,a
ds4:
nop
nop
djz r2a
jmp ds4
wdtc
mov a,@250
mov r2a,a
djz r2b
jmp ds4
mov a,@100
mov r2b,a
djz r2c
jmp ds4
ret
;*************************************************
int_1:
bc rf,tcif ;计时子程序
wdtc
djz r20
jmp pwn_1
mov a,@100
mov r20,a
bs r11,0 ;25ms位
djz r2d
jmp pwn_1
mov a,@05
mov r2d,a
bs r10,6
djz r21
jmp pwn_1
mov a,@02
mov r21,a
bs r10,1
bs r11,1 ;50ms位
djz r12
jmp pwn_1
mov a,@20
mov r12,a
bs r11,2 ;1s位
djz r13
jmp pwn_1
mov a,@04
mov r13,a
bs r11,3 ;4s位
;pwn输出
pwn_1:
jbc r11,5
jmp pwn_21
jbc r10,3 ;pwn_1脉宽标志位 绿灯
jmp pwn_2
djz r18
jmp pwn_2
mov a,r22 ;绿灯渐变时间
mov r18,a
bs r10,3
bs p6,0
jmp pwn_21
pwn_2:
djz r19
jmp pwn_21
mov a,@81
mov r19,a
bc r10,3
bc p6,0
jmp pwn_21
pwn_21:
jbc r11,6
jmp pwn_31
jbc r10,4 ;pwn脉宽标志位 蓝灯
jmp pwn_22
djz r16
jmp pwn_22
mov a,r23 ;蓝灯渐变比例
mov r16,a
bs r10,4
bs p6,1
jmp pwn_31
pwn_22:
djz r17
jmp pwn_31
mov a,@81
mov r17,a
bc r10,4
bc p6,1
jmp pwn_31
pwn_31:
jbc r11,7
jmp intend
jbc r10,5 ;pwn脉宽标志位 红灯
jmp pwn_32
djz r14
jmp pwn_32
mov a,r24 ;红灯渐变比例
mov r14,a
bs r10,5
bs p6,2
jmp intend
pwn_32:
djz r15
jmp intend
mov a,@81
mov r15,a
bc r10,5
bc p6,2
intend:
nop
nop
mov a,@200
mov tcc,a
reti
;*************************************************
mode_a: ;绿亮时,蓝灯渐亮
bc r10,1
bc r11,6
dec r23
djz r25
jmp a_ret
bs r1a,1 ;顺序标志
mov a,@81
mov r24,a
mov a,@80
mov r25,a
a_ret:
ret
;**************************************************
mode_b: ;绿灯渐灭,蓝灯亮4s
bc r10,1
inc r22
djz r25
jmp b_ret
bs r11,5
bc p6,0
bs r1a,2
mov a,@80
mov r25,a
b_ret:
ret
;***************************************************
mode_c: ;红灯渐亮 蓝亮保持
bc r10,1
bc r11,7
nop
nop
dec r24
djz r25
jmp c_ret
bs r1a,4
mov a,@80
mov r25,a
c_ret:
ret
;***************************************************
mode_d: ;红灯保持,蓝灯渐灭
bc r10,1
inc r23
djz r25
jmp d_ret
bs r11,6
bc p6,1
bs r1a,5
mov a,@80
mov r25,a
d_ret:
ret
;***************************************************
mode_e: ;绿灯渐亮
bc r10,1
bc r11,5
dec r22
djz r25
jmp e_ret
bs r1a,7
mov a,@80
mov r25,a
e_ret:
ret
;***************************************************
mode_f: ;红灯渐灭 绿灯保持
bc r10,1
inc r24
djz r25
jmp f_ret
mov a,@80
mov r25,a
bs r11,7
bc p6,2
bs r11,6
bs r1b,0
f_ret:
ret
;***************************************************
mode_g: ;红蓝渐亮 绿保持亮
bc r10,1
bc r11,6
bc r11,7
dec r24
dec r23
djz r25
jmp g_ret
bs r1b,2
mov a,@80
mov r25,a
g_ret:
ret
;***************************************************
mode_h: ;红绿渐灭 蓝灯保持亮
bc r10,1
inc r24
inc r22
djz r25
jmp h_ret
bs r11,5
bs r11,7
bc p6,0
bc p6,2
bs r1b,3
mov a,@80
mov r25,a
h_ret:
ret
;***************************************************
mode_i:
bc r10,1 ;红灯渐亮 其余保持
bc r11,7
dec r24
djz r25
jmp i_ret
bs r1b,5
mov a,@80
mov r25,a
i_ret:
ret
;***************************************************
mode_j:
bc r10,1 ;蓝灯渐灭 其余保持
inc r23
djz r25
jmp j_ret
bs r11,6
bc p6,1
bs r1b,6
mov a,@80
mov r25,a
j_ret:
ret
;***************************************************
mode_k: ;绿灯渐亮 其余保持
bc r10,1
bc r11,5
dec r22
djz r25
jmp k_ret
bs r1c,0
mov a,@80
mov r25,a
k_ret:
ret
;***************************************************
mode_l: ;红灯渐灭 其余保持
bc r10,1
inc r24
djz r25
jmp l_ret
bs r11,7
bc p6,2
bs r1c,1
mov a,@80
mov r25,a
l_ret:
ret
;****************************************************
;888888888888888888888888888888888888888888888888888
mode_a2: ;绿亮时,蓝灯渐亮
bc r10,6
bc r11,6
dec r23
djz r25
jmp a2_ret
bs r1e,0 ;顺序标志
mov a,@81
mov r24,a
mov a,@80
mov r25,a
a2_ret:
ret
;**************************************************
mode_b2: ;绿灯渐灭,蓝灯亮4s
bc r10,6
inc r22
djz r25
jmp b2_ret
bs r11,5
bc p6,0
bs r1e,1
mov a,@80
mov r25,a
b2_ret:
ret
;***************************************************
mode_c2: ;红灯渐亮 蓝亮保持
bc r10,6
bc r11,7
dec r24
djz r25
jmp c2_ret
bs r1e,3
mov a,@80
mov r25,a
c2_ret:
ret
;***************************************************
mode_d2: ;红灯保持,蓝灯渐灭
bc r10,6
inc r23
djz r25
jmp d2_ret
bs r11,6
bc p6,1
bs r1e,4
mov a,@80
mov r25,a
d2_ret:
ret
;***************************************************
mode_e2: ;绿灯渐亮
bc r10,6
bc r11,5
dec r22
djz r25
jmp e2_ret
bs r1e,5
mov a,@80
mov r25,a
e2_ret:
ret
;***************************************************
mode_f2: ;红灯渐灭 绿灯保持
bc r10,6
inc r24
djz r25
jmp f2_ret
bs r11,7
bc p6,2
bs r1e,6
mov a,@80
mov r25,a
f2_ret:
ret
;***************************************************
mode_g2: ;红蓝渐亮 绿保持亮
bc r10,6
bc r11,6
bc r11,7
dec r24
dec r23
djz r25
jmp g2_ret
bs r1e,7
mov a,@80
mov r25,a
g2_ret:
ret
;***************************************************
mode_h2: ;红绿渐灭 蓝灯保持亮
bc r10,6
inc r24
inc r22
djz r25
jmp h2_ret
bs r11,7
bs r11,5
bc p6,2
bc p6,0
bs r1f,0
mov a,@80
mov r25,a
h2_ret:
ret
;***************************************************
mode_i2:
bc r10,6 ;红灯渐亮 其余保持
bc r11,7
dec r24
djz r25
jmp i2_ret
bs r1f,1
mov a,@80
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -