📄 sound control.asm
字号:
;--------------------------------------------------------------------------
;
;
;
;软件说明:
;此软件是V1.0版本2007-2-1
;作者:
;功能描述: V1.0
;主机控制程序是用来控制显示同步花样和实现自定义花样
;可以做同步跳变、渐变,追逐,跑马等效果
;使用AT89C2051
;---------------------------------------------------------------------------
;------------------------引脚定义-------------------------------------------
DAT BIT P1.4
LAT BIT P1.5
OE BIT P1.6
CK BIT P1.7
;--------------------------------------------------------------------------
;变量定义表
;------------------------寄存器定义----------------------------------------
DISPNUM DATA 24H
DISPBACK DATA 25H
TEMP1 DATA 27H
TEMP2 DATA 28H
TEMP11 DATA 2DH
TEMP22 DATA 2CH
;---------------------------------------------------------------------------
;------------------------地址常量定义---------------------------------------
;地址常量定义
DUSU EQU 8 ;控制段数
;---------------------------------------------------------------------------
;------------------------以下为程序清单-------------------------------------
ORG 0000H
JMP MAIN
ORG 0030H
MAIN:CALL YS1
CLR OE
;******************************************************************
CALL PL1 ;跳变
CALL PL2 ;渐变
CALL PL3 ;头到尾
CALL PL4 ;尾到头
CALL PL5 ;中间到两头
CALL PL6 ;两头到中间
CALL PL7 ;7彩跑马
JMP MAIN
;******************************************************************
PL1:
MOV R0,#11H
CALL RUN1
MOV R0,#33H
CALL RUN1
MOV R0,#22H
CALL RUN1
MOV R0,#66H
CALL RUN1
MOV R0,#44H
CALL RUN1
MOV R0,#55H
CALL RUN1
MOV R0,#77H
CALL RUN1
RET
;******************************************************************
PL2: MOV R0,#7
MOV DPTR,#TAB
KSJB: MOV A,#00H
MOVC A,@A+DPTR
MOV DISPNUM,A
INC DPTR
MOV A,#00H
MOVC A,@A+DPTR
MOV DISPBACK,A
MOV R4,#24
MOV R5,#1
MOV R2,#0FFH
MOV R3,#00H
FOOL: DEC R2
INC R3
MOV A,R2
JNZ XIAN
DJNZ R0,KSJB
RET
XIAN: CALL RUN31
ACALL DELAY0
CALL RUN32
ACALL DELAY1
DJNZ R5,XIAN ;调整渐变时间间隔
MOV R5,#1
AJMP FOOL
YS1:MOV R4,#1
DELl6:MOV R6,#200 ;延时时间为196ms X R4
DELl8:MOV R7,#200
DELl7:DJNZ R7,DELl7
DJNZ R6,DELl8
DJNZ R4,DELl6
RET
DELAY0:
DEL:MOV TEMP1,R2
DEL1:MOV TEMP2,R4
DEL2:DJNZ TEMP2,DEL2
DJNZ TEMP1,DEL1
DOUT0: RET
DELAY1:
DEL3: MOV TEMP1,R3
DEL4: MOV TEMP2,R4
DEL5: DJNZ TEMP2,DEL5
DJNZ TEMP1,DEL4
DOUT1: RET
RUN31:MOV R7,#DUSU/2
RUN33:MOV A,DISPNUM
CALL FS
DJNZ R7,RUN33
CALL XS
RET
RUN32:MOV R7,#DUSU/2
RUN34:MOV A,DISPBACK
CALL FS
DJNZ R7,RUN34
CALL XS
RET
;******************************************************************
PL3:
MOV DISPNUM,#33H
MOV DISPBACK,#77H
CALL RUN5
MOV DISPNUM,#22H
MOV DISPBACK,#33H
CALL RUN5
MOV DISPNUM,#66H
MOV DISPBACK,#22H
CALL RUN5
RET
;******************************************************************
PL4:
MOV DISPNUM,#44H
MOV DISPBACK,#66H
CALL RUN2
MOV DISPNUM,#55H
MOV DISPBACK,#44H
CALL RUN2
MOV DISPNUM,#77H
MOV DISPBACK,#55H
CALL RUN2
RET
;******************************************************************
PL5:
MOV DISPNUM,#11H
MOV DISPBACK,#77H
CALL RUN6
MOV DISPNUM,#33H
MOV DISPBACK,#11H
CALL RUN6
MOV DISPNUM,#22H
MOV DISPBACK,#33H
CALL RUN6
MOV DISPNUM,#66H
MOV DISPBACK,#22H
CALL RUN6
MOV DISPNUM,#44H
MOV DISPBACK,#66H
RET
;******************************************************************
PL6:
CALL RUN7
MOV DISPNUM,#55H
MOV DISPBACK,#44H
CALL RUN7
MOV DISPNUM,#77H
MOV DISPBACK,#55H
CALL RUN7
RET
;******************************************************************
PL7:
MOV R3,#5
RUNC: MOV R0,#1
CALL RUN9
MOV R0,#2
CALL RUN9
MOV R0,#3
CALL RUN9
MOV R0,#4
CALL RUN9
MOV R0,#5
CALL RUN9
MOV R0,#6
CALL RUN9
MOV R0,#7
CALL RUN9
DJNZ R3,RUNC
RET
;******************************************************************
RUN1:MOV R2,#DUSU/2+1
MOV A,R0
RUN0:CALL FS
DJNZ R2,RUN0
CALL XS
CALL YS
RET
;******************************************************************
RUN9:MOV R2,#DUSU
RUNB:MOV A,R0
CALL FS1
INC R0
CJNE R0,#8,RUNA
MOV R0,#1
RUNA:DJNZ R2,RUNB
CALL XS
CALL YS1
CALL YS1
RET
;******************************************************************
RUN2: MOV R0,#DUSU-1
MOV R1,#1
RUN22:MOV A,R0
MOV R2,A
RUN23:MOV A,DISPBACK
CALL FS1
DJNZ R2,RUN23
MOV A,R1
MOV R2,A
RUN24:MOV A,DISPNUM
CALL FS1
DJNZ R2,RUN24
CALL XS
CALL YS1
INC R1
DJNZ R0,RUN22
RET
;******************************************************************
FS: MOV C,ACC.0
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.1
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.2
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.4
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.5
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.6
MOV DAT,C
SETB CK
CLR CK
RET
;******************************************************************
FS1: MOV C,ACC.0
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.1
MOV DAT,C
SETB CK
CLR CK
MOV C,ACC.2
MOV DAT,C
SETB CK
CLR CK
RET
;******************************************************************
XS: CLR LAT
NOP
SETB LAT
NOP
NOP
CLR LAT
RET
;******************************************************************
YS: MOV R6,#10
DL8: MOV R5,#255
DEL7: MOV R4,#255
DEL6: DJNZ R4,DEL6
DJNZ R5,DEL7
DJNZ R6,DL8
RET
;******************************************************************
RUN6: MOV R0,#DUSU/2-1
MOV R1,#DUSU/2-1
MOV R2,#1
RUN60:MOV A,R0
MOV R3,A
RUN61:MOV A,DISPBACK
CALL FS1
DJNZ R3,RUN61
MOV A,R2
MOV R3,A
RUN62:MOV A,DISPNUM
CALL FS
DJNZ R3,RUN62
MOV A,R1
MOV R3,A
RUN63:MOV A,DISPBACK
CALL FS1
DJNZ R3,RUN63
CALL XS
CALL YS1
INC R2
DEC R0
DJNZ R1,RUN60
RET
;******************************************************************
RUN7: MOV R0,#1
MOV R1,#1
MOV R2,#DUSU/2-1
RUN70:MOV A,R0
MOV R3,A
RUN71:MOV A,DISPNUM
CALL FS1
DJNZ R3,RUN71
MOV A,R2
MOV R3,A
RUN72:MOV A,DISPBACK
CALL FS
DJNZ R3,RUN72
MOV A,R1
MOV R3,A
RUN73:MOV A,DISPNUM
CALL FS1
DJNZ R3,RUN73
CALL XS
CALL YS1
INC R0
INC R1
DJNZ R2,RUN70
RET
;******************************************************************
RUN5: MOV R0,#DUSU-1
MOV R1,#1
RUN52:MOV A,R1
MOV R2,A
RUN53:MOV A,DISPNUM
CALL FS1
DJNZ R2,RUN53
MOV A,R0
MOV R2,A
RUN54:MOV A,DISPBACK
CALL FS1
DJNZ R2,RUN54
CALL XS
CALL YS1
INC R1
DJNZ R0,RUN52
RET
;******************************************************************
TAB: DB 77H,11H,33H,22H,66H,44H,55H,77H
;******************************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -