C语言m62429音量控制程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
uchar LR=0x00;//声道控制位
void VolSet(uint Volume)
{
uint Dat=0;
uchar i;
EA=0;
DAT=0;
CLK=0;
//Volume=87-Volume; //加上此句最大为0db,最小为87
Dat=(((Volume<<5)&0x60)|((Volume>>2)&0x1f))|0x80;//得到要控制的数值(看数据手册)
/*************************************************/
for (i=0;i<2;i++) //发送2位数据,控制声道 D0,D1
{
DAT=LR&0x01;
_nop_();_nop_();_nop_();_nop_();
CLK=1;
_nop_();_nop_();_nop_();_nop_();
DAT=0;
_nop_(); _nop_();_nop_();_nop_();
CLK=0;
LR=LR>>1;
}
/*************************************************/
for (i=0;i<8;i++) //发送8位数据,控制音量 D2....D9
{
DAT=Dat&0x01;
_nop_();_nop_();_nop_();_nop_();
CLK=1;
_nop_();_nop_();_nop_();_nop_();
DAT=0;
_nop_(); _nop_();_nop_();_nop_();
CLK=0;
Dat=Dat>>1;
}
/*************************************************/
DAT=1; //发送最后1位数据, D10=1
_nop_();_nop_();_nop_();_nop_();
CLK=1;
_nop_();_nop_();_nop_();_nop_();
CLK=0;
// DAT=0;
EA=1;
}