📄 19264cv0_1.c
字号:
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++)
{
Feedingdog();
temp=XBYTE[hzaddr++];
disdata[k]=temp;
}
p1tune(mcs138);
for(k=0;k<32;k++)
{
Feedingdog();
temp = disdata[k];
//temp = *(discodeprt++);
temp = bytetune(temp);
lcdwdata(temp);
}
LCDRWIO=1;
LCDDIIO=1;
p1tune(ROMCS);
for(k=0;k<32;k++)
{
Feedingdog();
temp=XBYTE[hzaddr++];
disdata[k]=temp;
}
p1tune(mcs138);
for(k=0;k<32;k++)
{
Feedingdog();
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];
if(bGSM_GPRS)
{
putBmp16(&Bmp16_Gprs[0],0,2);
}
else
{
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;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
temphi = *(discodeprt+j+i*24);
if(temphi==0x0a)
{
for(;i<4;i++)
{ for(;j<24;j++)
Dispchar(i*2,j,0x20,0);
j=0;
}
break;
}
if(temphi<0x7f)
Dispchar(i*2,j,temphi,0);
else
{if(j==23)
{Dispchar(i*2,j,0x20,0);continue;}
templow=*(discodeprt+(++j)+i*24);
disromdata(temphi,templow);
disdatatune();
Dispchin(i*2,(j-1),0);
//Dispchin(i*2,(j-1),temphi,templow,0);
}
}
Feedingdog();
LCDRWIO=1;
LCDDIIO=1;
p1tune(mcs138=RAMCS);
for(j=0,temphi=0;j<24;j++)
{ // 检测此行有多少个单字节数
templow=*(discodeprt+j+i*24);
if(templow<0x7f) temphi++;
}
templow = temphi%2; //根据单字节数 调整指针是否减1
if(templow==1)discodeprt--;
}
}
*/
/*void disnonews(void)
{ // 显示"无 数 据 " 信息
//extern uchar code eaxmine2;
uchar data i=0,j=0,temp=0;
displaynop(); lcdclose(); lcdiniton();//开显示
disromdata(0xce,0xde);
disdatatune();
Dispchin(2,6,0);
// Dispchin(2,6,0xce,0xde,0);
disromdata(0xca,0xfd);
disdatatune();
Dispchin(2,10,0);
// Dispchin(2,10,0xca,0xfd,0);
disromdata(0xbe,0xdd);
disdatatune();
Dispchin(2,14,0);
// Dispchin(2,14,0xbe,0xdd,0);
for(i=0,j=4;i<16;i++)
{ temp = eaxmine2[i++];
disromdata(temp,eaxmine2[i]);
disdatatune();
Dispchin(5,j,0); j +=2;
}
}
*/
void dispnewsnumb(void)
{ // 显示接收信息的条数、以及未读信息的条数。
uchar data temp=0;
uchar code * discodeprt;
extern uchar code screen1[24];
//discodeprt=screen1;
//displayline(6,discodeprt,0);
/*
temp=InforTotal; //总的信息计数器
Dispchar(6,4,(((temp/10)|0x30)),0);
Dispchar(6,5,((temp%10)|0x30),0);
temp=NoReadInfoCnt;//未读信息计数器
Dispchar(6,14,((((temp/10)&0x0f)|0x30)),0);
Dispchar(6,15,(((temp%10)&0x0f)|0x30),0);
*/
uchar code * discodeprt2;
discodeprt=&Bmp16_SMS[0];
discodeprt2=&Bmp16_Phone[0];
displayline3(6);
if(NoReadInfoCnt>0)
{
putBmp16(discodeprt,6,10);//显示信息图标
temp=NoReadCmdCnt+NoReadConveneCnt;
Dispchar(6,12,((((temp/10)&0x0f)|0x30)),0);//显示调度信息条数
Dispchar(6,13,(((temp%10)&0x0f)|0x30),0);
Dispchar(6,14,0x2d,0);//"-"
temp=NoReadSmsCnt+NoReadGprsCommCnt;
Dispchar(6,15,((((temp/10)&0x0f)|0x30)),0);//显示公共信息条数
Dispchar(6,16,(((temp%10)&0x0f)|0x30),0);
//for debug start
/*
Dispchar(6,0,((((NoReadConveneCnt/10)&0x0f)|0x30)),0);//显示电召信息条数
Dispchar(6,1,(((NoReadConveneCnt%10)&0x0f)|0x30),0);
Dispchar(6,2,((((NoReadCmdCnt/10)&0x0f)|0x30)),0);//显示调度信息条数
Dispchar(6,3,(((NoReadCmdCnt%10)&0x0f)|0x30),0);
Dispchar(6,4,((((TotalWorkRec/10)&0x0f)|0x30)),0);//显示总业务记录信息条数
Dispchar(6,5,(((TotalWorkRec%10)&0x0f)|0x30),0);
Dispchar(6,6,((((NoReadGprsCommCnt/10)&0x0f)|0x30)),0);//显示公共GPRS信息条数
Dispchar(6,7,(((NoReadGprsCommCnt%10)&0x0f)|0x30),0);
Dispchar(6,8,((((NoReadSmsCnt/10)&0x0f)|0x30)),0);//显示公共SMS信息条数
Dispchar(6,9,(((NoReadSmsCnt%10)&0x0f)|0x30),0);
Dispchar(6,10,((((CommTotal/10)&0x0f)|0x30)),0);//显示总公共信息条数
Dispchar(6,11,(((CommTotal%10)&0x0f)|0x30),0);
*/
//for debug end
}
p1tune(RAMCS);
if(NoTalkCnt>0)
{
putBmp16(discodeprt2,6,19);//显示来电的符号
Dispchar(6,21,number_ascii((NoTalkCnt/10)),0); //电话条数
Dispchar(6,22,number_ascii((N
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -