简单的PT2314BT2314音调程序Word格式文档下载.docx
《简单的PT2314BT2314音调程序Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《简单的PT2314BT2314音调程序Word格式文档下载.docx(20页珍藏版)》请在冰豆网上搜索。
![简单的PT2314BT2314音调程序Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2023-2/5/eff14c77-3eb1-4323-80e7-44949a1ef242/eff14c77-3eb1-4323-80e7-44949a1ef2421.gif)
//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>
m--)
for(n=2;
n>
n--);
}
//定时函数
///////////////////////////////////////////
voidDelayMs(unsignedintnumber)//红外延时
{
unsignedchartemp;
for(;
number!
=0;
number--)
for(temp=112;
temp!
temp--);
}
voiddelay(unsignedcharms)//显示延时程序
unsignedchari;
while(ms--)
//for(i=0;
i<
125;
i++);
for(i=0;
30;
///////////////////////////////////////////////////////PT2314iic程序
//开总线
voidStart()
SDA=1;
SCL=1;
_nop_();
//_nop_();
SDA=0;
SCL=0;
///////////////////////////////////////////////////////////
//结束总线
voidStop()
///////////////////////////////////////////////////////
//测试ACK
bitTestAck()
bitErrorBit;
_nop_();
ErrorBit=SDA;
return(ErrorBit);
///////////////////////////////////////////////////
//写入8个bit到PT2314
Write8Bit(ucharinput)
uchartemp;
for(temp=8;
temp--)
SDA=(bit)(input&
0x80);
input=input<
<
1;
////////////////////////////////////////////////////
//写入一个字节到PT2314中
voidWritePT2314(ucharch)
Start();
Write8Bit(WriteDeviceAddress);
TestAck();
Write8Bit(ch);
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];
/*bass*/
case2:
tab_display[2]=dis_code[Choose_vbt[2]/10];
tab_display[3]=dis_code[Choose_vbt[2]%10];
/*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>
>
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];
//菜单低位显示
Menu_low=0;
Menu_low=1;
Numer=tab_display[2];
//数值高位显示
Value_high=0;
Value_high=1;
Numer=tab_display[3];
//数值低位显示
Value_low=0;
Value_low=1;
Numer=tab_display[4];
//点位选择显示
Postion_Choose=0;
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;
/*mp4*/
case1:
Choose=3;
/*DVD*/
case2:
Choose=4;
/*CD*/
case3:
Choose=6;
/*mp3*/
voidmenu_Choose_m()/*菜单控制选择*/
MenuChoosem++;
if(MenuChoosem==3)
MenuChoosem=0;
switch(MenuChoosem)//显示代码
tab_display[0]=0x7c;
tab_display[1]=0x3a;
tab_display[0]=0xfe;
tab_display[1]=0xee;
tab_display[0]=0x1e;
tab_display[1]=0x0e;
///////////////////////////////////////////////////////////////////////////////////
voidup_m()/*数值调节+*/
UpDown=Choose_vbt[0];
UpDown=Choose_vbt[1];
UpDown=Choose_vbt[2];
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()/*数值调节-*/
1)
UpDown--;
UpDown=0;