简单的PT2314BT2314音调程序.docx

上传人:b****1 文档编号:13750302 上传时间:2023-06-17 格式:DOCX 页数:20 大小:845.68KB
下载 相关 举报
简单的PT2314BT2314音调程序.docx_第1页
第1页 / 共20页
简单的PT2314BT2314音调程序.docx_第2页
第2页 / 共20页
简单的PT2314BT2314音调程序.docx_第3页
第3页 / 共20页
简单的PT2314BT2314音调程序.docx_第4页
第4页 / 共20页
简单的PT2314BT2314音调程序.docx_第5页
第5页 / 共20页
简单的PT2314BT2314音调程序.docx_第6页
第6页 / 共20页
简单的PT2314BT2314音调程序.docx_第7页
第7页 / 共20页
简单的PT2314BT2314音调程序.docx_第8页
第8页 / 共20页
简单的PT2314BT2314音调程序.docx_第9页
第9页 / 共20页
简单的PT2314BT2314音调程序.docx_第10页
第10页 / 共20页
简单的PT2314BT2314音调程序.docx_第11页
第11页 / 共20页
简单的PT2314BT2314音调程序.docx_第12页
第12页 / 共20页
简单的PT2314BT2314音调程序.docx_第13页
第13页 / 共20页
简单的PT2314BT2314音调程序.docx_第14页
第14页 / 共20页
简单的PT2314BT2314音调程序.docx_第15页
第15页 / 共20页
简单的PT2314BT2314音调程序.docx_第16页
第16页 / 共20页
简单的PT2314BT2314音调程序.docx_第17页
第17页 / 共20页
简单的PT2314BT2314音调程序.docx_第18页
第18页 / 共20页
简单的PT2314BT2314音调程序.docx_第19页
第19页 / 共20页
简单的PT2314BT2314音调程序.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

简单的PT2314BT2314音调程序.docx

《简单的PT2314BT2314音调程序.docx》由会员分享,可在线阅读,更多相关《简单的PT2314BT2314音调程序.docx(20页珍藏版)》请在冰点文库上搜索。

简单的PT2314BT2314音调程序.docx

简单的PT2314BT2314音调程序

/**********************************************************************************************/

//PT2314的音量调节,高低音调节,声道选择,静音,红外遥控,

/**********************************************************************************************/

#include"reg52.h"

#include"intrins.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

/*pt2314写入地址*/

#defineWriteDeviceAddress0x88

/*红外0/1代码时长定义*/

#defineImax14000

#defineImin8000

#defineInum11450

#defineInum2700

#defineInum33000

/*对应音量+,音量-,高音+,高音-,低音+,低音-静音,音源选择*/

/*菜单,静音,加,减,dvd,vcd,cd,aut*/

#defineVol_Cut0x08/*静音*/

#defineup0x07

#definedown0x0a

#definemenu_Choose0x05/*包括treble,bass,vol*/

/*#definevol_bass_up0x05遥控器的便捷扩展按键

#definevol_bass_down0x06

#definevol_treble_up0x03

#definevol_treble_down0x04*/

#definemenu_road_Choose0x03//菜单选择包括了下面按一下就跳变次

/*#defineChoose_dvd0x09遥控器的便捷扩展按键

#defineChoose_cd0x10

#defineChoose_mp30x11

#defineChoose_mp40x12*/

/*显示定义*/

//unsignedcharBass=0x60;

//unsignedcharTreble=0x70;

/////////////////////

#definevol0x00;

#definebass0x60;

#definetreble0x70;

#defineaud_Choose0x40;

///////////////////////////////////////////////送到显示程序中的数组

unsignedchartab_display[]={0x7c,0x3a,0xfe,0xfc,0x04};//C:

0x9cD:

0xfcV:

0x7co:

0x3aB:

0xfeA:

0xee

///////////////////////////////////////////////共阴数MR6625显示T:

0x1er:

0x0e

unsignedcharcodedis_code[]={

0xfc,/*0*/

0x60,/*1*/

0xDA,/*2*/

0xF2,/*3*/

0x66,/*4*/

0xB6,/*5*/

0xBE,/*6*/

0xE0,/*7*/

0xFE,/*8*/

0xF6/*9*/

};

/////////////////////////////////////////////

unsignedcharvol_iic[]={0,0,0,0x5c,0,0};/*vol,bass,treble,aud_Choose,左声道静音量右声道静音量,传到iiC的数据*/

/////////////////////////////////////////////

unsignedcharChoose_vbt[]={38,8,8};/*vol,bass,vtreble音量调节变量存储*/

/////////////////////////////////////////////////MR-6625最后一位显示表格

//unsignedcharcodeMR_6625[]={0X20,0X01,0X02,0X04,0X08,0X10,0X40};//mp4,播放,暂停,DVD,CD,点,mp3正

unsignedcharcodeMR_6625[]={0X04,0X80,0X40,0X20,0X10,0X08,0X02};//mp4,播放,暂停,DVD,CD,点,mp3反

///////////////////////////////////////////////////////////////////////音量表格

/*unsignedcharcodevol_10db[]={0x00,0x08,0x10,0x18,

0x20,0x28,0x30,0x38};//10db增量

unsignedcharcodevol_1_25db[]={0x00,0x01,0x02,0x03,0x04,

0x05,0x06,0x07};//1.25db增量

*/

unsignedcharcodevol_db[]={0x38|0x07,0x38|0x06,0x38|0x05,0x38|0x04,0x38|0x03,0x38|0x02,0x38|0x01,0x38|0x00,

0x30|0x07,0x30|0x06,0x30|0x05,0x30|0x04,0x30|0x03,0x30|0x02,0x30|0x01,0x30|0x00,

0x28|0x07,0x28|0x06,0x28|0x05,0x28|0x04,0x28|0x03,0x28|0x02,0x28|0x01,0x28|0x00,

0x20|0x07,0x20|0x06,0x20|0x05,0x20|0x04,0x20|0x03,0x20|0x02,0x20|0x01,0x20|0x00,

0x18|0x07,0x18|0x06,0x18|0x05,0x18|0x04,0x18|0x03,0x18|0x02,0x18|0x01,0x18|0x00,

0x10|0x07,0x10|0x06,0x10|0x05,0x10|0x04,0x10|0x03,0x10|0x02,0x10|0x01,0x10|0x00,

0x08|0x07,0x08|0x06,0x08|0x05,0x08|0x04,0x08|0x03,0x08|0x02,0x08|0x01,0x08|0x00,

0x00|0x07,0x00|0x06,0x00|0x05,0x00|0x04,0x00|0x03,0x00|0x02,0x00|0x01,0x00|0x00,

};

///////////////////////////////////////////////////////////////////////B/T调音声调表格

unsignedcharcodeTiaoyin[]={0x00,0x01,0x02,0x03,

0x04,0x05,0x06,0x07,

0x0f,0x0e,0x0d,0x0c,

0x0b,0x0a,0x09,0x08};

//////////////////////////////////////////////////////////32位编码接收存储

unsignedcharIm[4]={0x00,0x00,0x00,0x00};

/////////////////////////////////////////////

unsignedlongm,Tc;

unsignedcharIrOK;//码是否正确的标识符

unsignedcharf;

unsignedcharflag;

//unsignedcharh;

unsignedcharMenuChoosem;

unsignedcharNumer;

unsignedcharMenuRoadChoosem;

unsignedcharChoose;

unsignedcharUpDown;

unsignedcharVolCutm;

unsignedcharppp;

///////////////////////////////////////

sbitm74HC164_DATA=P1^0;

sbitm74HC164_CLK=P1^1;

sbitMenu_high=P1^2;

sbitMenu_low=P1^3;

sbitValue_high=P1^4;

sbitValue_low=P2^5;

sbitPostion_Choose=P2^6;

//sbitP17=P1^7;

sbita0=ACC^0;//累加器做模拟串口传输的数据位定义

//////////////////////////////

sbitK1=P2^0;

sbitK2=P2^1;

sbitK3=P2^2;

sbitK4=P2^3;

sbitK5=P2^4;

//////////////////////////////////////////

sbitSCL=P3^7;//总线端口设置

sbitSDA=P3^6;

////////////////////////////////////////////////////////////////

voidDely()

{

unsignedcharm,n,s;

for(s=2;s>0;s--)

for(m=2;m>0;m--)

for(n=2;n>0;n--);

}

//定时函数

///////////////////////////////////////////

voidDelayMs(unsignedintnumber)//红外延时

{

unsignedchartemp;

for(;number!

=0;number--)

{

for(temp=112;temp!

=0;temp--);

}

}

//////////////////////////////////////////

voiddelay(unsignedcharms)//显示延时程序

{

unsignedchari;

while(ms--)

{

//for(i=0;i<125;i++);

for(i=0;i<30;i++);

}

}

///////////////////////////////////////////////////////PT2314iic程序

//开总线

voidStart()

{

SDA=1;

SCL=1;_nop_();_nop_();//_nop_();

SDA=0;_nop_();_nop_();//_nop_();

SCL=0;//_nop_();_nop_();_nop_();

}

///////////////////////////////////////////////////////////

//结束总线

voidStop()

{

SCL=0;

SDA=0;_nop_();_nop_();//_nop_();

SCL=1;_nop_();_nop_();//_nop_();

SDA=1;//_nop_();_nop_();_nop_();

}

///////////////////////////////////////////////////////

//测试ACK

bitTestAck()

{

bitErrorBit;

SDA=1;_nop_();//_nop_();_nop_();

SCL=1;_nop_();//_nop_();_nop_();

ErrorBit=SDA;

SCL=0;

return(ErrorBit);

}

///////////////////////////////////////////////////

//写入8个bit到PT2314

Write8Bit(ucharinput)

{

uchartemp;

for(temp=8;temp!

=0;temp--)

{

SDA=(bit)(input&0x80);

SCL=1;_nop_();//_nop_();_nop_();_nop_();

SCL=0;_nop_();//_nop_();_nop_();_nop_();

input=input<<1;

}

}

////////////////////////////////////////////////////

//写入一个字节到PT2314中

voidWritePT2314(ucharch)

{

Start();

Write8Bit(WriteDeviceAddress);

TestAck();

Write8Bit(ch);

TestAck();

Stop();

//DelayMs(20);

}

/////////////////////////////////////////////////////////////////////

voidchange_all()/*数值处理分配到表格*/

{

switch(MenuChoosem)

{

case0:

tab_display[2]=dis_code[Choose_vbt[0]/10];

tab_display[3]=dis_code[Choose_vbt[0]%10];break;/*vol*/

case1:

tab_display[2]=dis_code[Choose_vbt[1]/10];

tab_display[3]=dis_code[Choose_vbt[1]%10];break;/*bass*/

case2:

tab_display[2]=dis_code[Choose_vbt[2]/10];

tab_display[3]=dis_code[Choose_vbt[2]%10];break;/*treble*/

}

/*IIC数据处理*/

if(VolCutm==0)

{

tab_display[4]=MR_6625[2]|MR_6625[5]|MR_6625[Choose];

vol_iic[4]=0xdf;//静音

vol_iic[5]=0xff;

}

else

{

tab_display[4]=MR_6625[1]|MR_6625[5]|MR_6625[Choose];

vol_iic[4]=0xc0;//开静音

vol_iic[5]=0xe0;

}

vol_iic[0]=vol_db[Choose_vbt[0]]|vol;

vol_iic[1]=Tiaoyin[Choose_vbt[1]]|bass;

vol_iic[2]=Tiaoyin[Choose_vbt[2]]|treble;

if(Choose==0)

{vol_iic[3]=0x5c;}

if(Choose==3)

{vol_iic[3]=0x5d;}

if(Choose==4)

{vol_iic[3]=0x5e;}

if(Choose==6)

{vol_iic[3]=0x5f;}

}

voidout_74HC164(unsignedchardata_buf)/*模拟传输到74HC164*/

{

unsignedchari;//y;

i=8;

ACC=data_buf;

do

{

m74HC164_DATA=a0;

m74HC164_CLK=0;

m74HC164_CLK=1;

ACC=ACC>>1;

}

while(--i!

=0);

}

///////////////////////////////////////////////////////////

voiddisplay_74HC164()

{unsignedcharm;

for(m=0;m<3;m++)

{

Numer=tab_display[0];//菜单高位显示

out_74HC164(Numer);

Menu_high=0;

delay

(2);

Menu_high=1;

Numer=tab_display[1];//菜单低位显示

out_74HC164(Numer);

Menu_low=0;

delay

(2);

Menu_low=1;

Numer=tab_display[2];//数值高位显示

out_74HC164(Numer);

Value_high=0;

delay

(2);

Value_high=1;

Numer=tab_display[3];//数值低位显示

out_74HC164(Numer);

Value_low=0;

delay

(2);

Value_low=1;

Numer=tab_display[4];//点位选择显示

out_74HC164(Numer);

Postion_Choose=0;

delay

(2);

Postion_Choose=1;

}

m=0;

}

////////////////////////////////////////////////////////////////

voidVol_Cut_m()/*静音入口*/

{

VolCutm=~VolCutm;

}

/////////////////////////////////////////////////////////////

voidmenu_road_Choose_m()//选择mp4,DVD,CD,mp3/*输入选择*/

{//Choose:

0346

MenuRoadChoosem++;

if(MenuRoadChoosem==4)

{

MenuRoadChoosem=0;

}

switch(MenuRoadChoosem)

{

case0:

Choose=0;break;/*mp4*/

case1:

Choose=3;break;/*DVD*/

case2:

Choose=4;break;/*CD*/

case3:

Choose=6;break;/*mp3*/

}

}

/////////////////////////////////////////////////////////////////////

voidmenu_Choose_m()/*菜单控制选择*/

{

MenuChoosem++;

if(MenuChoosem==3)

{

MenuChoosem=0;

}

switch(MenuChoosem)//显示代码

{

case0:

tab_display[0]=0x7c;

tab_display[1]=0x3a;break;/*vol*/

case1:

tab_display[0]=0xfe;

tab_display[1]=0xee;break;/*bass*/

case2:

tab_display[0]=0x1e;

tab_display[1]=0x0e;break;/*treble*/

}

}

///////////////////////////////////////////////////////////////////////////////////

voidup_m()/*数值调节+*/

{

switch(MenuChoosem)

{

case0:

UpDown=Choose_vbt[0];break;/*vol*/

case1:

UpDown=Choose_vbt[1];break;/*bass*/

case2:

UpDown=Choose_vbt[2];break;/*treble*/

}

UpDown++;

if(MenuChoosem==0)/*vol重新存入Choose_vbt[]*/

{if(UpDown>64)

{

UpDown=64;

}

Choose_vbt[0]=UpDown;

}

if((MenuChoosem==1)|(MenuChoosem==2))

{

if(UpDown>16)

{

UpDown=16;

}

}

if(MenuChoosem==1)/*bass重新存入Choose_vbt[]*/

{

Choose_vbt[1]=UpDown;

}

if(MenuChoosem==2)/*treble重新存入Choose_vbt[]*/

{

Choose_vbt[2]=UpDown;

}

}

////////////////////////////////////////////////////////////////////////////////////

voiddown_m()/*数值调节-*/

{

switch(MenuChoosem)

{

case0:

UpDown=Choose_vbt[0];break;/*vol*/

case1:

UpDown=Choose_vbt[1];break;/*bass*/

case2:

UpDown=Choose_vbt[2];break;/*treble*/

}

if(UpDown>1)

{

UpDown--;

}

else

{

UpDown=0;

}

if(MenuChoosem==0)/*vol重新存入Choose_vbt[]*/

{

Choose_vbt[0]=UpDown;

}

if(MenuChoosem==1)/*bass重新存入Choose_vbt[]*/

{

Choose_vbt[1]=UpDown;

}

if(MenuChoosem==2)/*treble重新存入Choose_vbt[]*/

{

Choose_vbt[2]=UpDown;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2