音量控制M62446的驱动C程序
音量控制M62446m62446 pdf
//-------------------------------------------------------------------------
// M62446 drving routines, VER 1.0
//
// COPYRIGHT (C) 2000, EnbiaTechnology 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;
stat
icidata 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 fi
rst
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)
相关推荐
ht1621c驱动程序
}}//-------------------------------------------------------------------------//
M62446drving routines, VER 1.0//// COPYRIGHT (
C
2008-07-07 17:38:52
电子数字音量控制电路图解析
当今的许多高保真放大器都具有“咔嗒声”数字
音量控制电路,但这很少是基于晶圆开关的真正步进衰减器。在几乎所有情况下,这种昂贵的系统都基于普通电位计,其主轴配有机械结构以模拟步进运动。
2023-05-13 16:36:27
1377
基于MAX5486的双通道数字音量控制电路
图中显示了基于IC MAX5486的双通道数字
音量控制电路。MAX5486为40K双通道数字
音量/平衡
控制器,具有按钮接口。该 IC 具有内置偏置电压源,无需外部电路即可用于相同目的,从而减少了外部
2023-04-02 14:40:28
532
Arduino Leonardo PC音量控制开源分享
德赢Vwin官网 网站提供《Arduino Leonardo PC
音量控制开源分享.zip》资料免费下载
2022-08-12 10:35:34
4
如何使用PT2258构建数字音量控制器
电位器不
控制信号的增益,但它形成了一个分压器,这就是输入信号衰减的原因。因此,在这个项目中,我将向您展示如何使用 IC PT2258 构建您的数字
音量控制器,并将其与 Arduino 接口以
控制放大器电路的
音量。
2022-08-11 17:12:36
4480
分享一个不错的立体声数字音量控制的电路图
这是立体声数字
音量控制的电路图。该电路可用于升级立体声放大器电路中的手动
音量管理。在这个特定的电路中,按下开关 S1
控制两个通道的正向(
音量增强)操作,而相同的开关 S2
控制两个通道的反向(
音量减小)操作。
2022-06-29 16:35:54
4937
双声道电子音量控制器M62429中文手册
M62429是一个双声道电子
音量控制器,它由双线串行数据
控制。内置参考源电路组成电子
音量控制器,使用时需要较少的外围电路。 其主要特点如下: 内置参考源电路 串行数据
控制
音量0-83dB
2022-04-08 11:04:39
70
双声道电子音量控制器M62429L中文手册
M62429L是一个双声道电子
音量控制器,它由双线串行数据
控制。内置参考源电路组成电子
音量控制器,使用时需要较少的外围电路。 其主要特点如下: 内置参考源电路 串行数据
控制
音量0-83dB
2022-04-08 11:02:56
40
线性电位计作为音量控制器
作者: TI专家Bruce Trump 翻译: TI信号链工程师 Rickey Xiong (熊尧) 你曾用过线性电位计作为
音量控制器吗?如果你使用过,你可能会发现,
音量跳变得非常快。如果
2021-11-22 15:42:20
2101
CN0226 带音量控制的便携式音频放大器
图1所示电路是一个完整的低成本、低功耗、单声道音频放大器,具有
音量控制、降低毛刺功能和3 W D类输出
驱动器。
音量通过一个连接到64位数字电位器的简单按钮接口来手动连接。自动存储功能会保留最后的
音量
2021-06-01 19:36:24
2
AD7112:具有抗对数传输功能的双CMOS乘法DAC,用于音量控制应用产品手册
AD7112:具有抗对数传输功能的双CMOS乘法DAC,用于
音量控制应用产品手册
2021-05-10 10:54:17
5
音量控制器如何设置_音量控制器的作用
音量控制器,顾名思义就是说它是一种
控制
音量的输出的一种设备,主要是应用在一些声音的处理和对音频的
音量控制。它的使用就是把会伤害到听力的那些音频转换成为一些信号,再通过
控制器中含有的芯片将其转换成为适合人们听力的音频。
2020-05-29 09:45:38
5751
微软Windows 10的全新内置音量控制
追溯到2018年,有爆料表明Windows 10内置
音量控制可能会在将来的版本中进行重大改进。由于某些原因,微软决定推迟Windows 10的新
音量控制,但该功能似乎会在今年晚些时候卷土重来。
2020-03-09 14:21:31
1913
D8199立体声放大和直流音量控制电路的数据手册免费下载
D8199 是一块立体声放大和直流
音量控制电路。广泛应用于音频放大器远程
控制、电子游戏机和CATV(光纤电视)音频的
控制。 采用 DIP8 的封装形式。
2019-08-12 08:00:00
0
TDA7448音量控制器的特性及应用
TDA7448是一种6声道
音量控制器,用于多声道音频系统的高质量应用。由于采用了双极/CMOS技术,因此可以获得低失真、低噪声和直流步进。
2019-06-17 15:22:49
4085
基于NS4298带DC音量控制功能的IC应用设计参考
NS4298是一款三选一输入,带DC
音量控制功能,超低EMI、无需滤波器、3W双声道AB/D类音频功放IC。另外,当耳机插头接入插孔时,音频功率放大器便以单端工作模式
驱动立体声耳机。NS4298有三组输入通道,通过
控制脚灵活选择其中一组。
2019-02-06 19:56:00
3393
配乐音量控制器(LF356)
关键词:LF356 ,
音量控制器 如图所示为配乐
音量控制电路。该电路适用于卡拉OK音响设备,可用于话筒自动
控制配乐
音量,能弱化基底乐音。图中场效应管T1(2N3819)作为可变电阻使用,R1和T1
2018-12-21 00:30:01
957
CMOS高保真音量控制专用集成电路
关键词:CMOS , 高保真 , 集成电路 ,
音量TC9153是东芝公司推出的CMOS高保真
音量控制专用集成电路。该电路的特点是功耗低,电流约为1~3mA。失真小,THD≤0.005%。
音量衰减
2018-11-24 07:16:01
415
使用TC9153电子音量控制电路图,TC9153 APPLICATION
使用TC9153电子
音量控制电路图,TC9153 APPLICATION 关键字:TC9153,音调电路图 找了好久终于找到这款电子
音量控制
2018-09-20 19:03:15
2961
使用衰减消除技术的电子音量控制器应用设计
你曾用过线性电位计作为
音量控制器吗?如果你使用过,你可能会发现,
音量跳变得非常快。如果想将
音量调整得相当小,你可能需要safe-cracker般的灵敏触觉(safe-cracker能够靠自己灵敏
2018-03-26 08:51:03
6132
电源音量控制的实现
本文档给出了使用电源体积的应用
程序的设计指南
控制(PSVC)。电源
音量控制增加系统性能: 体积可减少无音频的分辨率损失,在补偿的范围主动。 当PVDD电源电压降低,输出噪声电压降低好。噪声电压和最大
2017-05-24 15:51:56
11
用旋转电位器驱动半导体音量控制器
目前,在
音量控制器的电路设计中,广泛应用的是用数字电位器代替旋转
音量控制器。为模仿
控制过程,大多数电路中采用上/下按钮、开关或微处理器接口。 由于人们更倾向于使用熟
2011-06-23 16:56:41
134
按钮接口型电子音量控制器NJU7394
新日本无线就此突破解决了这一大课题,成功开发出来了按钮接口型电子
音量控制器 NJU7394 ,使底座音箱能够以简单、方便、最少组件※的形式构成。
2011-01-29 09:52:43
1874
EUA6019含有先进DC音量控制的3W立体声音频放大器
概述 EUA6019是能在信道中连续输送3W的RMS功率至3Ω负载的立体声音频放大器。先进的DC
音量控制既可减少外部组件,又与BTL(扬声器)
音量控制和SE(耳机)
音量控制兼容。Fade控
2010-12-26 22:48:43
132
单按钮音量控制器电路
单按钮
音量控制器电路见图6。VMOS管VT1 作为一个可变电阻并接在音响装置的
音量电位器输出端与地之间。VT1 的D 极和S 极之间的电阻随VGS 成反比变化,因此
控制VGS 就
2010-06-09 07:55:55
3886
LX9153中文资料 (电子音量控制电路)
LX9153 是为音频设备等
音量控制电子化而设计的一块专用集成电路。该电路采用CMOS 工艺制作,封装形式为塑封16 引线双列直插式。2、特点★较宽的工作电压范围(Vcc=4.5~12V
2010-05-02 18:29:18
295
SC9153中文资料pdf (电子音量控制电路)
SC9153是为音频设备等
音量控制电子化而设计的一块专用集成电路。该电路采用CMOS工艺制作,封装形式为塑封16引线双列直插式。主要特点:★较宽的工作电压范围(Vcc=4.5~12V)
2010-02-25 09:05:19
285
新日本无线开发出按键式电子音量控制器
新日本无线开发出按键式电子
音量控制器 新日本无线(NJR)新推出内置eala Stereo Expander功能的按键式接口电子
音量控制器NJU7392,该产品最适合用于扬声器间距狭窄的可携
2010-01-20 08:43:15
816
4W带直流音量控制音频功率放大电路
4.2W带直流
音量控制音频功率放大电路:YD1013B 是带直流
音量控制的4W 音频功率放大器,可用于彩色电视和录音机中。其主要特点有:
音量控制通过PIN7 脚的直流电位来实现,2V~6
2009-12-26 15:02:28
91
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:46
832
全遥控数字音量控制的D类功率放大器
全遥控数字
音量控制的D类功率放大器:几十年来在音频领域中,A类、B类、AB类音频功率放大器一直占据“统治”地位,其发展经历了这样几个过程:所用器件从电子管、晶体管到
2009-08-16 11:11:43
114
电子音量控制电路
电子
音量控制电路 TC9153是东芝公司推出的CMOS高保真
音量控制专用集成电路。该电路的特点是功耗低,电流约为1~3mA。失真小,THD≤0.005%。
音量衰减范围
2009-07-29 14:44:17
6778
电子音量控制电路
电子
音量控制电路 TC9153是东芝公司推出的CMOS高保真
音量控制专用集成电路。该电路的特点是功耗低,电流约为1~3mA。失真小,THD≤0.005%。
音量衰减范围
2009-07-29 14:43:27
5412
D8199中文资料,pdf datasheet(直流音量控制
D8199 是一块立体声放大和直流
音量控制电路。广泛应用于音频放大器远程
控制、电子游戏机和CATV(光纤电视)音频的
控制。采用DIP8的封装形式。
2009-07-21 11:32:33
46
基于AT89C51的音量控制电路与程序设计
本文介绍了用AT89
C51 系列单片机
控制
音量的方法。
程序用查表的方法,通过模拟串口发送数据。作者把新产品
程序中关于音源选择、屏幕
驱动、遥控等内容去掉,只剩下
音量控制
2009-06-29 08:52:46
132
基于USB控制器设计的Windows音量控制器
基于USB
控制器设计的Windows
音量控制器 介绍一种使用MAX3420作为USB
控制器、ATtiny 13作为微处理器设计的Windows
音量控制器。该
音量控制器利用硬件SPI接口,对
2009-03-29 15:12:18
2793
m62446pdf
DESCRIPTIONThe
M62446AFP is 6ch electronic volume with tone control. This IC is revised from
2008-07-07 17:46:53
189
评论
查看更多