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

📄 qckz.asm

📁 LED 彩灯
💻 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 + -