音量控制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
基于TC9153P的电子音量控制威廉希尔官方网站 图
TC9153P是一种最优设计的C2MOS电子音量控制集成威廉希尔官方网站
,主要用做音响设备的电子音量控制。
2011-07-08 14:45:347756
用旋转电位器驱动半导体音量控制器
目前,在音量控制器的威廉希尔官方网站
设计中,广泛应用的是用数字电位器代替旋转音量控制器。为模仿控制过程,大多数威廉希尔官方网站
中采用上/下按钮、开关或微处理器接口。 由于人们更倾向于使用熟
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
红外遥控音量控制器威廉希尔官方网站 ,IR Remote Volume C
红外遥控音量控制器威廉希尔官方网站
,IR Remote Volume Controller
2010-03-28 22:13:102733
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
数字音量控制器威廉希尔官方网站 (Digital Volume Cont
数字音量控制器威廉希尔官方网站
(Digital Volume Control)
2009-12-24 08:30:457028
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
评论
查看更多