📄 disp1.c
字号:
}
void hz(WORD addr,WORD i)//显示汉字
{
BYTE j;
WC(0X4c);
i--;
i*=32;
for(j=0;j<32;j++)
{
WC(0X46);
WD_WC(LOBYTE(addr));
WD_WC(HIBYTE(addr));
WC(0X42);
WD_WC(dots[i+j]);
j++;
WC(0X42);
WD_WC(dots[i+j]);
addr+=40;
}
}
void wordtostr(BYTE *str,DWORD v,WORD base)
{
BYTE i,j,k,u;
DWORD buf[7],l;
v*=((DWORD)base);
k=u=0;
l=1;
for(i=0;i<7;i++)
{
buf[6-i]=l;
l=l*10;
}
for(i=0;i<7;i++)
{
j=0;
while(v>=buf[i])
{
v-=buf[i];
j++;
}
if(i==4)
{
k=1;
str[u++]=0x2e;
}
if(k==0 && j>0)k=0x1;
if(u>4)
{
if(str[0]==0x2e)
{str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';return;}
else return;
}
if(k)str[u++]=0x30+j;
}
if(u>4)
{
if(str[0]==0x2e)
{str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';return;}
else return;
}
str[u++]=v+0x30;
if(str[0]==0x2e)
{str[4]=str[3];str[3]=str[2];str[2]=str[1];str[1]=str[0];str[0]='0';}
}
void disp_str(int addr, BYTE str[],BYTE len)
{
BYTE i;
WC(0X46);
WD_WC(LOBYTE(addr));
WD_WC(HIBYTE(addr));
WC(0X4c);
for(i=0;i<len;i++)
{
WC(0X42);
WD_WC(str[i]);
}
}
void disp_cstr(int addr, const BYTE str[],BYTE len)
{
BYTE i;
WC(0X46);
WD_WC(LOBYTE(addr));
WD_WC(HIBYTE(addr));
WC(0X4c);
for(i=0;i<len;i++)
{
WC(0X42);
WD_WC(str[i]);
}
}
void disp1(void)
{
BYTE i;
WORD j;
clear1();
clear2();
WC(0X4C);
WC(0X46);
WD_WC(0Xf8);
WD_WC(0x03);
for(i=0;i<16;i++)
{
WC(0X42);
WD_WC(str1[i]);
}
WC(0X4C);
WC(0X46);
WD_WC(0X20);
WD_WC(0x04);
for(i=0;i<16;i++)
{
WC(0X42);
WD_WC(str2[i]);
}
for (i=1,j=0x0a0e;i<5;i++,j+=3)
{
hz_D(j,i);
}
for (i=5,j=0x0fa5;i<14;i++,j+=3)
{
hz_D(j,i);
}
for (i=1,j=0x20b8;i<13;i++,j++,j++)
{
hz(j,i);
}
}
void disp2(void)
{
BYTE i;
WORD j;
clear1();
clear2();
for (i=13,j=0x055a;i<22;i++,j++,j++)//55a 4ba
hz(j,i);
for (i=22,j=0x0911;i<26;i++,j++,j++)//911 871
hz(j,i);
for (i=26,j=0x0cd3;i<28;i++,j++,j++)//cd3 c33
hz(j,i);
for (i=28,j=0x1093;i<30;i++,j++,j++)//1093 ff3
hz(j,i);
for (i=30,j=0x01453;i<32;i++,j++,j++)//1453 13b3
hz(j,i);
for (i=32,j=0x1813;i<34;i++,j++,j++)//1813 1773
hz(j,i);
for (i=34,j=0x1bd3;i<36;i++,j++,j++)//1bd3 1b33
hz(j,i);
for (i=60,j=0x0929;i<63;i++,j++,j++)//929 889
hz(j,i);
for (i=42,j=0x092d;i<44;i++,j++,j++)//92d 88d
hz(j,i);
for (i=26,j=0x0ceb;i<28;i++,j++,j++)//ceb c4b
hz(j,i);
for (i=42,j=0x0cef;i<44;i++,j++,j++)//cef c4f
hz(j,i);
for (i=28,j=0x10ab;i<30;i++,j++,j++)//10ab 100b
hz(j,i);
for (i=42,j=0x10af;i<44;i++,j++,j++)//10af 100f
hz(j,i);
for (i=30,j=0x146b;i<32;i++,j++,j++)//146b 13cb
hz(j,i);
for (i=42,j=0x146f;i<44;i++,j++,j++)//146f 13cf
hz(j,i);
for (i=32,j=0x182b;i<34;i++,j++,j++)//182b 178b
hz(j,i);
for (i=42,j=0x182f;i<44;i++,j++,j++)//182f 178f
hz(j,i);
for (i=34,j=0x1beb;i<36;i++,j++,j++)//1beb 1b4b
hz(j,i);
for (i=42,j=0x1bef;i<44;i++,j++,j++)//1bef 1b4f
hz(j,i);
disp_str(0x128,V,1);
disp_str(0x1a0,D,2);
disp_str(0x218,L,1);
disp_str(0x290,kmh,4);
disp_str(0x308,kmh,4);
}
void disp_info(void)
{
BYTE i;
WORD j;
clear3();
if(Lsign & 0x01)
{
for(i=1,j=0x0132;i<6;i++)
{
WC(0X4C);
WC(0X46);
WD_WC(LOBYTE(j));
WD_WC(HIBYTE(j));
WC(0X42);
WD_WC(0xa0);
WD_WC(0xa0);
j+=120;
}
address+=120;
if(address>0x312) address=0x0132;
WC(0X4C);
WC(0X46);
WD_WC(LOBYTE(address));
WD_WC(HIBYTE(address));
WC(0X42);
WD_WC(0x7e);
}
if(Lsign & 0x20)
{
for (i=36,j=0x253f;i<40;i++,j++,j++)
hz(j,i);
}
if(Lsign & 0x40)
{
for (i=36,j=0x253f;i<38;i++,j++,j++)
hz(j,i);
for (i=40,j=0x2543;i<42;i++,j++,j++)
hz(j,i);
}
if(Lsign & 0x80)
{
for (i=42,j=0x253f;i<47;i++,j++,j++)
hz(j,i);
}
if(alarm == 0x0f)
{
for (i=52,j=0x253a;i<57;i++,j++,j++)
hz(j,i);
for (i=57,j=0x2547;i<61;i++,j++,j++)
hz(j,i);
hz(0x254f,53);
}
if(alarm == 0xff)
{
for (i=47,j=0x253f;i<49;i++,j++,j++)
hz(j,i);
for (i=40,j=0x2543;i<42;i++,j++,j++)
hz(j,i);
}
}
void disp_para(void)
{
wordtostr(str,999,100);
if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
else str[5]=0x80;
disp_str(0x122,str,5);
wordtostr(str,999,100);
if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
else str[5]=0x80;
disp_str(0x19a,str,5);
wordtostr(str,999,100);
if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
else str[5]=0x80;
disp_str(0x212,str,5);
wordtostr(str,999,100);
if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
else str[5]=0x80;
disp_str(0x28a,str,5);
wordtostr(str,999,100);
if(str[4]==0x2e) {str[4]=0x80;str[5]=' ';}
else str[5]=0x80;
disp_str(0x302,str,5);
}
void main(void)
{
initLCD();
disp1();
disp2();
disp_para();
Lsign=0x01;
disp_info();
Lsign=0x20;
alarm=0x00;
disp_info();
Lsign=0x40;
disp_info();
Lsign=0x80;
disp_info();
Lsign=0x00;
alarm=0x0f;
disp_info();
Lsign=0x01;
disp_info();
disp_info();
disp_info();
disp_info();
disp_info();
disp_info();
disp_info();
disp_info();
disp_info();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -