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

📄 46r47_1606_led.asm

📁 一个用HT46R47驱动HL1606控制的LED软灯条程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;-------------------------------------------------;
JJ_send2_84:           
                      mov     A,R_RegJ        
                      add     A,LED_tab_02   
                      mov     tblp,A         
                      tabrdl  Rt_Data            
                      jmp     JJ_LI_PP
;-------------------------------------------------;
JJ_send2_00:
                      mov     A,R_RegJ             
                      sub     A,6           ;7色取完?
                      snz     c             ; 
                      jmp     JJ_set0_84h
JJ_set0_81h: 
                      mov     A,81h         ;绿底 
                      mov     Rt_Data,A     ;
                      jmp     JJ_LI_PP
JJ_set0_84h:       
                      mov     A,84h         ;红底 
                      mov     Rt_Data,A     ;            
;-------------------------------------------------;
JJ_LI_PP:
                      set     fg_Li                             
                      call    JM_wt_HL1606
;-------------------------------------------------;
                      sz      FangXiang
                      jmp     J2_LI_CLK        ;正向
J2_FanXiang:                    
                      inc     R_RegK
                      mov     A,R_RegK
                      sub     A,16
                      snz     c
                      jmp     JJ_Mode02_RUN   
J2_LI_CLK:                     
                      set     B_LI
                      nop
                      clr     B_LI
                      nop
;-------------------------------------------------;                      
                      call    Delay            
;-------------------------------------------------;
                      inc     R_RegM            
                      mov     A,R_RegM
                      sub     A,16          ;16个LED亮完?
                      snz     c
                      jmp     JJ_set02_K
                      clr     R_RegM              
;-------------------------------------------------;
                      inc     R_RegJ            
                      mov     a,R_RegJ             
                      sub     A,12          ;12种变化完成?
                      snz     c             
                      jmp     JJ_set02_K
                      clr     R_RegJ
;-------------------------------------------------;
                      dec     R_RegS
                      snz     FangXiang
                      jmp     J2_goto_Zhen
J2_goto_Fan:                                           
                      clr     FangXiang
                      jmp     JJ_set02_K
J2_goto_Zhen:
                      set     FangXiang
JJ_set02_K:      
                      clr     R_RegK              
                      jmp     JJ_MODE02_RUN       

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;
;---------------------------------------------------------------;
;                  HL1606 正,反 向 刷 色 程 序                  ;
;                     8个HL1606,16个三色灯                      ;
;---------------------------------------------------------------;
JJ_Mode01_Pro:
                      clr     R_RegK
                      clr     R_RegM
                      clr     R_RegJ
                      clr     fg_Li
                      clr     Rt_Data
                      set     FangXiang
                      mov     A,4
                      mov     R_RegS,A                      
JJ_Mode01_RUN:
                      sz      R_RegS
                      jmp     JW_Mode01_RUN
                      ret
JW_Mode01_RUN:                      
                      mov     A,R_RegK
                      xor     A,R_RegM
                      snz     z
                      jmp     JJ_send_00
;--------------------------------------------------;          
JJ_send_Table:            
                      set     fg_Li                             
                      mov     A,R_RegJ        
                      add     A,LED_tab_01   
                      mov     tblp,A         
                      tabrdl  Rt_Data            
                      call    JM_wt_HL1606
                      jmp     JJ_chk_RK
;--------------------------------------------------;          
JJ_send_00:
                      set     fg_Li                             
                      clr     Rt_Data                          
                      call    JM_wt_HL1606
;--------------------------------------------------;          
JJ_chk_RK:
                      sz      FangXiang
                      jmp     JJ_LI_CLK        ;正向
JJ_FanShua:
                      inc     R_RegK           ;反向 
                      mov     A,R_RegK
                      sub     A,16
                      snz     c
                      jmp     JJ_Mode01_RUN             
JJ_LI_CLK:
                      set     B_LI       
                      nop
                      clr     B_LI 
                                   
                      call    Delay                        

;--------------------------------------------------;          
                      inc     R_RegM
                      mov     A,R_RegM
                      sub     A,16
                      snz     c
                      jmp     JJ_set0_K
                      clr     R_RegM
                      
                      inc     R_RegJ
                      mov     A,R_RegJ
                      sub     A,7
                      snz     c
                      jmp     JJ_set0_K
                       
                      clr     R_RegJ
                      clr     R_RegK
                      clr     R_RegM
                     
                      dec     R_RegS                      
                      snz     FangXiang
                      jmp     JJ_goto_Zhen
JJ_goto_Fan:                                           
                      clr     FangXiang
                      jmp     JJ_Mode01_RUN
JJ_goto_Zhen:
                      set     FangXiang
                      jmp     JJ_Mode01_RUN
JJ_set0_K:
                      clr     R_RegK                        
                      jmp     JJ_Mode01_RUN

;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
;------->>           写 HL1606 发送数据子程序          <<-------;
;------->>               PA4 = SI                      <<-------;
;------->>               PA5 = DI                      <<-------;
;------->>               PA6 = CI                      <<-------;
;------->>               PA7 = LI                      <<-------;
;===============================================================;
JM_wt_HL1606:
                      mov     A,8
                      mov     Rt_count,A    ;
JM_wt_Loop:
                      clr     c
                      RLC     Rt_Data       ;
                      
                      snz     c
                      jmp     JM_wt_00
JM_wt_01:
                      set     B_DI          ;1
                      jmp     JM_wt_clk
JM_wt_00:
                      clr     B_DI          ;0                                                         
JM_wt_clk:
                      set     B_CI
                      nop
                      clr     B_CI
                      nop
                      sdz     Rt_count
                      jmp     JM_wt_Loop
                      nop
                      sz      fg_Li
                      ret
                      set     B_LI
                      nop
                      clr     B_LI
                      ret                      
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
;------->>               Delay routine                 <<-------;
;===============================================================;
Delay:
                      mov     A,50;200
                      mov     count1,A
                      mov     count2,A
                     ; mov     A,5
                     ; mov     count3,A
Dy_1:
                      sdz     count1
                      jmp     Dy_1
                      sdz     count2
                      jmp     Dy_1
                      ;sdz     count3
                      ;jmp     Dy_1
                      ret                      

;===============================================================;
;===============================================================;

                      org   lastpage
LED_tab_01:                      
                      dc    84h        ;红 - 84h
                      dc    81h        ;绿 - 81h
                      dc    90h        ;蓝 - 90h 
                      dc    85h        ;黄 - 85h
                      dc    91h        ;青 - 91h
                      dc    94h        ;紫 - 94h
                      dc    95h        ;白 - 95h
LED_tab_02:                      
                      dc    95h        ;     
                      dc    85h        ;
                      dc    90h        ; 
                      dc    81h        ;
                      dc    91h        ;
                      dc    94h        ;
                    
                      dc    95h        
                      dc    85h        
                      dc    90h         
                      dc    84h        
                      dc    91h        
                      dc    94h        
                    

;==================================================================;
                    
                      end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -