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

📄 渐变.dt

📁 这是一个三色灯变换花色
💻 DT
📖 第 1 页 / 共 2 页
字号:
       /*
       ****************************************************
      
       ;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 + -