音量控制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
电子数字音量控制电路图解析
当今的许多高保真放大器都具有“咔嗒声”数字音量控制电路,但这很少是基于晶圆开关的真正步进衰减器。在几乎所有情况下,这种昂贵的系统都基于普通电位计,其主轴配有机械结构以模拟步进运动。
2023-05-13 16:36:271377
基于MAX5486的双通道数字音量控制电路
图中显示了基于IC MAX5486的双通道数字音量控制电路。MAX5486为40K双通道数字音量/平衡控制器,具有按钮接口。该 IC 具有内置偏置电压源,无需外部电路即可用于相同目的,从而减少了外部
2023-04-02 14:40:28532
如何使用PT2258构建数字音量控制器
电位器不控制信号的增益,但它形成了一个分压器,这就是输入信号衰减的原因。因此,在这个项目中,我将向您展示如何使用 IC PT2258 构建您的数字音量控制器,并将其与 Arduino 接口以控制放大器电路的音量。
2022-08-11 17:12:364480
分享一个不错的立体声数字音量控制的电路图
这是立体声数字音量控制的电路图。该电路可用于升级立体声放大器电路中的手动音量管理。在这个特定的电路中,按下开关 S1 控制两个通道的正向(音量增强)操作,而相同的开关 S2 控制两个通道的反向(音量减小)操作。
2022-06-29 16:35:544937
双声道电子音量控制器M62429中文手册
M62429是一个双声道电子音量控制器,它由双线串行数据控制。内置参考源电路组成电子音量控制器,使用时需要较少的外围电路。
其主要特点如下:
内置参考源电路
串行数据控制
音量0-83dB
2022-04-08 11:04:3970
双声道电子音量控制器M62429L中文手册
M62429L是一个双声道电子音量控制器,它由双线串行数据控制。内置参考源电路组成电子音量控制器,使用时需要较少的外围电路。
其主要特点如下:
内置参考源电路
串行数据控制
音量0-83dB
2022-04-08 11:02:5640
线性电位计作为音量控制器
作者: TI专家Bruce Trump
翻译: TI信号链工程师 Rickey Xiong (熊尧)
你曾用过线性电位计作为音量控制器吗?如果你使用过,你可能会发现,音量跳变得非常快。如果
2021-11-22 15:42:202101
CN0226 带音量控制的便携式音频放大器
图1所示电路是一个完整的低成本、低功耗、单声道音频放大器,具有音量控制、降低毛刺功能和3 W D类输出驱动器。音量通过一个连接到64位数字电位器的简单按钮接口来手动连接。自动存储功能会保留最后的音量
2021-06-01 19:36:242
AD7112:具有抗对数传输功能的双CMOS乘法DAC,用于音量控制应用产品手册
AD7112:具有抗对数传输功能的双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立体声放大和直流音量控制电路的数据手册免费下载
D8199 是一块立体声放大和直流音量控制电路。广泛应用于音频放大器远程控制、电子游戏机和CATV(光纤电视)音频的控制。 采用 DIP8 的封装形式。
2019-08-12 08:00:000
TDA7448音量控制器的特性及应用
TDA7448是一种6声道音量控制器,用于多声道音频系统的高质量应用。由于采用了双极/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
使用衰减消除技术的电子音量控制器应用设计
你曾用过线性电位计作为音量控制器吗?如果你使用过,你可能会发现,音量跳变得非常快。如果想将音量调整得相当小,你可能需要safe-cracker般的灵敏触觉(safe-cracker能够靠自己灵敏
2018-03-26 08:51:036132
电源音量控制的实现
本文档给出了使用电源体积的应用程序的设计指南控制(PSVC)。电源音量控制增加系统性能: 体积可减少无音频的分辨率损失,在补偿的范围主动。 当PVDD电源电压降低,输出噪声电压降低好。噪声电压和最大
2017-05-24 15:51:5611
用旋转电位器驱动半导体音量控制器
目前,在音量控制器的电路设计中,广泛应用的是用数字电位器代替旋转音量控制器。为模仿控制过程,大多数电路中采用上/下按钮、开关或微处理器接口。 由于人们更倾向于使用熟
2011-06-23 16:56:41134
按钮接口型电子音量控制器NJU7394
新日本无线就此突破解决了这一大课题,成功开发出来了按钮接口型电子音量控制器 NJU7394 ,使底座音箱能够以简单、方便、最少组件※的形式构成。
2011-01-29 09:52:431874
EUA6019含有先进DC音量控制的3W立体声音频放大器
概述
EUA6019是能在信道中连续输送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
新日本无线开发出按键式电子音量控制器
新日本无线开发出按键式电子音量控制器
新日本无线(NJR)新推出内置eala Stereo Expander功能的按键式接口电子音量控制器NJU7392,该产品最适合用于扬声器间距狭窄的可携
2010-01-20 08:43:15816
4W带直流音量控制音频功率放大电路
4.2W带直流音量控制音频功率放大电路:YD1013B 是带直流音量控制的4W 音频功率放大器,可用于彩色电视和录音机中。其主要特点有:音量控制通过PIN7 脚的直流电位来实现,2V~6
2009-12-26 15:02:2891
Maxim发布带有音量控制的+3.3V、双SCART IC
Maxim发布带有音量控制的+3.3V、双SCART IC
Maxim推出带有音量控制的+3.3V双SCART方案MAX9670/MAX9671,用于具有2个SCART连接器的机顶盒和A/V接收机。器件采用节能技术,具有业内
2009-12-08 08:46:46832
全遥控数字音量控制的D类功率放大器
全遥控数字音量控制的D类功率放大器:几十年来在音频领域中,A类、B类、AB类音频功率放大器一直占据“统治”地位,其发展经历了这样几个过程:所用器件从电子管、晶体管到
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 系列单片机控制音量的方法。程序用查表的方法,通过模拟串口发送数据。作者把新产品程序中关于音源选择、屏幕驱动、遥控等内容去掉,只剩下音量控制
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
评论
查看更多