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

📄 av-p06a.asm

📁 型号: AV-P06A 5.1CH功率放大器 89C52+12M+PT2314+PT2315+2*M62429+PT6311+CS16210+6221+VFDGDT1313A,包含VFD真值表手册资料
💻 ASM
📖 第 1 页 / 共 5 页
字号:
BI39D:   CJNE   A,#3,BI39e
         MOV    DP_MODE,#0



BI39E:   MOV    DP_SAVE,DP_MODE   ; 把DP_MODE模式保存起来  
         JMP    RET6        


BI40:   JMP    BI41
DESTINE:                            ;*******调用预设值********             
         setb  power_flag
         setb  main_mute                
         MOV   GIF_SIGN,#1         ;初始化动画进程 
         MOV   GIF_TIME,#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_sim5,#0
         mov  ad_sim6,#0
 
         MOV   AD_TEM,#0           ;电平临时数据
         MOV   AD_SIGN,#0          ;AD转换进程标记(=0,C放电  =1,测量数据   =2,测量结束)
         MOV   AD_TIME1,#0
          
         MOV   DP_MODE,#0          ;电平显示模式
         MOV   DP_NUM,#0           ;自动电平的当前进度格数
         MOV   DP_SAVE,#0              
         CLR   START_FLAG            ;STA_DATA=0,表示第一次开机  STA_DATA=0,表示开机初始化结束
         CLR   AUTO_FLAG           ;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   TREB_DATA,#8         
         MOV   MAIN_DATA,#0 
         MOV   BALN_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

         MOV   SURL_DATA,#0      
         MOV   SURR_DATA,#0
         MOV   CEN_DATA,#0    
         MOV   BW_DATA,#0
         CLR   MUTE_FLAG          ;关静音
         CLR   LOUND_FLAG          ;关等响 
         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_START,BI40C           ;!!!!!!!!!!1检测是第一次开机读预置还是遥控读预置,判断返回地址
BI41:    JMP   RET6  
BI40C:   SETB  BOOT_START
         RET
RET7:    MOV    SYS_SIGN,#11       ;设置对应显示标记
         
RET6:   ; 每调用一次BIJIAO2,则调用一次芯片数据输入程序

;/////////////////////////把数据输入到PT2314/PT2315/M62429芯片中//////////////////////////
 
DATA_IN:  CLR    TR1 
             
;PT2314数据写入
MAN_INPUT:MOV    A,INPUT_DATA     ;(CD/VCD=1,TUNER=2,AC3=3)

          MOV    DPTR,#TABLE9
          MOVC   A,@A+DPTR
          JNB    LOUND_FLAG,MM1      ;ACC.2对应PT2313的LOUND位
          CLR    ACC.2
          JMP    MM2
MM1:      SETB   ACC.2

MM2:      MOV    MTD1,A               ;存入INPUT,增益,等响度关
          CALL   OUT_DA_A

MAN_VOL1 :MOV    A,BALN_DATA          
          MOV    DPTR,#TAB_2314_L
          MOVC   A,@A+DPTR
          ADD    A,#0c0H
          MOV    MTD1,A               ;存入左前声道
          CALL   OUT_DA_A

MAN_VOL2 :MOV    A,BALN_DATA          
          MOV    DPTR,#TAB_2314_R
          MOVC   A,@A+DPTR
          ADD    A,#0e0H
          MOV    MTD1,A               ;存入右前声道
          CALL   OUT_DA_A

MAN_VOL3 :JNB    MUTE_FLAG,MV3_1      ;静音判断
          MOV    A,#0  
          JMP    MV3_2  
MV3_1:    MOV    A,MAIN_DATA          
MV3_2:    MOV    DPTR,#TAB_2314_MVOL
          MOVC   A,@A+DPTR
          MOV    MTD1,A                ;存入主声道
          CALL   OUT_DA_A

MAN_BASS :MOV    A,DSP_DATA           ;根据DSP_DATA内保存的数据判断是输入DSP数据或是手动调节数据
          JZ     BASS1                ;DSP_DATA模式=0说明DSP关闭,跳到BASS2
          MOV    A,DSP_DATA           ;DSP模式开启动,输入DSP模式数据
          MOV    DPTR,#TAB_DSP_1
          JMP    BASS3  
BASS1:    MOV    A,BASS_DATA                    
BASS2:    MOV    DPTR,#TAB_2314_TB
BASS3:    MOVC   A,@A+DPTR
          ADD    A,#60H
          MOV    MTD1,A                ;存入BASS
          CALL   OUT_DA_A

MAN_TR :  MOV    A,DSP_DATA
          JZ     TR_1                 ;根据DSP_DATA内保存的数据判断是输入DSP数据或是手动调节数据
          MOV    A,DSP_DATA
          MOV    DPTR,#TAB_DSP_2
          JMP    TR_3    
TR_1:     MOV    A,TREB_DATA 
                            
TR_2:     MOV    DPTR,#TAB_2314_TB
TR_3:     MOVC   A,@A+DPTR
          ADD    A,#70H
          MOV    MTD1,A                ;存入TREBLE
          CALL   OUT_DA_A
;-----------------------------------------------------------------------------------------          
;PT2315数据写入  
          MOV    A,MVOL_DATA
          MOV    A,#20
          SUBB   A,MVOL_DATA
          ADD    A,#80H
          MOV    MTD6,A
          CALL   OUT_DA_B
          
          MOV    A,ECHO_DATA
          MOV    A,#20
          SUBB   A,ECHO_DATA
          ADD    A,#0a0H
          MOV    MTD6,A
          CALL   OUT_DA_B
  
;////////////////////////////////////////M62429///////////////////////////////////////////
          CLR   C                    ;  选通通道1(SURL)
          CALL  ML_1A

          JB     MUTE_FLAG,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,#TAB_62429_VOL
          MOVC  A,@A+DPTR
          MOV   R6,#8
          CALL  ML_1B                ; 输入音量数据
          CALL  ML_1C                ; 输入结尾符号(2位1)

          SETB  C                    ; 选通通道2(SURR)
          CALL  ML_1A
          
          JB     MUTE_FLAG,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
M_SR1:    MOV   A,SURR_DATA
M_SR2:    MOV   DPTR,#TAB_62429_VOL
          MOVC  A,@A+DPTR
          MOV   R6,#8
          CALL  ML_1B
          CALL  ML_1C
;;----------------------------------------------------------------------------------------
          CLR   C                   ;  选通通道1(BW)
          CALL  ML_2A

          JB    MUTE_FLAG,M_BW0     ;  判断BW是否静音
          MOV   A,CH_DATA
          CJNE  A,#3,M_BW1          ;  除非CH_DATA=3(2CH),否则重低音开启
        
M_BW0:    MOV    A,#0
          JMP    M_BW2

M_BW1:    MOV   A,BW_DATA           ;  
M_BW2:    MOV   DPTR,#TAB_62429_VOL
          MOVC  A,@A+DPTR
          MOV   R6,#8
          CALL  ML_2B
          CALL  ML_2C              ;  输入结尾符号(2位1)

          SETB  C                  ;  选通通道2(CEN)
          CALL  ML_2A     

          JB    MUTE_FLAG,M_CEN0   ;  判断CEN是否静音
          MOV   A,CH_DATA
          CJNE  A,#3,CEN_A         ; 2CH则中置静音
          JMP   M_CEN0
CEN_A:    CJNE  A,#2,M_CEN1        ; 2.1CH则中置静音

M_CEN0:   MOV   A,#0
          JMP   M_CEN2

M_CEN1:   MOV   A,CEN_DATA
M_CEN2:   MOV   DPTR,#TAB_62429_VOL
          MOVC  A,@A+DPTR
          MOV   R6,#8
          CALL  ML_2B
          CALL  ML_2C

          SETB  TR1
          MOV   A,REM_SIGN
          JZ    XX1
          JMP    BI_RET   
XX1:      RET 
;/////////////////////////////////////////////////////////////////////////////////////////
ML_1A:     CLR   M62429_DAT
           CLR   M62429_CK1                   
           NOP
           NOP
           MOV   M62429_DAT ,C
           SETB  M62429_CK1                     ;CK上升沿串入数据
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK1
           RET
  
ML_1B:     RLC   A                             ;串入音量数据
           MOV   M62429_DAT,C
           SETB  M62429_CK1
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK1
           NOP
           NOP
           DJNZ  R6,ML_1B
           RET

ML_1C:     SETB  C                            
           NOP
           NOP
           MOV   M62429_DAT,C
           SETB  M62429_CK1
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK1
           NOP
           NOP
           MOV   M62429_DAT,C                              
           SETB  M62429_CK1
           NOP
           NOP
           NOP
           NOP
           CLR   M62429_CK1
           NOP
           NOP
           RET
;----------------
ML_2A:     CLR   M62429_DAT
           CLR   M62429_CK2                   
           NOP
           NOP
           MOV   M62429_DAT ,C
           SETB  M62429_CK2                   ;CK上升沿串入数据
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK2
           RET 
ML_2B:     RLC   A                            ;串入音量数据
           MOV   M62429_DAT,C
           SETB  M62429_CK2
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK2
           NOP
           NOP
           DJNZ  R6,ML_2B
           RET
ML_2C:     SETB  C                             ;结尾             
           NOP
           NOP
           MOV   M62429_DAT,C
           SETB  M62429_CK2
           NOP
           NOP
           CLR   M62429_DAT
           CLR   M62429_CK2
           NOP
           NOP
           MOV   M62429_DAT,C                               
           SETB  M62429_CK2
           NOP
           NOP
           NOP
           NOP
           CLR   M62429_CK2
           NOP
           NOP
           RET

           
;/////////////////////////////////////////I2C协议/////////////////////////////////////////
;PT2314发送n个字节
OUT_DA_A:   LCALL   START
            MOV  A,#88H                 ;送PT2314地址控制字节
            LCALL  SEND
            LCALL  ACKI
            JC  QUIT_1_A
             
            MOV  A,MTD1
            CALL SEND
            CALL  ACKI
            JC  QUIT_1_A          
            CALL  STOP  
            RET

QUIT_1_A:   CALL  STOP
            LJMP  OUT_DA_A              ;重发
;-----------------------------------------------------------------------------------------          
;PT2315发送n个字节
OUT_DA_B:   LCALL   START
            MOV  A,#80H                 ;送PT2315地址控制字节
            LCALL  SEND
            LCALL  ACKI
            JC  QUIT_1_B
             
            MOV  A,MTD6
            CALL SEND
            CALL  ACKI
            JC  QUIT_1_B          
            CALL  STOP  
            RET

QUIT_1_B:   CALL  STOP
            LJMP  OUT_DA_B              ;重发    

;-----------------------------------------------------------------------------------------
; 启动子程序
START:    CLR    PT2314_5_CLK      ; CLK在高电平期间PT2314_5_DATA由高到低变化
          SETB   PT2314_5_DATA
          NOP
          SETB   PT2314_5_CLK
          NOP
          CLR    PT2314_5_DATA
          NOP
          CLR    PT2314_5_CLK
          RET
;停止子程序
STOP:     CLR    PT2314_5_CLK
          CLR    PT2314_5_DATA
          NOP
          NOP
          SETB   PT2314_5_CLK
          NOP
          NOP
          SETB   PT2314_5_DATA
          NOP
          NOP
          CLR    PT2314_5_CLK
          RET

;接收一个应答位
ACKI:     SETB   PT2314_5_CLK
          NOP
          NOP
          MOV    C,PT2314_5_DATA
          CLR    PT2314_5_CLK
          RET
;发送一个字节子程序
SEND:     MOV    R0,#08H      ;要发送的数据字节为8
SEND0:    RLC    A
          MOV    PT2314_5_DATA,C
          NOP
          NOP
          SETB   PT2314_5_CLK
          NOP
          NOP
          CLR    PT2314_5_CLK
          NOP
          NOP
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -