?? av.asm
字號:
DJNZ R1,GIF_V3
V3_0: MOV A,DP_MODE ; 頻譜模式的轉(zhuǎn)換
CJNE A,#0,V3_1
MOV DPTR,#TAB26
V3_1: CJNE A,#1,V3_2
MOV DPTR,#TAB27
V3_2: CJNE A,#2,V3_3
MOV DPTR,#TAB28
V3_3: CJNE A,#3,V3_4
MOV DPTR,#TAB29
V3_4: CJNE A,#4,V3_5
MOV DPTR,#TAB30
V3_5: CJNE A,#5,V3_8
MOV DPTR,#TAB31
V3_8: JB AUTO_SIGN, V3_12 ;是信號頻譜則轉(zhuǎn)相關(guān)處理
MOV R0,#29H ;是自動頻譜轉(zhuǎn)相關(guān)處理
MOV R1,#4
V3_11: MOV A,DP_NUM
RL A
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
MOV A,DP_NUM
RL A
INC A
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
DJNZ R1,V3_11
JMP GIF_1D
V3_12: MOV R0,#29H ;-------------;G1-G4數(shù)據(jù)輸入(顯示頻譜)
MOV R1,#AD_SIM1
MOV R2,#4 ;-----------一個循環(huán)輸入2個字節(jié),4次剛好把8個緩沖區(qū)數(shù)據(jù)處理完畢
GIF_V4: MOV A,@R1
RL A
MOVC A, @A+DPTR
DEC R0
MOV A,@R1
RL A
INC A
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
INC R1
DJNZ R2,GIF_V4
GIF_1D: MOV A, 23H ;加上裝飾條
ADD A, #40H
MOV 23H,A
MOV A, 29H ;加上裝飾條
ADD A, #40H
MOV 29H,A
JMP GIF_1C
;-------------------------------------------------------------
GIF_V9: MOV 22H,#0 ;開機音量自跑過程中不顯示頻譜,把G1-G4數(shù)據(jù)清空(!!!!!!!!!)
MOV 23H,#60H ;留下裝惜條和顯示最低位頻譜(20H+40H)
MOV 24H,#0
MOV 25H,#20H ;顯示最低位頻譜
MOV 26H,#0
MOV 27H,#20H ;顯示最低位頻譜
MOV 28H,#0
MOV 29H,#60H ;留下裝惜條和顯示最低位頻譜(20H+40H)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 跑過場字幕;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GIF_1C: MOV A,GIF_SIGN
CJNE A,#1,GIF_2
INC GIF_TIME1
MOV A,GIF_TIME1
CJNE A,#70,GIF_A1 ;跑字速度
MOV GIF_TIME1,#0
MOV DPTR,#TAB2
CALL GIF_LEFT ;調(diào)用左移一位子程序
INC GIF_LONG ;動畫字幕長度
MOV A,GIF_LONG
CJNE A,#23,C5_1 ;跑23步后結(jié)束
MOV GIF_LONG,#0
MOV GIF_SIGN,#2 ;開機序幕結(jié)束,SIGN=2
GIF_A1: JMP RET1
;;-----------------------------------------------------------------------------------------------
;;-----------------------------------------------------------------------------------------------
GIF_2: MOV A,GIF_SIGN ;;;;;;;;;--------------------------顯示帶功能的數(shù)值,如VOL,BASS,ECHO等
CJNE A,#2,GIF_X1
MOV R0,#2CH ;G6-G12字母區(qū)數(shù)據(jù)前先把該處理區(qū)的數(shù)據(jù)清空免得重疊
MOV R1,#14
GIF_2X: MOV @R0,#0
INC R0
DJNZ R1,GIF_2X
GIF_2A: INC GIF_TIME1 ;GIF_SIGN=2的持續(xù)時間
MOV A,GIF_TIME1
CJNE A,#150, GIF_0B
MOV GIF_TIME1,#0
INC GIF_LONG
MOV A,GIF_LONG
CJNE A,#30,GIF_0B
MOV GIF_LONG,#0
MOV GIF_SIGN,#3
JMP RET1
GIF_0B: MOV R7,SYS_SIGN ;處理G9-G13的顯示緩沖區(qū)數(shù)據(jù)
CJNE R7,#0,GIF_C
MOV DPTR,#TAB4 ;----------主音量顯示 (NO1)
CALL GIF_DIG4 ;----------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, MAIN_DATA ;----------主音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_X1: LJMP GIF_3
GIF_C: ;-----------------------------輸入INPUT顯示 (NO2)
CJNE R7,#17,GIF_D
MOV R6,INPUT_DATA
CJNE R6,#1,GIF_C2
MOV DPTR,#TAB18 ;顯示CD/VCD
CLR AC3 ;4053的控制信號
JMP GIF_C5
GIF_C2: CJNE R6,#2,GIF_C3
MOV DPTR,#TAB19 ;顯示TUNER
CLR AC3
JMP GIF_C5
GIF_C3: MOV DPTR,#TAB20 ;顯示AC-3
SETB AC3
GIF_C5: CALL GIF_DIG7 ;-----------調(diào)用7位顯示數(shù)據(jù)(G6-G12)
C5_1: JMP RET1
GIF_D: CJNE R7,#1,GIF_E;-----------輸入BASS顯示 (NO3)
MOV DPTR,#TAB5
CALL GIF_DIG4
MOV DPTR,#TAB21
MOV A,BASS_DATA
CALL GIF_DG3B
JMP RET1
GIF_E: CJNE R7,#2,GIF_F;-----------輸入TREBLE顯示 (NO4)
MOV DPTR,#TAB6
CALL GIF_DIG4
MOV DPTR,#TAB21
MOV A,TR_DATA
CALL GIF_DG3B
JMP RET1
GIF_F: CJNE R7,#3,GIF_G
MOV DPTR,#TAB13 ;----------MVOL顯示 (NO5)
CALL GIF_DIG4 ;----------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, MVOL_DATA ;----------MVOL音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_G: CJNE R7,#4,GIF_H
MOV DPTR,#TAB12 ;----------MECHO顯示 (NO6)
CALL GIF_DIG4 ;----------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, ECHO_DATA ;----------ECHO分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_H: CJNE R7,#5,GIF_I
MOV DPTR,#TAB14 ;----------DELAY顯示 (NO7)
CALL GIF_DIG4 ;----------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, DELAY_DATA ;----------DELAY分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_I: CJNE R7,#6,GIF_J
MOV DPTR,#TAB8 ;----------SL顯示 (NO8)
CALL GIF_DIG4 ;---------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, SURL_DATA ;----------SL音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_J: CJNE R7,#7,GIF_K
MOV DPTR,#TAB9 ;----------SR顯示 (NO9)
CALL GIF_DIG4 ;---------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, SURR_DATA ;----------SUR音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_K: CJNE R7,#8,GIF_L
MOV DPTR,#TAB11 ;---------CEN顯示 (NO10)
CALL GIF_DIG4 ;---------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, CEN_DATA ;----------CEN音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_L: CJNE R7,#9,GIF_M
MOV DPTR,#TAB10 ;----------BW顯示 (NO11)
CALL GIF_DIG4 ;---------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, BW_DATA ;----------BW音量分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_M: CJNE R7,#11,GIF_N
MOV DPTR,#TAB15 ;----------DISP顯示 (NO12)
CALL GIF_DIG4 ;---------調(diào)用高4位顯示(G12-G9的顯示)
MOV DPTR,#TAB3
MOV A, DSP_DATA ;----------DSP分解
CALL GIF_DG3A ;----------調(diào)用低3位顯示數(shù)據(jù)(G8-G6的顯示)
JMP RET1
GIF_N: CJNE R7,#15,GIF_O ; (NO13)
MOV DPTR,#TAB22
JNB MUTE_DATA,GIF_N1 ;不是靜音狀態(tài)不顯示靜音, 顯示主音量值
CALL GIF_DIG7
JMP RET1
GIF_N1: MOV SYS_SIGN,#0
JMP RET1
GIF_O: CJNE R7,#13,GIF_P ;顯示5.1ch (NO12)
MOV DPTR,#TAB16
CALL GIF_DIG7
JMP RET1
GIF_P: CJNE R7,#12,GIF_Q ;顯示2.1CH (NO13)
MOV DPTR,#TAB17
CALL GIF_DIG7
JMP RET1
GIF_Q: CJNE R7,#14,GIF_R ; (NO14)
JB LOUND_DATA,GIF_Q1
MOV DPTR,#TAB24
JMP GIF_Q2
GIF_Q1: MOV DPTR,#TAB23
GIF_Q2: CALL GIF_DIG7
JMP RET1
GIF_R: CJNE R7,#20,GIF_S
MOV DPTR,#TAB40
CALL GIF_DIG7
GIF_S: NOP
RET5: JMP RET1
;;--------------------------------------------------------------------------
;;--------------------------------------------------------------------------
GIF_3: CALL CLR_ALL
MOV GIF_SIGN,#1
JMP RET1
RET1: JMP DISP_B
;++++++++++++++++++++++++顯示緩沖區(qū)清空子程序++++++++++++++++++++++++++++
CLR_ALL: MOV R2,#26 ;把顯示緩沖區(qū)共28個單元數(shù)值清0
MOV R1,#22H
DES2: MOV @R1,#0
INC R1
DJNZ R2,DES2
RET
;+++++++++++++++++++++++++G12-G67位字母左移子程序;++++++++++++++++++++++
GIF_LEFT:MOV 39H,37H;-------------------;G11轉(zhuǎn)G12 ;左移一位子程序
MOV 38H,36H;
MOV 37H,35H;-------------------;G10轉(zhuǎn)G11
MOV 36H,34H
MOV 35H,33H;-------------------;G9轉(zhuǎn)G10
MOV 34H,32H
MOV 33H,31H;-------------------;G8轉(zhuǎn)G9
MOV 32H,30H
MOV 31H,2FH;-------------------;G7轉(zhuǎn)G8
MOV 30H,2EH
MOV 2FH,2DH;-------------------;G6轉(zhuǎn)G7
MOV 2EH,2CH
MOV A,GIF_LONG ;;更新最低位數(shù)值
RL A
MOVC A,@A+DPTR
MOV 2CH,A
MOV A,GIF_LONG
RL A
INC A
MOVC A,@A+DPTR
MOV 2DH,A
RET
;+++++++++++++++++++++++++G12-G9高4位字母存入子程序;++++++++++++++++++++++
GIF_DIG4:MOV R1,#8
MOV R2,#0
MOV R0,#39H
DIG4_1: MOV A,R2
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
INC R2
DJNZ R1,DIG4_1
RET
;++++++++++++++++++++++++G6-G8低3位數(shù)值輸入程序A;++++++++++++++++++++++++++++++++
GIF_DG3A:MOV DIV_16,A
CALL DIV10
MOV A,DISP_H ;輸入個位顯示數(shù)值到顯示緩沖區(qū)(G8)
RL A
MOVC A,@A+DPTR
MOV 2FH,A
MOV A,DISP_H
RL A
INC A
MOVC A,@A+DPTR
MOV 2EH,A
MOV A,DISP_L ;輸入個位顯示數(shù)值到顯示緩沖區(qū)(G8)
RL A
MOVC A,@A+DPTR
MOV 2DH,A
MOV A,DISP_L
RL A
INC A
MOVC A,@A+DPTR
MOV 2CH,A
RET
;++++++++++++++++++++++++G6-G8低3位數(shù)值輸入程序A;++++++++++++++++++++++++++++++++
GIF_DG3B:
MOV B,#6
MUL AB
MOV R1,A
MOV R0,#31H
MOV R2,#6
DG3B_1: MOV A,R1
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
INC DPTR
DJNZ R2,DG3B_1
RET
;+++++++++++++++++++++++++G12-G9 7位字母存入子程序;++++++++++++++++++++++
GIF_DIG7:MOV R1,#14 ;處理14個顯示緩沖區(qū),即G6-G12的顯示區(qū)間
MOV R2,#0 ;DPTR指針
MOV R0,#39H
DIG7_1: MOV A,R2
MOVC A,@A+DPTR
MOV @R0,A
DEC R0
INC R2
DJNZ R1,DIG7_1
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中斷部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中斷部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AD模擬值運算;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;T1中斷部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AD_GO : INC TIME1
PUSH ACC
PUSH PSW
AD: MOV R3,AD_SIGN
CJNE R3,#0,AD_1
SETB AD_OUT
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -