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

📄 qicai.txt

📁 七彩多变彩灯控制器
💻 TXT
📖 第 1 页 / 共 5 页
字号:




;--------------------------------------------------
;红色LED单次关闭程序
FREDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE0
FREDWR_LOOP: 
       RLC   A
       MOV   DSR_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,FREDWR_LOOP ;移位寄存器接收8位数据
       RET
;------------------------------------------------------------------------------------------




;--------------------------------------------------
;红色LED追加点亮程序
SREDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE1
SREDWR_LOOP: 
       RLC   A
       MOV   DSR_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,SREDWR_LOOP ;移位寄存器接收8位数据
       RET
;红色LED循环点亮完毕
;--------------------------------------



;---------------------------------------------------------------------------------------------------------------
;绿色LED开始循环追加点亮
WALK_GREEN:
       MOV    WALK_COUN,#0
S2:
       CALL   NULL
       CALL   TOWKGED
       INC    WALK_COUN
       MOV    A,WALK_COUN
       CJNE   A,#0AH,S2
       MOV    WALK_COUN,#0
       RET

TOWKGED:
       CLR    DSR_595
       CLR    DSG_595
       CLR    DSB_595
       MOV    DIS_COUN,#0
       MOV    STATE0,#00H
       MOV    STATE1,#01H
       CLR    SGCP_595 ;先将数据脉冲请零以防数据窜入
       CLR    STCP_595 ;把数据输入脚置低电平
       CLR    EN_595   ; 使能器件595输出
WKGED1:
       CALL   WKGEDOUT_5951
       INC    DIS_COUN
       MOV    R5,#10
       CALL   DELAY1


       MOV    A,STATE1
       RL     A
       MOV    STATE1,A
       INC    STATE1

       MOV    A,DIS_COUN
       CJNE   A,#08H,WKGED1
       MOV    DIS_COUN,#0
       MOV    STATE0,#01H
       MOV    STATE1,#0FFH
WKGED2:
       CALL   WKGEDOUT_5952
       INC    DIS_COUN
       MOV    R5,#10
       CALL   DELAY1
       MOV    A,STATE0
       RL     A
       MOV    STATE0,A
       INC    STATE0
       
       MOV    A,DIS_COUN
       CJNE   A,#08H,WKGED2
       MOV    DIS_COUN,#00H
       MOV    STATE1,#01H
       MOV    STATE0,#00H
       RET
;-------------------------------------------------



;--------------------------------------------------
;第一个IC点亮
WKGEDOUT_5951:
       SETB  EN_595
       LCALL FGEDWR_595 ;第二个IC数据输入
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       LCALL SGEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       CLR    EN_595   ; 使能器件595输出
       RET
;--------------------------------------------------


;--------------------------------------------------
;第二个IC点亮
WKGEDOUT_5952:
       SETB  EN_595
       LCALL FGEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       LCALL SGEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       CLR   EN_595
       RET
;--------------------------------------------------




;--------------------------------------------------
;绿色LED单次关闭程序
FGEDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE0
FGEDWR_LOOP: 
       RLC   A
       MOV   DSG_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,FGEDWR_LOOP ;移位寄存器接收8位数据
       RET
;------------------------------------------------------------------------------------------




;--------------------------------------------------
;绿色LED追加点亮程序
SGEDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE1
SGEDWR_LOOP: 
       RLC   A
       MOV   DSG_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,SGEDWR_LOOP ;移位寄存器接收8位数据
       RET
;绿色LED循环点亮完毕
;-------------------------------------------------


;---------------------------------------------------------------------------------------------------------------
;蓝色LED开始循环追加点亮
WALK_BLUE:
       MOV    WALK_COUN,#0
S3:
       CALL   NULL
       CALL   TOWKBED
       INC    WALK_COUN
       MOV    A,WALK_COUN
       CJNE   A,#0AH,S3
       MOV    WALK_COUN,#0
       RET
TOWKBED:
       CLR    DSR_595
       CLR    DSG_595
       CLR    DSB_595
       MOV    DIS_COUN,#0
       MOV    STATE0,#00H
       MOV    STATE1,#01H
       CLR    SGCP_595 ;先将数据脉冲请零以防数据窜入
       CLR    STCP_595 ;把数据输入脚置低电平
       CLR    EN_595   ; 使能器件595输出
WKBED1:
       CALL   WKBEDOUT_5951
       INC    DIS_COUN
       MOV    R5,#10
       CALL   DELAY1
       MOV    A,STATE1
       RL     A
       MOV    STATE1,A
       INC    STATE1

       MOV    A,DIS_COUN
       CJNE   A,#08H,WKBED1
       MOV    DIS_COUN,#0
       MOV    STATE0,#01H
       MOV    STATE1,#0FFH
WKBED2:
       CALL   WKBEDOUT_5952
       INC    DIS_COUN
       MOV    R5,#10
       CALL   DELAY1
       MOV    A,STATE0
       RL     A
       MOV    STATE0,A
       INC    STATE0
       
       MOV    A,DIS_COUN
       CJNE   A,#08H,WKBED2
       MOV    DIS_COUN,#00H
       MOV    STATE1,#01H
       MOV    STATE0,#00H
       RET
;-------------------------------------------------



;--------------------------------------------------
;第一个IC点亮
WKBEDOUT_5951:
       SETB  EN_595
       LCALL FBEDWR_595 ;第二个IC数据输入
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       LCALL SBEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       CLR    EN_595   ; 使能器件595输出
       RET
;--------------------------------------------------


;--------------------------------------------------
;第二个IC点亮
WKBEDOUT_5952:
       SETB  EN_595
       LCALL FBEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       LCALL SBEDWR_595
       CLR   STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB  STCP_595 ;上升沿将数据送到输出锁存器
       NOP
       NOP
       NOP
       CLR   EN_595
       RET
;--------------------------------------------------




;--------------------------------------------------
;红色LED单次关闭程序
FBEDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE0
FBEDWR_LOOP: 
       RLC   A
       MOV   DSB_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,FBEDWR_LOOP ;移位寄存器接收8位数据
       RET
;------------------------------------------------------------------------------------------




;--------------------------------------------------
;红色LED追加点亮程序
SBEDWR_595: 
       MOV   R4,#08H ;
       MOV   A,STATE1
SBEDWR_LOOP: 
       RLC   A
       MOV   DSB_595,C
       SETB  SGCP_595 ;上升沿发生移位
       NOP
       NOP
       CLR   SGCP_595
       DJNZ  R4,SBEDWR_LOOP ;移位寄存器接收8位数据
       RET
;红色LED循环点亮完毕
;------------------------------------------------

;--------------------------------------------------------------------
RED_AND_GREEN:       
       CALL   RED_GREEN
       MOV    R5,#20
       CALL   DELAY1

       CALL   GREEN_RED
       MOV    R5,#20
       CALL   DELAY1
       INC    DIS_COUN
       MOV    A,DIS_COUN
       CJNE   A,#50,RED_AND_GREEN
       MOV    DIS_COUN,#0
       RET

RED_GREEN:
       SETB   EN_595 ;禁止输出
       LCALL  RED_GREEN1 ;第二个IC数据输入
       CLR    STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB   STCP_595 ;上升沿将数据送到输出锁存器
       NOP 
       NOP
       NOP
       LCALL  RED_GREEN2
       CLR    STCP_595
       NOP
       NOP
       SETB   STCP_595
       NOP
       NOP
       NOP
       CLR    EN_595
       RET

;------------------------------------------------------------------------------------------


RED_GREEN1:
       MOV   STATE0,#0FFH

       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595


       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595

       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595


       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
       RET
;------------------------------------------------------------------------------------------

;------------------------------------------------------------------------------------------


RED_GREEN2:
       MOV   STATE0,#0FFH

       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595


       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSR_595,C
       CPL   C
       MOV   DSB_595,C
       MOV   DSG_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595

       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595


       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
      
       MOV   A,STATE0
       RLC   A
       MOV   STATE0,A
       MOV   DSG_595,C
       CPL   C
       MOV   DSR_595,C
       MOV   DSB_595,C
       SETB  SGCP_595
       NOP
       NOP
       CLR   SGCP_595
       RET
;------------------------------------------------------------------------------------------


GREEN_RED:
       SETB   EN_595 ;禁止输出
       LCALL  GREEN_RED1 ;第二个IC数据输入
       CLR    STCP_595 ;把数据输入脚置低电平
       NOP
       NOP
       SETB   STCP_595 ;上升沿将数据送到输出锁存器
       NOP 
       NOP
       NOP
       LCALL  GREEN_RED2
       CLR    STCP_595
       NOP
       NOP
       SETB   STCP_595
       NOP
       NOP
       NOP
       CLR    EN_595
       RET

⌨️ 快捷键说明

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