音量控制M62446的驅動C程序
音量控制M62446 m62446 pdf
//-------------------------------------------------------------------------
// M62446 drving routines, VER 1.0
//
// COPYRIGHT (C) 2000, Enbia Technology Inc.
// Target: 8031
// AUTHOR: STEVEN LUO
//
// Revision History:
// 2001/1/5 - Original Version
//
//-------------------------------------------------------------------------
#include
#include
#include
#include
extern BOOL PIN_M62446_LATCH;
extern BOOL PIN_M62446_DATA;
extern BOOL PIN_M62446_CLK;
static idata WORD shadow_word00=0;
static idata WORD shadow_word01=0;
static idata WORD shadow_word10=0;
static idata WORD shadow_word11=0; // for storing the control word status //
static BOOL bM62446Muted; // Set when 62446 is muted
static void Write_M62446_Word(WORD myword);
//-------------------------------------------------------------------------
// Name: Volume_Validate
// Description:
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
static BYTE Volume_Validate(char vol){
if(vol<0)vol=0; // negative, should be 0
else if(vol >80) vol=80; // >80, set to 80
return 80 - vol; // Down to Up
}
//-------------------------------------------------------------------------
// Name: Mute_M62446
// Description:
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Mute_M62446(void){
Write_M62446_Word(0xa141); // B1010000 1010000 01, B10100001_01000001
Write_M62446_Word(0xa142);
Write_M62446_Word(0xa143);
bM62446Muted = 1;
}
//-------------------------------------------------------------------------
// Name: UnMute_M62446
// Description:
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void UnMute_M62446(void){
shadow_word01&=0xfffc; shadow_word01|=0x01; Write_M62446_Word(shadow_word01);
shadow_word10&=0xfffc; shadow_word10|=0x02; Write_M62446_Word(shadow_word10);
shadow_word11&=0xfffc; shadow_word11|=0x03; Write_M62446_Word(shadow_word11);
bM62446Muted = 0;
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Left
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Left(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=9;
shadow_word01&=0x01ff;
shadow_word01|=temp;
// DE=0;DF=1;
shadow_word01&=0xfffc; shadow_word01|=0x01;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word01);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Right
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Right(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=2;
shadow_word01&=0xfe03;
shadow_word01|=temp;
// DE=0;DF=1;
shadow_word01&=0xfffc; shadow_word01|=0x01;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word01);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Center
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Center(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=9;
shadow_word10&=0x01ff;
shadow_word10|=temp;
// DE=1;DF=0;
shadow_word10&=0xfffc; shadow_word10|=0x02;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word10);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_SubWoofer
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_SubWoofer(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=2;
shadow_word10&=0xfe03;
shadow_word10|=temp;
// DE=1;DF=0;
shadow_word10&=0xfffc; shadow_word10|=0x02;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word10);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_SurLeft
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_SurLeft(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=9;
shadow_word11&=0x01ff;
shadow_word11|=temp;
// DE=1;DF=1;
shadow_word11&=0xfffc; shadow_word11|=0x03;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word11);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_SurRight
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_SurRight(char vol){
WORD temp;
temp=Volume_Validate(vol);
temp<<=2;
shadow_word11&=0xfe03;
shadow_word11|=temp;
// DE=1;DF=1;
shadow_word11&=0xfffc; shadow_word11|=0x03;
if (bM62446Muted) return;
Write_M62446_Word(shadow_word11);
}
static BYTE code Treble_Bass_TAB[11]={
0x0e, // 0, -10db
0x0c, // 1, -8db
0x0b, // 2, -6db
0x0a, // 3, -4db
0x09, // 4, -2db
0x00, // 5, 0db
0x01, // 6, +2db
0x02, // 7, +4db
0x03, // 8, +6db
0x04, // 9, +8db
0x06 // 10, +10db
};
//-------------------------------------------------------------------------
// Name: Write_M62446_Treble
// Description: This function Write 2 bytes to M62446
// Arguments: 0-20,
// 0: -10db
// 10: 0db
// 20 +10db
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Treble(BYTE Treble){
WORD temp;
Treble=Treble_Bass_TAB[Treble];
temp=Treble;
temp<<=12;
shadow_word00&=0x0fff;
shadow_word00|=temp;
// DE=0;DF=0;
shadow_word00&=0xfffc;
Write_M62446_Word(shadow_word00);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Bass
// Description: This function Write 2 bytes to M62446
// Arguments: 0-20,
// 0: -10db
// 10: 0db
// 20 +10db
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Bass(BYTE Bass){
WORD temp;
Bass=Treble_Bass_TAB[Bass];
temp=Bass;
temp<<=4;
shadow_word00&=0xff0f;
shadow_word00|=temp;
// DE=0;DF=0;
shadow_word00&=0xfffc;
Write_M62446_Word(shadow_word00);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Bypass
// Description: This function Write 2 bytes to M62446
// Arguments: 1, bypass on, 0: off
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Bypass(BOOL bOnOff){
if (bOnOff) shadow_word00 |= 0x0004; // On
else shadow_word00 &= 0xfffb; // off
// DE=0;DF=0;
shadow_word00 &= 0xfffc;
Write_M62446_Word(shadow_word00);
}
//-------------------------------------------------------------------------
// Name: Write_M62446_Output
// Description: This function Write 2 bytes to M62446
// Arguments: port=1-4, BYTE=1 or 0
// Return value: none
//-------------------------------------------------------------------------
void Write_M62446_Output(BYTE port, BOOL bOnoff){
WORD temp, mask=1;
temp=bOnoff;
temp <<= (12-port);
mask <<= (12-port);
shadow_word00&=~mask;
shadow_word00|=temp;
// DE=0;DF=0;
shadow_word00&=0xfffc;
Write_M62446_Word(shadow_word00);
}
#define DELAY() {_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_();
_nop_(); _nop_();}
//-------------------------------------------------------------------------
// Name: Write_M62446_Word
// Description: This function Write 2 bytes to M62446
// Arguments:
// Return value: none
//-------------------------------------------------------------------------
static void Write_M62446_Word(WORD myword){
register BYTE i;
PIN_M62446_LATCH=0;
for (i=16;i>0;--i){
if(myword & 0x8000) PIN_M62446_DATA=1; // MSB first
else PIN_M62446_DATA=0;
myword<<=1; // Rotate Right
DELAY();
PIN_M62446_CLK=1;
DELAY();
PIN_M62446_CLK=0;
}
DELAY();
PIN_M62446_LATCH=1;
}
音量控制M62446的驅動C程序
- 音量控制(17626)
- M62(5736)
相關推薦
ht1621 c驅動程序
}}//-------------------------------------------------------------------------// M62446 drving routines, VER 1.0//// COPYRIGHT (C
2008-07-07 17:38:52
電子數(shù)字音量控制電路圖解析
當今的許多高保真放大器都具有“咔嗒聲”數(shù)字音量控制電路,但這很少是基于晶圓開關的真正步進衰減器。在幾乎所有情況下,這種昂貴的系統(tǒng)都基于普通電位計,其主軸配有機械結構以模擬步進運動。
2023-05-13 16:36:271377
基于MAX5486的雙通道數(shù)字音量控制電路
圖中顯示了基于IC MAX5486的雙通道數(shù)字音量控制電路。MAX5486為40K雙通道數(shù)字音量/平衡控制器,具有按鈕接口。該 IC 具有內置偏置電壓源,無需外部電路即可用于相同目的,從而減少了外部
2023-04-02 14:40:28532
如何使用PT2258構建數(shù)字音量控制器
電位器不控制信號的增益,但它形成了一個分壓器,這就是輸入信號衰減的原因。因此,在這個項目中,我將向您展示如何使用 IC PT2258 構建您的數(shù)字音量控制器,并將其與 Arduino 接口以控制放大器電路的音量。
2022-08-11 17:12:364480
分享一個不錯的立體聲數(shù)字音量控制的電路圖
這是立體聲數(shù)字音量控制的電路圖。該電路可用于升級立體聲放大器電路中的手動音量管理。在這個特定的電路中,按下開關 S1 控制兩個通道的正向(音量增強)操作,而相同的開關 S2 控制兩個通道的反向(音量減小)操作。
2022-06-29 16:35:544937
雙聲道電子音量控制器M62429中文手冊
M62429是一個雙聲道電子音量控制器,它由雙線串行數(shù)據控制。內置參考源電路組成電子音量控制器,使用時需要較少的外圍電路。
其主要特點如下:
內置參考源電路
串行數(shù)據控制
音量0-83dB
2022-04-08 11:04:3970
雙聲道電子音量控制器M62429L中文手冊
M62429L是一個雙聲道電子音量控制器,它由雙線串行數(shù)據控制。內置參考源電路組成電子音量控制器,使用時需要較少的外圍電路。
其主要特點如下:
內置參考源電路
串行數(shù)據控制
音量0-83dB
2022-04-08 11:02:5640
線性電位計作為音量控制器
作者: TI專家Bruce Trump
翻譯: TI信號鏈工程師 Rickey Xiong (熊堯)
?
你曾用過線性電位計作為音量控制器嗎?如果你使用過,你可能會發(fā)現(xiàn),音量跳變得非??臁H绻?/div>
2021-11-22 15:42:202101
CN0226 帶音量控制的便攜式音頻放大器
圖1所示電路是一個完整的低成本、低功耗、單聲道音頻放大器,具有音量控制、降低毛刺功能和3 W D類輸出驅動器。音量通過一個連接到64位數(shù)字電位器的簡單按鈕接口來手動連接。自動存儲功能會保留最后的音量
2021-06-01 19:36:242
AN-1209:使用AD5292數(shù)字電位器降低毛刺的對數(shù)音頻音量控制
AN-1209:使用AD5292數(shù)字電位器降低毛刺的對數(shù)音頻音量控制
2021-05-20 14:53:1813
AD7112:具有抗對數(shù)傳輸功能的雙CMOS乘法DAC,用于音量控制應用產品手冊
AD7112:具有抗對數(shù)傳輸功能的雙CMOS乘法DAC,用于音量控制應用產品手冊
2021-05-10 10:54:175
音量控制器如何設置_音量控制器的作用
音量控制器,顧名思義就是說它是一種控制音量的輸出的一種設備,主要是應用在一些聲音的處理和對音頻的音量控制。它的使用就是把會傷害到聽力的那些音頻轉換成為一些信號,再通過控制器中含有的芯片將其轉換成為適合人們聽力的音頻。
2020-05-29 09:45:385751
微軟Windows 10的全新內置音量控制
追溯到2018年,有爆料表明Windows 10內置音量控制可能會在將來的版本中進行重大改進。由于某些原因,微軟決定推遲Windows 10的新音量控制,但該功能似乎會在今年晚些時候卷土重來。
2020-03-09 14:21:311913
D8199立體聲放大和直流音量控制電路的數(shù)據手冊免費下載
D8199 是一塊立體聲放大和直流音量控制電路。廣泛應用于音頻放大器遠程控制、電子游戲機和CATV(光纖電視)音頻的控制。 采用 DIP8 的封裝形式。
2019-08-12 08:00:000
TDA7448音量控制器的特性及應用
TDA7448是一種6聲道音量控制器,用于多聲道音頻系統(tǒng)的高質量應用。由于采用了雙極/CMOS技術,因此可以獲得低失真、低噪聲和直流步進。
2019-06-17 15:22:494085
基于NS4298帶DC音量控制功能的IC應用設計參考
NS4298是一款三選一輸入,帶DC音量控制功能,超低EMI、無需濾波器、3W雙聲道AB/D類音頻功放IC。另外,當耳機插頭接入插孔時,音頻功率放大器便以單端工作模式驅動立體聲耳機。NS4298有三組輸入通道,通過控制腳靈活選擇其中一組。
2019-02-06 19:56:003393
配樂音量控制器(LF356)
關鍵詞:LF356 , 音量控制器 如圖所示為配樂音量控制電路。該電路適用于卡拉OK音響設備,可用于話筒自動控制配樂音量,能弱化基底樂音。圖中場效應管T1(2N3819)作為可變電阻使用,R1和T1
2018-12-21 00:30:01957
CMOS高保真音量控制專用集成電路
關鍵詞:CMOS , 高保真 , 集成電路 , 音量 TC9153是東芝公司推出的CMOS高保真音量控制專用集成電路。該電路的特點是功耗低,電流約為1~3mA。失真小,THD≤0.005%。音量衰減
2018-11-24 07:16:01415
使用TC9153電子音量控制電路圖,TC9153 APPLICATION
使用TC9153電子音量控制電路圖,TC9153 APPLICATION
關鍵字:TC9153,音調電路圖
找了好久終于找到這款電子音量控制
2018-09-20 19:03:152961
使用衰減消除技術的電子音量控制器應用設計
你曾用過線性電位計作為音量控制器嗎?如果你使用過,你可能會發(fā)現(xiàn),音量跳變得非??臁H绻雽?b style="color: red">音量調整得相當小,你可能需要safe-cracker般的靈敏觸覺(safe-cracker能夠靠自己靈敏
2018-03-26 08:51:036132
電源音量控制的實現(xiàn)
本文檔給出了使用電源體積的應用程序的設計指南控制(PSVC)。電源音量控制增加系統(tǒng)性能: 體積可減少無音頻的分辨率損失,在補償?shù)姆秶鲃印?當PVDD電源電壓降低,輸出噪聲電壓降低好。噪聲電壓和最大
2017-05-24 15:51:5611
用旋轉電位器驅動半導體音量控制器
目前,在音量控制器的電路設計中,廣泛應用的是用數(shù)字電位器代替旋轉音量控制器。為模仿控制過程,大多數(shù)電路中采用上/下按鈕、開關或微處理器接口。 由于人們更傾向于使用熟
2011-06-23 16:56:41134
按鈕接口型電子音量控制器NJU7394
新日本無線就此突破解決了這一大課題,成功開發(fā)出來了按鈕接口型電子音量控制器 NJU7394 ,使底座音箱能夠以簡單、方便、最少組件※的形式構成。
2011-01-29 09:52:431874
EUA6019含有先進DC音量控制的3W立體聲音頻放大器
概述
EUA6019是能在信道中連續(xù)輸送3W的RMS功率至3Ω負載的立體聲音頻放大器。先進的DC音量控制既可減少外部組件,又與BTL(揚聲器)音量控制和SE(耳機)音量控制兼容。Fade控
2010-12-26 22:48:43132
單按鈕音量控制器電路
單按鈕音量控制器電路見圖6。VMOS管VT1 作為一個可變電阻并接在音響裝置的音量電位器輸出端與地之間。VT1 的D 極和S 極之間的電阻隨VGS 成反比變化,因此控制VGS 就
2010-06-09 07:55:553886
LX9153中文資料 (電子音量控制電路)
LX9153 是為音頻設備等音量控制電子化而設計的一塊專用集成電路。該電路采用CMOS 工藝制作,封裝形式為塑封16 引線雙列直插式。2、特點★較寬的工作電壓范圍(Vcc=4.5~12V
2010-05-02 18:29:18295
SC9153中文資料pdf (電子音量控制電路)
SC9153是為音頻設備等音量控制電子化而設計的一塊專用集成電路。該電路采用CMOS工藝制作,封裝形式為塑封16引線雙列直插式。主要特點:★較寬的工作電壓范圍(Vcc=4.5~12V)
2010-02-25 09:05:19285
新日本無線開發(fā)出按鍵式電子音量控制器
新日本無線開發(fā)出按鍵式電子音量控制器
新日本無線(NJR)新推出內置eala Stereo Expander功能的按鍵式接口電子音量控制器NJU7392,該產品最適合用于揚聲器間距狹窄的可攜
2010-01-20 08:43:15816
4W帶直流音量控制音頻功率放大電路
4.2W帶直流音量控制音頻功率放大電路:YD1013B 是帶直流音量控制的4W 音頻功率放大器,可用于彩色電視和錄音機中。其主要特點有:音量控制通過PIN7 腳的直流電位來實現(xiàn),2V~6
2009-12-26 15:02:2891
Maxim發(fā)布帶有音量控制的+3.3V、雙SCART IC
Maxim發(fā)布帶有音量控制的+3.3V、雙SCART IC
Maxim推出帶有音量控制的+3.3V雙SCART方案MAX9670/MAX9671,用于具有2個SCART連接器的機頂盒和A/V接收機。器件采用節(jié)能技術,具有業(yè)內
2009-12-08 08:46:46832
全遙控數(shù)字音量控制的D類功率放大器
全遙控數(shù)字音量控制的D類功率放大器:幾十年來在音頻領域中,A類、B類、AB類音頻功率放大器一直占據“統(tǒng)治”地位,其發(fā)展經歷了這樣幾個過程:所用器件從電子管、晶體管到
2009-08-16 11:11:43114
電子音量控制電路
電子音量控制電路
TC9153是東芝公司推出的CMOS高保真音量控制專用集成電路。該電路的特點是功耗低,電流約為1~3mA。失真小,THD≤0.005%。音量衰減范圍
2009-07-29 14:44:176778
電子音量控制電路
電子音量控制電路
TC9153是東芝公司推出的CMOS高保真音量控制專用集成電路。該電路的特點是功耗低,電流約為1~3mA。失真小,THD≤0.005%。音量衰減范圍
2009-07-29 14:43:275412
D8199中文資料,pdf datasheet(直流音量控制
D8199 是一塊立體聲放大和直流音量控制電路。廣泛應用于音頻放大器遠程控制、電子游戲機和CATV(光纖電視)音頻的控制。采用DIP8的封裝形式。
2009-07-21 11:32:3346
基于AT89C51的音量控制電路與程序設計
本文介紹了用AT89C51 系列單片機控制音量的方法。程序用查表的方法,通過模擬串口發(fā)送數(shù)據。作者把新產品程序中關于音源選擇、屏幕驅動、遙控等內容去掉,只剩下音量控制
2009-06-29 08:52:46132
基于USB控制器設計的Windows音量控制器
基于USB控制器設計的Windows音量控制器
介紹一種使用MAX3420作為USB控制器、ATtiny 13作為微處理器設計的Windows音量控制器。該音量控制器利用硬件SPI接口,對
2009-03-29 15:12:182793
m62446 pdf
DESCRIPTIONThe M62446AFP is 6ch electronic volume with tone control. This IC is revised from
2008-07-07 17:46:53189
評論
查看更多