📄 qicai.txt
字号:
;--------------------------------------------------
;红色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 + -