📄 back_up.c
字号:
/* 0 1 2 3 4 5 6*/
bank1 uchar tempt1[11]={0xfc,0x30,0xd5,0x75,0x39,0x6d,0xed,
0x34,0xfd,0x7d,0x01};
/*7 8 9 -*/
//***************************************************
bank1 uchar remb(uchar dd)
{
return tempt1[dd];
}
///////////////////////////////////////////////////////
void memory()
{
uchar cnt_adr;
s24();
wd24(0xa0);
if(FM_AM)
{
wd24(station_me*2-2);
dlms(10);
wd24(byte_1);
dlms(10);
wd24(byte_2);
dlms(10);
}
else
{
wd24(station_me+30);
dlms(10);
wd24(byte_3);
}
p24();
}
//----------------------------------------//
void readmemo()
{
uint k_freq;
s24();
wd24(0xa0);
if(FM_AM)
{
wd24(station_fm*2-2);
s24();
wd24(0xa1);
byte_1=rd24();
masterack();
byte_2=rd24();
masterack();
k_freq=byte_2*256+byte_1;
if(!((k_freq>=0x07b6)&(k_freq<=0x0946)))byte_2=0x07,byte_1=0xb6;
}
else
{
wd24(station_am+30);
s24();
wd24(0xa1);
byte_3=rd24();
if(!((byte_3>=0x6c)&(byte_3<=0xe6)))byte_3=0x6c;
}
noack();
p24();
}
//-----------------------------------------
void send_pt2323(void)
{
s24();
wd24(0x94);
if(input==2) wd24(0xcb); //aux input
else if(input==1)wd24(0xc9); //fm input
else if(input==0)wd24(0xc7); //5.1ch input
if(OUTMODE)
{
wd24(0xf4);
wd24(0xf8);
wd24(0xfa);
}
else
{
wd24(0xf5);
wd24(0xf9);
wd24(0xfb);
}
if(MUTE)wd24(0xff);
else wd24(0xfe);
}
//--------------------------------------------
void send_tda7448(void)
{
uchar i;
s24();
wd24(0x88);
wd24(0x10);
if(mvolg>48) i=(48+(mvolg-48)/2);
else i=mvolg;
wd24(i-fvolg);
wd24(i-fvolg);
wd24(i-cvolg);
if(i>swvolg)wd24(i-swvolg);
else wd24(0);
wd24(i-svolg);
wd24(i-svolg);
p24();
}
//;-------------------------------------------
void s24(void)
{
SCL=0;
_NOP_();_NOP_();_NOP_();
SDA=1;
_NOP_();_NOP_();_NOP_();
SCL=1;
_NOP_();_NOP_();_NOP_();
SDA=0;
_NOP_();_NOP_();_NOP_();
SCL=0;
_NOP_();_NOP_();_NOP_();
}
void p24(void)
{
SDA=0;
_NOP_();_NOP_();_NOP_();
SCL=1;
_NOP_();_NOP_();_NOP_();
SDA=1;
_NOP_();_NOP_();_NOP_();
}
/////////////////////////////////////////
void masterack()
{
// TRISC=0X30;
SCL=0;
SDA=0;
SCL=1;
SCL=0;
SDA=1;
}
/////////////////////////////////////
void noack()
{
// TRISC=0X30;
_NOP_();
_NOP_();
_NOP_();
_NOP_();
SDA=1;
SCL=1;
SCL=0;
}
/////////////////////////////////////
unsigned char rd24(void)
{
uchar i,k;
TRISB=0X78;//0X78
for(i=0;i<8;i++)
{
SCL=1;
_NOP_();_NOP_();_NOP_();
if(SDA)
k=k|1;
else
k=k&0XFE;
SCL=0;
_NOP_();_NOP_();_NOP_();
if(i<7)k=k<<1;
}
TRISB=0X38;
return(k);
}
void wd24(volatile uchar byte)
{
uchar i;
for(i=8; i>0; i--)
{
if((byte&0x80)==0X80)SDA=1;
else SDA=0;
byte=byte<<1;
SCL=1;
SCL=0;
}
SCL=1;
SCL=0;
}
//////////////////////////////////////////////////
//------------------------------------------------------
void remotefun(uchar rembyte)
{
GIE=0;
AK47=0,times3=0x20;;
if((POWER)|(rembyte==1))
{
switch(rembyte)
{ case 1:
{
if(POWER) POWER=0,MUTE=1;
else POWER=1,MUTE=0;
}
break;
case 2:
{
if(MUTE) MUTE=0;
else MUTE=1,LEDMUT=1,times=255;
}
break;
case 3:
{
if (input==0)
{
N_MODE:
input=1,buf_g1=0xd7,buf_g2=0xfc;
LED51=0,LED20=1,LEDRD=0;
buf_g3=remb((mvolg-10)/10),buf_g4=remb((mvolg-10)%10);
}
else if(input==2)
{
M_MODE:
input=0,buf_g1=0x6f,buf_g2=0x30;
LED51=1,LED20=0,LEDRD=0;
buf_g3=remb((mvolg-10)/10),buf_g4=remb((mvolg-10)%10);
}
else if(input==1)
{
R_MODE:
input=2;
LED51=0,LED20=0,LEDRD=1;
if(FM_AM) buf_g1=0xBD;
else buf_g1=0x8D;
first_dis=1;
goto dopart;
}
}
break;
case 4:
{
mvolg=30,fvolg=0x05,cvolg=0x05,svolg=0x05,swvolg=0x05;
goto chk_dis;
}
break;
case 5:
{
if(OUTMODE) OUTMODE=0,LED21=0;
else OUTMODE=1,LED21=1;
volflag=0;
goto chk_dis;
}
break;
case 6:
{
if(input==2)
{
first_dis=1;
if(FM_AM) FM_AM=0,buf_g1=0xBD;
else FM_AM=1,buf_g1=0x8D;
goto dopart;
}
}
break;
case 7:
{
AK47=1;
if(input==2)
{
ADDD=0;
goto dopart;
}
}
break;
case 8:
{
AK47=1;
if(input==2)
{ADDD=1;
dopart:
up_radio();
if(FM_AM)
{
if(buf_g1==0)buf_g1=0x8D;
else buf_g1=remb(buf_g1);
buf_g3=remb(buf_g3)+2;
}
else
{
if(buf_g1==0)buf_g1=0xbD;
else buf_g1=remb(buf_g1);
buf_g3=remb(buf_g3);
}
buf_g2=remb(buf_g2);
buf_g4=remb(buf_g4);
}
}
break;
case 9:
{
if(input==2)
{
if(!FLAG_ME)
{
FLAG_ME=1;//bd==a
buf_g1=0x0,buf_g2=0x9d,buf_g3=remb(0),buf_g4=remb(1);
station_me=1;
}
else
{
FLAG_ME=0;
memory();
first_dis=1;
goto dopart;
}
}
}
break;
case 10:
{
if(input==2)
{
if(FLAG_ME)
{
if(station_me>1)station_me--;
else station_me=15;
buf_g3=remb(station_me/10),buf_g4=remb(station_me%10);
}
else
{
if(FM_AM)
{
if(station_fm>1)station_fm--;
else station_fm=15;
readmemo();
first_dis=1;
goto dopart;
}
if(!FM_AM)
{
if(station_am>1)station_am--;
else station_am=15;
readmemo();
first_dis=1;
goto dopart;
}
}
buf_g1=0x00,buf_g2=0x9d;
}
}
break;
case 11:
{
if(input==2)
{
if(FLAG_ME)
{
if(station_me<15)station_me++;
else station_me=1;
buf_g3=remb(station_me/10),buf_g4=remb(station_me%10);
}
else
{
if(FM_AM)
{
if(station_fm<15)station_fm++;
else station_fm=1;
readmemo();
first_dis=1;
goto dopart;
}
if(!FM_AM)
{
if(station_am<15)station_am++;
else station_am=1;
readmemo();
first_dis=1;
goto dopart;
}
}
buf_g1=0x00,buf_g2=0x9d;
}
}
break;
case 12:
{
AK47=1;
if(volflag==0)
{
MUTE=0;
if(mvolg>10)mvolg-- ;
}
if(!MUTE)
{
if(volflag==1)
{
if(cvolg<10)cvolg++ ;
}
if(volflag==2)
{
if(svolg<10)svolg++ ;
}
if(volflag==3)
{
if(swvolg<10)
swvolg++ ;
}
}
goto chk_dis;
}
break;
case 13:
{
if(OUTMODE)
{
if(volflag>0)volflag--;
else volflag=3;
goto chk_dis;
}
else
{
if(volflag==0)volflag=3;
else volflag=0;
}
chk_dis:
if(volflag==0)
{
buf_g3=buf_g31=remb((mvolg-10)/10), buf_g4=buf_g41=remb((mvolg-10)%10);
if (input==0) buf_g1=0x6f,buf_g2=0x30;
else if(input==1) buf_g1=0xd7,buf_g2=0xfc;
else
{
if(!FM_AM) buf_g1=0xBD;
else buf_g1=0x8D;
buf_g2=0x00;
}
}
if(volflag==1)
{
buf_g1=0xcc,buf_g2=0xcd;
if(cvolg>=5) buf_g3=0,buf_g4=cvolg-5;
if(cvolg<5)buf_g3=10,buf_g4=5-cvolg;
buf_g3=remb(buf_g3),buf_g4=remb(buf_g4);
}
if(volflag==2)
{
buf_g1=0x6d,buf_g2=0xbd;
if(svolg>=5) buf_g3=0,buf_g4=svolg-5;
if(svolg<5)buf_g3=10,buf_g4=5-svolg;
buf_g3=remb(buf_g3),buf_g4=remb(buf_g4);
}
if(volflag==3)
{
buf_g1=0x6d,buf_g2=0xf8;
if(swvolg>=5) buf_g3=0,buf_g4=swvolg-5;
if(swvolg<5)buf_g3=10,buf_g4=5-swvolg;
buf_g3=remb(buf_g3),buf_g4=remb(buf_g4);
}
}
break;
case 14:
{
AK47=1;
if(volflag==0)
{
MUTE=0;
if(mvolg<90)mvolg++ ;
}
if(!MUTE)
{
if(volflag==1)
{
if(cvolg>0)cvolg-- ;
}
if(volflag==2)
{
if(svolg>0)svolg-- ;
}
if(volflag==3)
{
if(swvolg>0)swvolg-- ;
}
}
goto chk_dis;
}
break;
case 15:
{
if(OUTMODE)
{
if(volflag<3)volflag++;
else volflag=0;
goto chk_dis;
}
else
{
if(volflag==0)volflag=3;
else volflag=0;
goto chk_dis;
}
}
break;
default:
break;
}
}
send_pt2323();
send_tda7448();
GIE=1;
}
//---------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -