📄 19264cv0_1.c.bak
字号:
P13=0;
P14=0;
//mcsbak=0x01;
break;
case 2:
P12=0;
P13=1;
P14=0;
//mcsbak=0x02;
break;
case 3:
P12=1;
P13=1;
P14=0;
//mcsbak=0x03;
break;
case 4:
P12=0;
P13=0;
P14=1;
//mcsbak=0x04;
break;
case 5:
P12=1;
P13=0;
P14=1;
//mcsbak=0x05;
break;
case 6:
P12=0;
P13=1;
P14=1;
//mcsbak=0x06;
break;
case 7:
P12=1;
P13=1;
P14=1;
//mcsbak=0x07;
break;
}
}
void antennaroue1(void)
{ // 获取GSM信号强度值。并将相应点阵码送如x12dote[0][12]-2[]
uchar data i,j,k,temp,temp1;
//extern uchar code signel1[2][12];
uchar * discodeprt=signel1;
OldAntennaVal=antenna;//
// temp = (antenna/3); // antenna 1--31
if(antenna==0) temp=0;
if((antenna<11)&&(antenna>0)) temp=2; // 1格信号
if((antenna<16)&&(antenna>10)) temp=4; // 2格信号
if((antenna<20)&&(antenna>15)) temp=6; // 3格信号
if((antenna<26)&&(antenna>19)) temp=8; // 4格信号
if((antenna<32)&&(antenna>25)) temp=10; // 5格信号
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
for(i=0;i<2;i++)
{
for(k=0,j=12;j<24;j++,k++)
{ temp1=*(discodeprt++);
temp1 = bytetune(temp1);
if(temp>k)
x12dote[i][j]=temp1;
else
x12dote[i][j]=0x00;
}
}// 以上是信号强度 temp是等级2 4 6 8 10 等级
}
void dis12dote(uchar x,uchar y,uchar * poniter,bit tempsign)
{ //是汉字时 tempsign=0// 应该是:如果要反显 tempsign=1;
//x指示x12dote[i][j]中i值,y指示其中j值。用于天线及GSM信号强度2004.06.11 mers
uchar data i,j,temp;
uchar * discodeprt=poniter;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
for(i=x;i<x+2;i++)
{
for(j=6*y;j<(6*y+6);j++)
{ temp=*(discodeprt++);
temp = bytetune(temp);
if(tempsign)
temp=~temp;
x12dote[i][j]=temp;//////////////////////////////////////////////
}
}
}
void dis12dote1(uchar x,uchar y,uchar * poniter,bit tempsign)
{
uchar data i,j,temp;
uchar * discodeprt=poniter;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
for(i=x;i<x+2;i++)
{
for(j=6*y;j<(6*y+12);j++)
{ temp=*(discodeprt++);
temp = bytetune(temp);
if(tempsign)
temp=~temp;
x12dote[i][j]=temp;
}
}
}
//--------------------------------------------
void dotetimedate(void)
{extern uchar code dote12_l[];
extern uchar code dote12_0[];extern uchar code dote_yue[];
extern uchar code dote_rei[];extern uchar code dote12_m[];
extern uchar code dote12_k[];extern uchar code dote12_h[];
extern uchar code dote_nai[];extern uchar code dote_dian[];
extern uchar code dote_xing[];extern uchar code dote_mao[];
extern uchar code dote_nop[];
uchar data i,j,temp;
uchar *discodeprt;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
xytime[4] =13;xytime[16] =13; // 经度与纬度中的小数点
for(i=1,j=0;i<7;i++) //日期
{
temp=(yymmtt[i+1-j])&0x0f;
if((temp==0x00)&&(i==1))
{dis12dote(2,i,dote_nop,0);continue;}
if(i==3)
{dis12dote1(2,i,dote_yue,0);i++;j++;j++;continue;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(2,i,discodeprt,0);
}
dis12dote1(2,7,dote_rei,0);
for(i=0,j=0;i<8;i++) //时间
{ temp=(yymmtt[i-j+6])&0x0f;
if((i==2)|(i==5))
{temp=10;j++;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(2,i+10,discodeprt,0);
}
/* for(i=0,j=0;i<8;i++) //日期
{ temp=(yymmtt[i-j])&0x0f;
if((i==2)|(i==5))
{temp=14;j++;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(2,i+8,discodeprt);
}
for(i=0,j=0;i<8;i++) //时间
{ temp=(yymmtt[i-j+6])&0x0f;
if((i==2)|(i==5))
{temp=10;j++;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(4,i+6,discodeprt);
}
*/ for(i=0,j=0;i<5;i++) //显示速度
{ temp=(speedfang1[i])&0x0f;
discodeprt = &dote12_0[0]+temp*12;
dis12dote(4,i+6,discodeprt,0);
if(temp==13)
break;
}
temp=(speedfang1[i+1])&0x0f;i=i+7;
discodeprt = &dote12_0[0]+temp*12;
dis12dote(4,i++,discodeprt,0); // 小数点值
dis12dote(4,i++,dote_nop,0);
dis12dote(4,i++,dote12_k,0); //k
dis12dote(4,i++,dote12_m,0); //m
dis12dote(4,i++,dote12_l,0); //'/'
dis12dote(4,i++,dote12_h,0); //h
for(;i<19;i++)
dis12dote(4,i,dote_nop,0);
for(i=0,j=0;i<11;i++) //经度
{ temp=(xytime[i-j])&0x0f;
//if((i==2)|(i==5)|(i==10)|(i==6))
if(i==2) {temp=11;j++;}
if(i==10) {temp=12;j++;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(6,i+6,discodeprt,0);
}
for(i=0,j=0;i<12;i++) //纬度
{ temp=(xytime[i-j+11])&0x0f;
//if((i==3)|(i==6)|(i==7)|(i==11))
if(i==3) {temp=11;j++;}
if(i==11) {temp=12;j++;}
discodeprt = &dote12_0[0]+temp*12;
dis12dote(8,i+6,discodeprt,0);
}
}
void d12jianmian(void)
{
extern uchar code dote_ri[];extern uchar code dote_qi[];
extern uchar code dote_shi[];extern uchar code dote_jian[];
extern uchar code dote_jin[];extern uchar code dote_wei[];
extern uchar code dote_du[];extern uchar code dote_mao[];
extern uchar code dote_dong[];extern uchar code dote_bei[];
extern uchar code dote_shu[];extern uchar code dote_du[];
//uchar data i,j,temp;
//uchar * discodeprt;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
// dis12dote1(2,0,dote_rou);
// dis12dote1(2,2,dote_qi);
// dis12dote1(2,4,dote_mao);
dis12dote1(4,0,dote_shu,0);
dis12dote1(4,2,dote_du,0);
dis12dote1(4,4,dote_mao,0);
dis12dote1(8,0,dote_dong,0);
dis12dote1(8,2,dote_jin,0);
dis12dote1(8,4,dote_mao,0);
dis12dote1(6,0,dote_bei,0);
dis12dote1(6,2,dote_wei,0);
dis12dote1(6,4,dote_mao,0);
}
void byte12(void)
{ // 5*16dote ==4*16
uchar data i,j,temp;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
for(i=0;i<128;i++)
x16dote[0][i] = x12dote[0][i];
for(i=0;i<128;i++)
{ j = (x12dote[1][i])&0x0f;
temp = x12dote[2][i];
j= j|((temp<<5)&0xe0);
x16dote[1][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[2][i];
temp = x12dote[3][i];
j= (j>>3)|(temp<<5);
x16dote[2][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[3][i];
temp = x12dote[4][i];
j= ((j>>3)&0x01)|(temp<<2);
x16dote[3][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[4][i];
temp = x12dote[5][i];
j = (j>>6)|(temp<<2);
temp = x12dote[6][i];
j = j|(temp<<7);
x16dote[4][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[6][i];
temp = x12dote[7][i];
j= (j>>1)|(temp<<7);
x16dote[5][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[7][i];
temp = x12dote[8][i];
j= ((j>>1)&0x07)|(temp<<4);
x16dote[6][i] = j;
}
for(i=0;i<128;i++)
{ j = x12dote[8][i];
temp = x12dote[9][i];
j= (j>>4)|(temp<<4);
x16dote[7][i] = j;
}
}
//--------------------------
void beginmap(uchar number)
{
uchar data i,j,k,temp;
uint16 data hzaddr;
//uchar * discodeprt;
extern uchar code startbamp[];
A17 = 1;
A16 = 1;
hzaddr = 0x8700;
/* if(number==3)
discodeprt = startbamp;
if(number==2)
discodeprt = x16dote;
*/ for(i=0xb8;i<0xc0;i++)
{
for(j=0;j<number;j++)
{
Feedingdog();
if(j==0)
{ p1tune(mcs138=LCDCS1);
lcdwcommd(i);lcdwcommd(0x40);
}
if(j==1)
{ p1tune(mcs138=LCDCS2);
lcdwcommd(i);lcdwcommd(0x40);
}
if(j==2)
{ p1tune(mcs138=LCDCS3);
lcdwcommd(i);lcdwcommd(0x40);
}
LCDRWIO=1;
LCDDIIO=1;
p1tune(ROMCS);
for(k=0;k<32;k++)
{ temp=XBYTE[hzaddr++];
disdata[k]=temp;
}
p1tune(mcs138);
for(k=0;k<32;k++)
{ temp = disdata[k];
//temp = *(discodeprt++);
temp = bytetune(temp);
lcdwdata(temp);
}
LCDRWIO=1;
LCDDIIO=1;
p1tune(ROMCS);
for(k=0;k<32;k++)
{ temp=XBYTE[hzaddr++];
disdata[k]=temp;
}
p1tune(mcs138);
for(k=0;k<32;k++)
{ temp = disdata[k];
//temp = *(discodeprt++);
temp = bytetune(temp);
lcdwdata(temp);
}
}
}
A17 = 0;
A16 = 0;
}
void beginmap1() //将x16dote[8][128]存储的5*16点阵送LCD显示
{
uchar data i,j,k,temp;
uchar xdata * discodeprt;
discodeprt = (uchar xdata *)x16dote;
for(i=0xb8;i<0xc0;i++)
{
for(j=0;j<2;j++)
{
if(j==0)
{ p1tune(mcs138=LCDCS1);
lcdwcommd(i);lcdwcommd(0x40);
}
if(j==1)
{ p1tune(mcs138=LCDCS2);
lcdwcommd(i);lcdwcommd(0x40);
}
for(k=0;k<64;k++)
{
LCDRWIO=1;
LCDDIIO=1;
p1tune(RAMCS);
temp = *(discodeprt++);
p1tune(mcs138);
lcdwdata(temp);
}
}
}
}
//-------------------------------------------------
void gpsmap(void)//显示GPS圆周
{
uchar data i,j,temp;
uchar * discodeprt;
extern uchar code gpsdata[];
discodeprt = gpsdata;
for(i=0xb8;i<0xc0;i++)
{
p1tune(mcs138=LCDCS3);
lcdwcommd(i);lcdwcommd(0x40);
for(j=0;j<64;j++)
{ temp = *(discodeprt++);
temp = bytetune(temp);
lcdwdata(temp);
}
}
}
void gpsfang(void)
{ // 调整方向
uchar data i,j,temp;
uchar * discodeprt;
uint16 data hzaddr;
LCDRWIO=1;
LCDDIIO=1;
p1tune(RAMCS);
//i = speedfang1[0];
//j = speedfang1[1];
// if(fangsign)
// if((j==13)&&(i<5))
// return;
fangsign = 1;
i = (speedfang[5])&0x0f;
j = speedfang[6];
if(j!=0x2e)
{ i=(i*10)+(j&0x0f);
j = speedfang[7];
if(j==0x2e)
i=(i/5); //方向的度数为二位数
else
i=(2*i)+(j&0x0f)/5; //方向的度数为三位数 注:小点后的数忽略
}
else i=i/5; // 方向的度数为一位数
// 以上是度数除以5后,最大值为72,然后再分为8个方向
for(j=0;j<10;j++)
{ temp = * discodeprt++; // temp = 00--72值 且i小于72
if(i<temp)
{temp = j;break;} // 八个方向
}
if((j>8)|(j==0))
temp=1;
speedfang[10] = temp;
// discodeprt = fangxian1 +(temp-1)*128; //每幅为1280字节
A16 = 1 ; A17 = 1;
hzaddr = (temp-1)*128;
hzaddr = hzaddr + 0x8f80;
for(i=0xba;i<0xbe;i++)
{ p1tune(mcs138=ROMCS);
for(j=0;j<32;j++)
{ temp = XBYTE[hzaddr++];
disdata[j] = temp ;
}
p1tune(mcs138=LCDCS3);
lcdwcommd(i);lcdwcommd(0x50);
for(j=0;j<32;j++)
{
temp = disdata[j];
temp = bytetune(temp);
lcdwdata(temp);
}
}
A16 = 0 ; A17 = 0;
}
//--------------------------
void dingwroue(void)
{ // 显示定位符号
uchar data i,j;
extern uchar code dingw[2][16];
p1tune(mcs138 = LCDCS1);
lcdwcommd(0xb8); //page 0
lcdwcommd(0x60); //y
for(i=0;i<2;i++)
{
for(j=0;j<16;j++)
lcdwdata(*(*(dingw+i)+j));
lcdwcommd(0xb9); //page
lcdwcommd(0x60); //y
}
}
//-------------------------------------------------
void antennaroue(void)
{ // 显示GSM信号强度的符号
uchar data i,j,temp;
extern uchar code signel[2][16];
p1tune(mcs138 = LCDCS1);
lcdwcommd(0xb8); //page 0
lcdwcommd(0x50); //y
// temp = (antenna/3); // antenna 1--31
if(antenna==0) temp=0;
if((antenna<11)&&(antenna>0)) temp=2; // 1格信号
if((antenna<16)&&(antenna>10)) temp=4; // 2格信号
if((antenna<20)&&(antenna>15)) temp=6; // 3格信号
if((antenna<26)&&(antenna>19)) temp=8; // 4格信号
if((antenna<32)&&(antenna>25)) temp=10; // 5格信号
for(i=0;i<2;i++)
{
for(j=0;j<16;j++)
{
if(temp>j)
lcdwdata(*(*(signel+i)+j));
else
lcdwdata(0x00);
}
lcdwcommd(0xb9); //page
lcdwcommd(0x50); //y
} // 以上是信号强度 temp是等级2 4 6 8 10 等级
}
//--------------------------------------------------------
/*
void disonenews (uchar * dataprt)
{
uchar data i=0,j=0,temphi=0,templow=0;
uchar * discodeprt=dataprt;
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
// discodeprt=dataprt;
for(i=0;i<4;i++)
{ // i 为行的标志
for(j=0;j<24;j++)
{ LCDRWIO=1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -