?? av.asm
字號:
BI3: CJNE R4,#11H,BI4
MOV DSP_DATA,#0
CALL RM4 ;TR+
MOV SYS_SIGN,#2
BI4: CJNE R4,#1DH,BI5
CALL RM5 ;MVOL+
MOV SYS_SIGN,#3
BI5: CJNE R4,#1CH,BI6
CALL RM6 ;ECHO+
MOV SYS_SIGN,#4
BI6: CJNE R4,#50H,BI7 ;SL+
CALL RM7
MOV SYS_SIGN,#6
BI7: CJNE R4,#46H,BI8 ;SR+
CALL RM8
MOV SYS_SIGN,#7
BI8: CJNE R4,#44H,BI9 ;CEN+
CALL RM9
MOV SYS_SIGN,#8
BI9: CJNE R4,#5EH,BI10 ;BW+
CALL RM10
MOV SYS_SIGN,#9
BI10: CJNE R4,#57H,BI11 ;BASS-
MOV DSP_DATA,#0
CALL RM12
MOV SYS_SIGN,#1
BI11: CJNE R4,#0DH,BI12
MOV DSP_DATA,#0
CALL RM13 ;TR-
MOV SYS_SIGN,#2
BI12: CJNE R4,#16H,BI13
MOV DSP_DATA,#0
CALL RM14 ;MVOL-
MOV SYS_SIGN,#3
BI13: CJNE R4,#17H,BI14
CALL RM15 ;ECHO-
MOV SYS_SIGN,#4
BI14: CJNE R4,#53H,BI15
CALL RM16 ;SL-
MOV SYS_SIGN,#6
BI15: CJNE R4,#03H,BI16
CALL RM17 ;SR-
MOV SYS_SIGN,#7
BI16: CJNE R4,#13H,BI17
CALL RM18 ;CEN-
MOV SYS_SIGN,#8
BI17: CJNE R4,#1FH,BI18
CALL RM19 ;BW-
MOV SYS_SIGN,#9
BI18: CJNE R4,#42H,BI19
MOV INPUT_DATA,#1 ;AUX
MOV SYS_SIGN,#17
BI19: CJNE R4,#43H,BI20
MOV INPUT_DATA,#2 ;VCD
MOV SYS_SIGN,#17
BI20: CJNE R4,#0FH,BI21 ;AC3
MOV INPUT_DATA,#3
MOV CH_DATA,#0 ;AC3狀態下啟動5.1ch
MOV SYS_SIGN,#17
BI21: CJNE R4,#0BH,BI22
MOV DELAY_DATA,#10 ;100MS
SETB M_DELAY2
SETB M_DELAY1
MOV SYS_SIGN,#5
BI22: CJNE R4,#0AH,BI23
MOV DELAY_DATA,#15 ;150MS
CLR M_DELAY1
SETB M_DELAY2
MOV SYS_SIGN,#5
BI23: CJNE R4,#1AH,BI24
MOV DELAY_DATA,#20 ;200MS
CLR M_DELAY2
SETB M_DELAY1
MOV SYS_SIGN,#5
BI24: CJNE R4,#40H,BI25
MOV DELAY_DATA,#25 ;250MS
CLR M_DELAY2
CLR M_DELAY1
MOV SYS_SIGN,#5
BI25: CJNE R4,#0CH,BI26 ;平衡L
MOV SYS_SIGN,#10
MOV A,BAL_DATA
INC A
CJNE A,#9,BI25_0
JMP RET6
BI25_0: MOV BAL_DATA,A
JMP RET6
BI26: CJNE R4,#05H,BI27 ;平衡R
MOV SYS_SIGN,#10
MOV A,BAL_DATA
DEC A
CJNE A,#255,BI26_0
JMP RET6
BI26_0: MOV BAL_DATA,A
JMP RET6
BI27: CJNE R4,#45H,BI28
MOV DSP_DATA,#1 ;DSP1
JMP RET7
BI28: CJNE R4,#8H,BI29
MOV DSP_DATA,#2 ;DSP2
JMP RET7
BI29: CJNE R4,#7H,BI30
MOV DSP_DATA,#3 ;DSP3
JMP RET7
BI30: CJNE R4,#9H,BI31
MOV DSP_DATA,#4 ;DSP4
JMP RET7
BI31: CJNE R4,#47H,BI32
MOV DSP_DATA,#5 ;DSP5
JMP RET7
BI32: CJNE R4,#4CH,BI33
MOV DSP_DATA,#6 ;DSP6
JMP RET7
BI33: CJNE R4,#4AH,BI34
MOV DSP_DATA,#7 ;DSP7
JMP RET7
BI34: CJNE R4,#1BH,BI35
MOV DSP_DATA,#0 ;DSP8
JMP RET7
BI35: CJNE R4,#4DH,BI36 ;MUTE
MOV SYS_SIGN,#15
MOV A,REM_SIGN ;MUTE連發調用無效(REM_SIGN=#3是連發階段)
CJNE A,#3,BI35A
JMP RET6
BI35A: JNB MUTE_DATA,MUTE1
CLR MUTE_DATA
JMP RET6
MUTE1: SETB MUTE_DATA
BI36: CJNE R4,#49H,BI37 ;2.0CH
; MOV CH_DATA,#3H
MOV A,INPUT_DATA
CJNE A,#3,BI36_1 ;在DVD狀態下聲道模式不能切換
MOV SYS_SIGN,#20
JMP BI37
BI36_1: MOV SYS_SIGN,#12
MOV CH_DATA,#3H
BI37: CJNE R4,#48H,BI38 ;5.1CH
MOV CH_DATA,#0
MOV SYS_SIGN,#13
BI38: CJNE R4,#5FH,BI39 ;LOUND
MOV SYS_SIGN,#14
MOV A,REM_SIGN ;LOUND連發調用無效(REM_SIGN=#3是連發階段)
CJNE A,#3,BI38A
JMP RET6
BI38A: JNB LOUND_DATA,LOU1
CLR LOUND_DATA
JMP RET6
LOU1: SETB LOUND_DATA
BI39: CJNE R4,#4FH,BI40
MOV A,REM_SIGN ;DISP_MODE連發調用無效(REM_SIGN=#3是連發階段)
CJNE A,#3,BI39A
JMP RET6
BI39A: MOV A,DP_MODE ;各種顯示模式的切換
CJNE A,#0,BI39B
MOV DP_MODE,#1
BI39B: CJNE A,#1,BI39C
MOV DP_MODE,#2
BI39C: CJNE A,#2,BI39D
MOV DP_MODE,#3
BI39D: CJNE A,#3,BI39F
MOV DP_MODE,#4
BI39F: CJNE A,#4,BI39G
MOV DP_MODE,#5
BI39G: CJNE A,#5,BI39E
MOV DP_MODE,#0
BI39E: MOV DP_SAVE,DP_MODE ; 把DP_MODE模式保存起來
JMP RET6
BI40: CJNE R4,#04H,BI40B ;POWER
MOV A,REM_SIGN ;POWER連發調用無效(REM_SIGN=#3是連發階段)
CJNE A,#3,BI40A
JMP RET6
BI40A: JNB POWER,destine ;讀預設,開機
CLR POWER ;
SETB MUTE_DATA ;收到關機指令后開靜音
JMP RET6
BI40B: JMP BI41
DESTINE: ;*******調用預設值********
SETB POWER ;啟動電源標記 (只有但POWER=1,才可令MUTE=0關閉靜音和關閉顯示,關閉顯示可以清空顯示緩沖)
MOV GIF_SIGN,#1 ;初始化動畫進程
MOV GIF_TIME1,#0 ;動畫跑字速度間隔時間清0
MOV GIF_LONG,#0 ;動畫字幕長度清0
MOV AD_SIM1,#0
MOV AD_SIM2,#0
MOV AD_SIM3,#0
MOV AD_SIM4,#0
MOV AD_TEM,#0 ;電平臨時數據
MOV AD_SIGN,#0 ;AD轉換進程標記(=0,C放電 =1,測量數據 =2,測量結束)
MOV AD_TIME,#0
MOV DP_MODE,#0 ;電平顯示模式
MOV DP_NUM,#0 ;自動電平的當前進度格數
MOV DP_SAVE,#0
CLR STA_DATA ;STA_DATA=0,表示第一次開機 STA_DATA=0,表示開機初始化結束
CLR AUTO_SIGN ;AUTO_SIGN=0,頻譜自走 AUTO_SIGN=1,顯示AD
MOV AUTO_NUM,#0
MOV KEY_DELAY,#129 ;按鍵連發執行間隔時間
MOV TIME1,#0 ;總時間刷新
MOV INPUT_DATA,#1 ;預置#1,CD/VCD選通 ;(CD/VCD=1,TUNER=2,AC3=3)
MOV BASS_DATA,#8 ;
MOV TR_DATA,#8
MOV MAIN_DATA,#0
MOV BAL_DATA,#4 ;平衡設置
MOV DSP_DATA,#0 ;預置為DSP關閉
MOV CH_DATA,#0 ;預置為5.1CH
MOV MVOL_DATA,#9
MOV ECHO_DATA,#15
MOV DELAY_DATA,#25 ; 卡拉OK延時時間預設為250mS
CLR M_DELAY1
CLR M_DELAY2
MOV SURL_DATA,#0
MOV SURR_DATA,#0
MOV CEN_DATA,#0
MOV BW_DATA,#0
CLR MUTE_DATA ;關靜音
CLR LOUND_DATA ;關等響
MOV SYS_SIGN,#0 ;開機后顯示主音量
MOV DISP_BUFFER,#22H ;顯示緩沖區首址復位
MOV DISP_INDEX,#0H ;片內地址指針復位
MOV R2,#26 ;把顯示緩沖區共28個單元數值清0
MOV R1,#22H
DES1: MOV @R1,#0
INC R1
DJNZ R2,DES1
JNB BOOT_STR,BI40C ;!!!!!!!!!!1檢測是第一次開機讀預置還是遙控讀預置,判斷返回地址
BI41: JMP RET6
BI40C: SETB BOOT_STR
RET
RET7: MOV SYS_SIGN,#11 ;設置對應顯示標記
RET6: ; 每調用一次BIJIAO2,則調用一次芯片數據輸入程序
;;-----------------------------把數據輸入到PT2313/M62429芯片中------------------------------------------
DATA_IN: CLR TR1 ;PT2313數據寫入
MAN_INPUT:MOV A,INPUT_DATA ;(CD/VCD=1,TUNER=2,AC3=3)
MOV DPTR,#TABLE9
MOVC A,@A+DPTR
JNB LOUND_DATA,MM1 ;ACC.2對應PT2313的LOUND位
CLR ACC.2
JMP MM2
MM1: SETB ACC.2
MM2: MOV MTD1,A ;存入INPUT,增益,等響度關
CALL OUT_DA
MAN_VOL1 :MOV A,BAL_DATA
MOV DPTR,#TABLE10
MOVC A,@A+DPTR
ADD A,#80H
MOV MTD1,A ;存入左前聲道
CALL OUT_DA
MAN_VOL2 :MOV A,BAL_DATA
MOV DPTR,#TABLE10A
MOVC A,@A+DPTR
ADD A,#0A0H
MOV MTD1,A ;存入右前聲道
CALL OUT_DA
MAN_VOL3 :JNB MUTE_DATA,MV3_1 ;靜音判斷
MOV A,#0
JMP MV3_2
MV3_1: MOV A,MAIN_DATA
MV3_2: MOV DPTR,#TABLE11
MOVC A,@A+DPTR
MOV MTD1,A ;存入主聲道
CALL OUT_DA
MAN_BASS :MOV A,DSP_DATA ;根據DSP_DATA內保存的數據判斷是輸入DSP數據或是手動調節數據
JZ BASS1 ;DSP_DATA模式=0說明DSP關閉,跳到BASS2
MOV A,DSP_DATA ;DSP模式開啟動,輸入DSP模式數據
MOV DPTR,#TABLE15
JMP BASS3
BASS1: MOV A,BASS_DATA
BASS2: MOV DPTR,#TABLE12
BASS3: MOVC A,@A+DPTR
ADD A,#60H
MOV MTD1,A ;存入BASS
CALL OUT_DA
MAN_TR : MOV A,DSP_DATA
JZ TR_1 ;根據DSP_DATA內保存的數據判斷是輸入DSP數據或是手動調節數據
MOV A,DSP_DATA
MOV DPTR,#TABLE16
JMP TR_3
TR_1: MOV A,TR_DATA
TR_2: MOV DPTR,#TABLE12
TR_3: MOVC A,@A+DPTR
ADD A,#70H
MOV MTD1,A ;存入TREBLE
CALL OUT_DA
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;M62429;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLR C ; 選通通道1(SURL)
CALL ML_1A
JB MUTE_DATA,M_SL0 ; 判斷SL是否靜音
MOV A,CH_DATA
CJNE A,#0,M_SL0 ;除非CH_DATA=0(5.1CH),否則SL靜音
JMP M_SL1
M_SL0: MOV A,#0
JMP M_SL2
M_SL1: MOV A,SURL_DATA ;
M_SL2: MOV DPTR,#TABLE13
MOVC A,@A+DPTR
MOV R6,#8
CALL ML_1B ; 輸入音量數據
CALL ML_1C ; 輸入結尾符號(2位1)
;-------
SETB C ; 選通通道2(SURR)
CALL ML_1A
JB MUTE_DATA,M_SR0 ; 判斷SR是否靜音
MOV A,CH_DATA
CJNE A,#0,M_SR0 ; 除非CH_DATA=0(5.1CH),否則SR靜音
JMP M_SR1
M_SR0: MOV A,#0
JMP M_SR2
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -