130 likes | 310 Views
音响产品设计与装配 ( 一 ). 贺贵腾、 黄春平. 模块 5 :音频功率放大器的编程说明. 任务 5.2 、音频功率放大器的控制流程图. 1 、主程序流程. 2 、功能控制程序流程. 3 、音频功率放大器的编说明. 3 . 1 初始化子程序:. MOV ADDR, #88H ; 芯片地址(这里是 88H ) MOV SUB_ADDR,#10H ; 功能码( 10H )
E N D
音响产品设计与装配(一) 贺贵腾、 黄春平
模块5:音频功率放大器的编程说明 任务5.2、音频功率放大器的控制流程图
3、音频功率放大器的编说明 3.1 初始化子程序: MOV ADDR, #88H ;芯片地址(这里是88H) MOV SUB_ADDR,#10H ;功能码(10H) MOV IN_SEL, #03H ;输入通道选择初始化,(IN_SEL)=03H,IN1 MOV IN_GAIN, #0AH ;输入增益初始化,(IN_GAIN)=0AH,20dB MOV VOLUME, #19H ;音量初始化,(VOLUME)=19H,-25dB MOV NOT_A, #00H ;不用 MOV BASS, #14H ;低音控制初始化,(BASS)=0F, 0dB MOV TREBLE, #0FH ;高音控制初始化,(TREBLE)=0F, 0dB MOV ATT_R, #00H ;右声道增益初始化,(ATT_R)=0F, 0dB MOV ATT_L, #00H ;坐声道增益初始化,(ATT_L)=0F, 0dB LCALL I2C_WRITE ;写初始化数据。 MOV STERO, #0 ;立体声-R-L切换,(STERO)=0为立体声 MOV SCON, #00H ;置串行口方式0。 CLR 78H ;输入通道1指示灯亮; SETB 79H ;输入通道2指示灯灭; CLR 7AH ;POWER指示,ON,低电平亮。 SETB 7BH ;操作状态指示,接收到按键信号闪烁。 SETB 7CH ;TDA7449静音指示,音量正常,高电平灭; SETB 7DH ;右声道指示灯灭; SETB 7EH ;左声道指示灯灭; CLR 7FH ;立体声指示,立体声,低电平亮。 LCALL SJFSZCX ;送指示灯数据。
3、音频功率放大器的编说明 3.2 主程序: LOOP: NOP ;开手机撤防状态. JB P1.7, LOOP1 ;键盘。 LCALL D10MS ; JB P1.7, LOOP1 ;键盘。 AJMP AJSMZCX ; LOOP1: JB P1.6, LOOP2 ;键盘。 LCALL D10MS ; JB P1.6, LOOP2 ;键盘。 AJMP AJSMZCX ; LOOP2: JB P1.5, LOOP4 ;键盘。 LCALL D10MS ; JB P1.5, LOOP4 ;键盘。 AJMP AJSMZCX ; LOOP4: AJMP LOOP ;
3、音频功率放大器的编说明 3.3 键盘处理子程序: AJSMZCX: NOP ; SETB TR0 ;启动定时器0 AJSM1: MOV KEY, #0 ; MOV 1EH, #0 ;行号. …… AJSM3: NOP ; MOV A, KEY ; CJNE A, #13, AJSM31 ;如果(A)< 13,CY=1。 AJSM31: JNC AJSM4 ;CY=0,键值≥13。 AJMP AJSMZCX2 ; AJSM4: CLR TR0 ;关定时器0 SETB 7BH ; LCALL SJFSZCX ;送指示灯数据。 AJMP LOOP
3、音频功率放大器的编说明 3.4 键值分支子程序: AJSMZCX2: MOV A, KEY ; MOV B, #3 ; MUL AB ; MOV DPTR, #JZBB ; JMP @A+DPTR ; JZBB: LJMP WUXIAO ;无效键值。 LJMP RESET ;键值1----复位键。 LJMP BAN_INC ;键值2----平衡“+”键。 LJMP BAN_DEC ;键值3----平衡“-”键。 LJMP STERO_R_L ;键值4----立体声-R-L切换键。 LJMP TREB_INC ;键值5----高音“+”键。 LJMP TREB_DEC ;键值6----高音“-”键。 LJMP SEL_CH ;键值7----输入通道选择键。 LJMP BASS_INC ;键值8----低音“+”键。 LJMP BASS_DEC ;键值9----低音“-”键。 LJMP MUTE ;键值10---静音键。 LJMP VOL_INC ;键值11---音量“+”键。 LJMP VOL_DEC ;键值12---音亮“-”键。
3、音频功率放大器的编说明 3.5 功能控制子程序: ;************************************ RESET: NOP ;复位键。 CLR TR0 ;关定时器0 SETB 7BH ; LCALL SJFSZCX ;送指示灯数据。 LJMP CSHZ ; ;************************************ BAN_INC: NOP ;平衡“+”键。 …… BAN_INC8: LCALL I2C_WRITE ;写数据。 LJMP YANSHa ; ;************************************ BAN_DEC: NOP ;平衡“-”键。 …… BAN_DEC8: LCALL I2C_WRITE ;写数据。 LJMP YANSHa ; ;************************************ STERO_R_L:NOP ;立体声-R-L切换键。 …… STERO8: LCALL I2C_WRITE ;写数据。 LCALL SJFSZCX ;送指示灯数据。 LJMP YANSHb ; ;************************************
3、音频功率放大器的编说明 3.5 功能控制子程序: 续 ;************************************ TREB_INC: NOP ;高音“+”键。 …… TREB_IN8: LCALL I2C_WRITE ;写数据。 TREB_IN9: LJMP YANSHa ; ;************************************ TREB_DEC: NOP ;高音“-”键。 …… TREB_DE8: LCALL I2C_WRITE ;写数据。 TREB_DE9: LJMP YANSHa ; ;************************************ SEL_CH: NOP ;输入通道选择键。 …… LJMP YANSHb ; ;************************************ BASS_INC: NOP ;高音“+”键。 …… BASS_IN8: LCALL I2C_WRITE ;写数据。 BASS_IN9: LJMP YANSHa ; ;************************************
3、音频功率放大器的编说明 3.5 功能控制子程序: 续 ;************************************ BASS_DEC: NOP ;低音“-”键。 …… BASS_DE8: LCALL I2C_WRITE ;写数据。 BASS_DE9: LJMP YANSHa ; ;************************************76H MUTE: NOP ;静音键。 …… MUTE1: MOV VOLUME, MUTE_TDA ;为1,按下键以前为0,非静音状态. MUTE2: LCALL I2C_WRITE ;写数据。 LCALL SJFSZCX ;送指示灯数据。 LJMP YANSHb ; ;************************************ VOL_INC: NOP ;音量“+”键。 …… VOL_INC8: LCALL I2C_WRITE ;写数据。 VOL_INC9: LJMP YANSHa ; ;************************************ VOL_DEC: NOP ;音量“-”键。 …… VOL_DEC8: LCALL I2C_WRITE ;写数据。 VOL_DEC9: LJMP YANSHa ; ;************************************
3、音频功率放大器的编说明 3.6、I2C总线写数据子程序: ;************************************ I2C_WRITE:NOP ; I2C总线写数据 …… WRITE3: CLR I2C_DA ; LCALL DELAY4us ; SETB I2C_CK ; LCALL DELAY4us ; SETB I2C_DA ; SETB TR0 ;开定时器0 RET ; ;************************************