📄 xd2008_ds_hz.h
字号:
/*-----------有关显示字模-------------------*/
unsigned int code dis_numb1[16]={0x4000,0x4FFE,0x4814,0x4824,0x4844,0x7F84,0x4804,0x4804,
0x4804,0x7F84,0x4844,0x4844,0x4844,0x4FFE,0x4000,0x0000};//西
unsigned int code dis_numb2[16]={0x0101,0x0901,0x3101,0x2102,0x21E2,0x2F14,0xA514,0x6108,
0x2114,0x2124,0x21C2,0x2103,0x2902,0x3100,0x2100,0x0000};//安
unsigned int code dis_numb3[16]={0x0000,0x0000,0x1FF0,0x1220,0x1220,0x1220,0x1220,0xFFFC,
0x1222,0x1222,0x1222,0x1222,0x1FF2,0x0002,0x000E,0x0000};//电
unsigned int code dis_numb4[16]={0x0080,0x0080,0x4080,0x4080,0x4080,0x4082,0x4081,0x47FE,
0x4880,0x5080,0x6080,0x4080,0x0080,0x0180,0x0080,0x0000};//子
unsigned int code dis_numb5[16]={0x0820,0x4840,0x4980,0x4E00,0x7FFF,0x8A00,0x8920,0x0020,
0x4420,0x3340,0x0040,0x0040,0xFFFF,0x0080,0x0080,0x0000};//科
unsigned int code dis_numb6[16]={0x1080,0x1082,0x1101,0xFFFE,0x1200,0x1402,0x0002,0x1304,
0x12C8,0x1230,0xFE30,0x1248,0x1384,0x1206,0x1004,0x0000};//技
unsigned int code dis_numb7[16]={0x0400,0x0401,0x0402,0x0404,0x0408,0x0430,0x05C0,0xFE00,
0x0580,0x0460,0x0410,0x040C,0x0406,0x0403,0x0402,0x0000};//大
unsigned int code dis_numb8[16]={0x0200,0x0C40,0x0840,0x4840,0x3A40,0x2A40,0x0A42,0x8A41,
0x7AFE,0x2B40,0x0A40,0x1840,0xEA40,0x4C40,0x0840,0x0000};//学
unsigned int code dis_numb0[16]={0x0000,0x0060,0x03E0,0x0F90,0x3F88,0x3D84,0x6184,0x7D80,
0x7D80,0x21C4,0x3FE4,0x1FC0,0x0F90,0x01D8,0x0040,0x0000};//Q
unsigned int code dis_numbz1[16]={0x0000,0x1010,0x3838,0x14C0,0x1100,0x1000,0x17FC,0x5002,
0xF084,0x19C0,0x0430,0xC208,0x3400,0x0FFE,0x0200,0x0100};//你
unsigned int code dis_numbz2[16]={0x0000,0x0100,0x4100,0x6100,0x5100,0x4FFE,0x4101,0x4102,
0x4100,0x0104,0x0FCE,0x0830,0xF828,0x0F44,0x08C2,0x0801};//好
unsigned int code dis_numbz3[16]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000};//!
unsigned int code dis_numbz[]={
//不显示
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
//实
0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,
0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000,
//践
0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,
0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,
//很
0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,
0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,
//重
0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,
0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,
//要
0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,
0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,
//!
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
unsigned int code dis_numbz0[]={
//不显示
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
//!
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0FFA,0x0000,0x0000,0x0000,
//要
0x0000,0x4040,0x4042,0x5F43,0x5264,0x5254,0x7E48,0x5248,
0x5248,0x5254,0x7FD4,0x5272,0x5242,0x5F41,0x4041,0x4040,
//重
0x0000,0x1002,0x1002,0x1012,0x97D2,0x9552,0x9552,0x9552,
0xFFFE,0x5552,0x5552,0x5552,0x57D2,0x5012,0x1002,0x1002,
//很
0x0000,0x0004,0x0046,0x7ECC,0x5258,0x5220,0x53C8,0x5204,
0x5202,0x7FFF,0x0002,0x5800,0xC400,0x23FF,0x1100,0x0880,
//践
0x0000,0x0906,0x2941,0x3922,0x491C,0x0970,0xFF88,0x0484,
0x0482,0x0008,0x7C88,0x4488,0x47FC,0x4404,0x7CFC,0x0004,
//实
0x0000,0x2040,0x3040,0x2842,0x2047,0x2048,0x2050,0x6FE0,
0xA050,0x2948,0x2DC4,0x3242,0x2042,0x3041,0x0841,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};
unsigned int code r_numb0[]={
0x03C0,0x0FF0,0x3818,0x6004,0x6006,0xC003,0x8003,0x8001,//图形
0x8001,0x8003,0xC003,0xC006,0x6006,0x300C,0x1C38,0x07E0};
unsigned int code r_numb1[]={
0x0000,0x0FF0,0x0C30,0x0C30,0x0C30,0x7FFE,0x4C36,0x4C36,//图形
0x4C36,0x4C36,0x4FF6,0x4006,0x4006,0x7FFE,0x7FFE,0x0000};
unsigned int code r_numb2[]={
0xFFFF,0xF00F,0xF3CF,0xF3CF,0xF3CF,0x8001,0xB3C9,0xB3C9,//图形
0xB3C9,0xB3C9,0xB009,0xBFF9,0xBFF9,0x8001,0x8001,0xFFFF};
unsigned int code d_num55[]={0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,
0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555,0x5555};
unsigned int code d_numaa[]={0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,
0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa,0xaaaa};
unsigned char code d_num[]={0x00,0x00,0x7c,0x82,0x82,0x82,0x7c,0x00,//0
0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,//1
0x00,0x00,0x72,0x92,0x92,0x92,0x4C,0x00,//2
0x00,0x00,0x6C,0x92,0x92,0x92,0x00,0x00,//3
0x00,0x00,0x10,0xFE,0x10,0x10,0xF0,0x00,//4
0x00,0x00,0x8C,0x92,0x92,0xF2,0x00,0x00,//5
0x00,0x00,0x0C,0x92,0x92,0x92,0x7C,0x00,//6
0x00,0x00,0xFE,0x80,0x80,0x80,0x80,0x00,//7
0x00,0x00,0x7C,0x92,0x92,0x92,0x7C,0x00,//8
0x00,0x00,0x7C,0x92,0x92,0x92,0x60,0x00};//9
/*
*/
void display_r(unsigned int numb) //显示一列数据
{ unsigned char i;
unsigned int x;
x=~numb;
LEDALE=0,LEDCLK=0;
for(i=0;i<16;i++)
{
/* if (x & 0x8000) LEDDI=1;
else LEDDI=0;*/
LEDDI=(bit)(x & 0x8000);
LEDCLK=1;LEDCLK=1;//delay_s(2);
LEDCLK=0;LEDCLK=0;//delay_s(2);
x=x<<1;
}
Y0=led123 | 0x80; //关显示器
LEDALE=1;//delay_s(2);
LEDALE=0;
}
//point 是小数点=1显示,=0不显示
void display_char(unsigned char n1,n2,n3,n4,point) //显示个汉字
{ unsigned char k1,k2,j;
unsigned int x;
unsigned char y0data=0,abcd=0,y1,y2;
k1=n2*8;k2=n4*8;
if(point==0)
{
for (j=0;j<8;j++)
{
y1=d_num[k1+j];
y2=d_num[k2+j];
x=y1*256+y2;
display_r(x);//显示一列
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
abcd=j+1;
delay_s(0x40);
}
}
else
{
for (j=0;j<8;j++)
{
if(j==0) y1=(d_num[k1+j])|0x2;
else y1=d_num[k1+j];
y2=d_num[k2+j];
x=y1*256+y2;
display_r(x);//显示一列
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
abcd=j+1;
delay_s(0x40);
}
}
k1=n1*8;k2=n3*8;
abcd=8;
for (j=0;j<8;j++)
{
y1=d_num[k1+j];
y2=d_num[k2+j];
x=y1*256+y2;
display_r(x);//显示一列
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
abcd=j+9;
delay_s(0x40);
}
}
//--------------------------------------------
void disp_16r(unsigned int numb[])//反显示
{
unsigned char y0data=0,abcd=0,i,j;
j=15;
for(i=0;i<16;i++)
{
display_r(numb[j]);
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
abcd=i+1;
j--;
delay_s(0x40);
}
Y0=led123 | 0x80; //关显示器
}
void disp_16rz(unsigned int numb[])//正显示16×16
{
unsigned char y0data=0,abcd=0,i;
for(i=0;i<16;i++)
{
display_r(numb[i]);//正显示
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
abcd=i+1;
delay_s(0x40);
}
Y0=led123 | 0x80; //关显示器
}
void dis_xd(unsigned char delay_n) //跳跃显示
{
unsigned char n,i;
unsigned int j;
n=delay_n;
j=0x300;
while (1)
{
led123=0x01;
for(i=0;i<n;i++)
{
disp_16r(dis_numb1); //西
delay_l(j);
if (K1==0) goto quit_xd1;
}
for(i=0;i<n;i++)
{
disp_16r(dis_numb2); //安
delay_l(j);
if (K1==0) goto quit_xd1;
}
for(i=0;i<n;i++)
{
disp_16r(dis_numb3); //电
delay_l(j);
if (K1==0) goto quit_xd1;
}
led123=0x02;
for(i=0;i<n;i++)
{
disp_16r(dis_numb4); //子
delay_l(j);
if (K1==0) goto quit_xd1;
}
for(i=0;i<n;i++)
{
disp_16r(dis_numb5); //科
delay_l(j);
if (K1==0) goto quit_xd1;
}
for(i=0;i<n;i++)
{
disp_16r(dis_numb6); //技
delay_l(j);
if (K1==0) goto quit_xd1;
}
led123=0x04;
for(i=0;i<n;i++)
{
disp_16r(dis_numb7); //大
delay_l(j);
if (K1==0) goto quit_xd1;
}
for(i=0;i<n;i++)
{
disp_16r(dis_numb8);//学
delay_l(j);
if (K1==0) goto quit_xd1;
}
led123=0x01;
}
quit_xd1:
speak_2();
}
/*-------------动态显示图形-------------*/
void disp_phzR( unsigned int *num)//正显示16×16
{
unsigned char y0data=0,abcd=0,i;
for(i=0;i<16;i++)
{
display_r( *num);//正显示
abcd=abcd<<3;
y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
num++;
abcd=i+1;
delay_s(0x40);
}
Y0=led123 | 0x80; //关显示器
}
//---n是延时数据0-255------
void disp_7hz_R(unsigned char n)//右移汉字
{
unsigned char i,k;
unsigned int *p;
while(1)
{
for(k=0;k<0x68;k++) //7个汉字//0x70
{
p= &dis_numbz[k]; //取列数据的地址
for(i=0;i<n;i++) //延时n次
{
disp_phzR(p); //显示一个汉字
if(K1==0) goto quit_7hz;
}
led123=~led123;
}//延时n次
speak(0x800);
}
quit_7hz:
speak_2();
while(K1==0);delay_l(0x4000);
}
//---n是延时数据0-255------
void disp_7hz_L(unsigned char n)//左移汉字
{
unsigned char i,k;
unsigned int *p;
while(1)
{
for(k=0;k<0x68;k++) //7个汉字 //0x70
{
p= &dis_numbz0[0x70-k]; //取列数据的地址
for(i=0;i<n;i++) //延时n次
{
disp_phzR(p); //显示一个汉字
if(K1==0) goto quit_7hz;
}
led123=~led123;
}//延时n次
speak(0x800);
}
quit_7hz:
speak_2();
while(K1==0);delay_l(0x4000);
}
/*---------显示温度函数---------*/
void display_wd(void)
{ unsigned int a;
float t;
pot=1;//显示小数点
while(K1==1)
{
//clwd:
t=Read_Temperature();
//EA=1;
//if((t>130)|| (t <0)) goto clwd;
a=t*100;
qs=(unsigned char)(a/1000);
bs=(unsigned char)(a%1000/100);
ss=(unsigned char)(a%100/10);
gs=(unsigned char)(a%10);
//printf("\n qs=%d bs=%d ss=%d gs=%d",(unsigned int)qs,(unsigned int)bs,(unsigned int)ss,(unsigned int)gs);
printf("\n%.3f",t);
led123=~led123;
}
}
/*---------显示增1函数---------【演示】*/
void display_123(void)
{ unsigned int a;
pot=0;
while(K1==1)
{
for(a=0;a<9999;a++)
{
qs=(unsigned char)(a/1000);
bs=(unsigned char)(a%1000/100);
ss=(unsigned char)(a%100/10);
gs=(unsigned char)(a%10);
delay_l(0x3000);
led123=~led123;
if(K1==0) goto sub1;
}
}
sub1:
;
}
/*-------显示图形----------*/
void disp_tx1(void)
{
unsigned int idata i;
led123=0x05;
for(i=0;i<0x80;i++)
{
//disp_16r(dis_numb0); //Q
disp_16r(r_numb1);
delay_l(0x100);
led123=~led123;
if (K1==0) goto quit_xdq;
}
quit_xdq:
speak_2();
while(K1==0);
}
void disp_tx2(void)
{
unsigned int idata i;
led123=0x05;
for(i=0;i<0x80;i++)
{
//disp_16r(dis_numb0); //Q
disp_16r(r_numb2);
delay_l(0x80);
led123=~led123;
if (K1==0) goto quit_xdq;
}
quit_xdq:
speak_2();
while(K1==0);
}
/*-------全屏测试---------*/
void disp_55_aa(unsigned int x,y)
{unsigned int j;
for(j=1;j<0x50;j++)//0x50次自动跳出
{
unsigned int idata i;
led123=~led123;
for(i=0;i<x;i++)
{
disp_16r(d_num55); //显示55H
if (K1==0) goto quit_55;
}
delay_l(y);
for(i=0;i<x;i++)
{
disp_16r(d_numaa); //显示AAH
if (K1==0) goto quit_55;
}
}
quit_55:
speak_2();
while(K1==0);
}
//-----------练习程序----------------
void disp_16line( unsigned int y)//正显示16×16
{
unsigned char idata y0data=0,abcd=0,i,j,k;
unsigned int idata x;
for(i=0;i<16;i++)
{
x=0x8000;
//display_r(x);//正显示一列
//y0data=abcd |(led123 & 0x07);
abcd=abcd<<3;
for(k=0;k<16;k++)
{
display_r(x);//正显示一列
y0data=abcd |(led123 & 0x07);
for(j=0;j<0x40;j++)
{
//display_r(x);//正显示一列
//y0data=abcd |(led123 & 0x07);
Y0=y0data; //显示一列数据
}
delay_l(y);
x=x>>1;
if(K1==0) goto quit_line;
}
//abcd=abcd<<3;
//y0data=abcd |(led123 & 0x07);
//Y0=y0data; //显示一列数据
delay_l(0x2000);
abcd=i+1;
speak(0x500);
led123=~led123;
}
quit_line:
//while(K1==0);
//speak_2();
Y0=led123 | 0x80; //关显示器
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -