📄 tda7440d.lst
字号:
C51 COMPILER V7.50 TDA7440D 01/14/2006 15:30:04 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE TDA7440D
OBJECT MODULE PLACED IN .\HEX\TDA7440D.obj
COMPILER INVOKED BY: F:\Keil\C51\BIN\C51.EXE TDA7440D.C LARGE BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\TDA7440D.lst) OBJECT
-(.\HEX\TDA7440D.obj)
line level source
1
2 //TP67xx Audio Control .
3 #include "78e65.h"
4 #include "ext_globl.h"
5 #include "func_shi.h"
6 #include "config.h"
7 #if _debug
8 #include <stdio.h> // printf() in the file .
9 #endif
10 #include "tda7440d.h"
11
12 #define AT24C16 0xA0
13 #define EEPROM 0xA0
14 //#define TDA7440D 88
15 sbit AMP_MUTE = P3^4;
16 sbit ST_BY = P2^2;
17 //sbit TEST = P0^0;
18 void set_audio_bass_treble(char data low,char data hight);
19 void set_audio_right_left(char data right,char data left);
20 void set_audio_gain(char data value);
21 //void set_audio_switch(char value);
22 void set_audio_volume(char data value);
23
24
25 /**************************************************************
26 * Save Audio Switch to 24c16
27 * value (The range is 0 to 0x03)
28 **************************************************************/
29 void set_audio_switch(char value)
30 {
31 1 char temp;
32 1 temp=value;
33 1 if(value>0x03){
34 2 #if _debug
35 2 printf(" the input channel = %bxis out of range \n",value);
36 2 #endif
37 2 return;
38 2 }
39 1 else{
40 2 shi_sub_write(TDA7440D, 0x00, 0x00, &temp);
41 2 }
42 1 }
43 //================================================================
44 //Init Audio .
45 void init_audio()
46 {
47 1
48 1 //set_audio_mute(1);
49 1
50 1 set_audio_switch(0x00);
51 1 //printf("test dot cs\n");
52 1 DelayXms(0x30);
53 1 set_audio_volume(5);
54 1 set_audio_gain(3); DelayXms(0x30); //INPUT GAIN . 0DB
C51 COMPILER V7.50 TDA7440D 01/14/2006 15:30:04 PAGE 2
55 1 set_audio_right_left(0, 0); DelayXms(0x30); //set right and left 0DB.
56 1 set_audio_bass_treble(4, 8);DelayXms(0x30);
57 1 }
58 //----------------------------------------------------------------
59 void set_audio_mute(char a)
60 {
61 1 char data temp;
62 1 if(a){
63 2 #if 1
64 2 temp=0x38;
65 2 set_audio_right_left(0x78, 0x78);
66 2 shi_sub_write(TDA7440D, 02,0, &temp);
67 2 #endif
68 2
69 2 AMP_MUTE = 1;
70 2 //TEST=1;
71 2
72 2 ST_BY=0;
73 2 }
74 1 else{
75 2 }
76 1
77 1 }
78
79 //-----------------------------------------------------
80
81 // The value is 0--15.
82 //-----------------------------------------------------
83 void set_audio_volume(char data value)
84 {
85 1 char a;
86 1 #if 0
char vol_table[0x10]=
{0x38,0x2E, 0x28,024,0x20,0x1d,0x1a,0x18,
0x15,0x12,0x10,0x0e,0x0a,0x08,0x04,0x01};
#endif
91 1 char vol_table[0x10]=
92 1 {56,40,36,34,33,30,27,24,21,19,16,13,10,7,4,1};
93 1 vol_table[value]=0x0;
94 1 shi_sub_write(TDA7440D,0x02,00,&vol_table[value]);
95 1 DelayXms(0x30);
96 1 a=0;
97 1 shi_sub_write(EEPROM, 06, 0, &a);
98 1 PWMCON1=0X00;
99 1 PWM3=232-value*12;
100 1 PWMCON1=0XA0;
101 1 }
102 //
103 void load_audio_volume()
104 {
105 1 DelayXms(0x30);
106 1 set_audio_volume(volume_sel);
107 1 set_audio_right_left(0, 0);
108 1 PWMCON1=0X00;
109 1 PWM3=232-volume_sel*12;
110 1 PWMCON1=0XA0;
111 1 AMP_MUTE=0;
112 1 //TEST=0;
113 1 }
114 //==========================================================
115
116 void set_audio_gain(char data value)
C51 COMPILER V7.50 TDA7440D 01/14/2006 15:30:04 PAGE 3
117 {
118 1 value&=0x0f;
119 1 shi_sub_write(TDA7440D, 0x01, 00, &value);
120 1 }
121 //-------------------------------------------------------
122 void set_audio_bass_treble(char data low,char data hight)
123 {
124 1 //value&=0x0f;
125 1 char xdata bass_treble_table[0x0f]={0,1,2,3,4,5,6,7,0x0e,0x0d,0x0c,0x0b,0x0a,9,8};
126 1 if((low<0x0f)&&(hight<0x0f)){
127 2 shi_sub_write(TDA7440D, 0x03, 00, &bass_treble_table[low]);
128 2 shi_sub_write(TDA7440D, 0x05, 00, &bass_treble_table[hight]);
129 2 }
130 1 else{
131 2 #if _debug
132 2 printf("the value of bass and treble is out of range,the range is 0-0x0F\n");
133 2 #endif
134 2 shi_sub_write(TDA7440D, 0x03, 00, &bass_treble_table[7]);
135 2 shi_sub_write(TDA7440D, 0x05, 00, &bass_treble_table[7]);
136 2 }
137 1 }
138 //---------------------------------------------------------
139 void set_audio_right_left(char data right,char data left)
140 {
141 1 //value&=0x0f;
142 1 shi_sub_write(TDA7440D, 0x06, 00, &right);
143 1 shi_sub_write(TDA7440D, 0x07, 00, &left);
144 1 }
145 //--------------------------------------------------------
146 // save bass_treble to 24c16; ( 0x80,0x81 )
147 //-------------------------------------------------------
148 /*
149 void save_bass_treble()
150 {
151 char data temp;
152 // shi_sub_read(TDA7440D,0x03,0x00,&temp);
153 shi_sub_write(AT24C16,0x80,0x00,&temp);
154 // shi_sub_read(TDA7440D,0x05,0x00,&temp);
155 shi_sub_write(AT24C16,0x81,0x00,&temp);
156 }
157 //--------------------------------------------------------
158 void load_bass_treble()
159 {
160 char data temp;
161 shi_sub_read(AT24C16,0x80,0x00,&temp);
162 shi_sub_write(TDA7440D,0x03,0x00,&temp);
163 shi_sub_read(AT24C16,0x81,0x00,&temp);
164 shi_sub_write(TDA7440D,0x05,0x00,&temp);
165 }
166 */
167 //--------------------------------------------------------
168 /*
169 void OSDFunVolume()
170 {
171 }
172 //--------------------------------------------------------
173 void OSDFunBass()
174 {
175 }
176 //--------------------------------------------------------
177 void OSDFunTreble()
178 {
C51 COMPILER V7.50 TDA7440D 01/14/2006 15:30:04 PAGE 4
179 }
180 //--------------------------------------------------------
181 void S_ForceUnmute()
182 {
183 }
184 //----------------------------------------------------------
185 void audio_osd_recall()
186 {
187 }
188 */
189 //----------------------------------------------------------
190
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 549 ----
CONSTANT SIZE = 139 ----
XDATA SIZE = ---- 39
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -