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

📄 av.asm

📁 一套全遥控6声道AV机的汇编程序,该程序已经商业化的
💻 ASM
📖 第 1 页 / 共 5 页
字号:
         
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 + -