📄 显示程序.h
字号:
/**********************************************************************
函 数 名:
功 能:输出16点阵汉字
说 明:
调 用:
入口参数:
x X轴坐标
y Y轴坐标
z 字符间空格数
color 输出颜色,1表示亮,0表示不亮
row X轴放大倍数
col Y轴放大倍数
s 输出汉字
返 回 值:int
设 计:劳 日 期:
修 改: 日 期:
***********************************************************************/
///*
void putpixel(int x,int y,int color, char (* s1)[max_x/8])
{
unsigned int i,j;
if(x>=0&&y>=0)
{
i=x/8;
j=x%8;
if(color==0)
s1[y][i] &= (~(0x80>>j));
//s1[y][k] &= (~(0x1<<(7+i*8-x)));
else if(color==1)
s1[y][i] |= (0x80>>j);
//s1[y][k] |= (0x1<<(7+i*8-x));
else if(color==2)
s1[y][i] ^= (0x80>>j);//使该位翻转
}
}
//*/
/**********************************************************************
函 数 名:
功 能:输出16点阵汉字
说 明:
调 用:
入口参数:
x X轴坐标
y Y轴坐标
z 0表示当1时亮0时暗,1表示当1时暗0亮
color 输出颜色
row X轴放大倍数
col Y轴放大倍数
s 输出汉字
返 回 值:int
设 计:劳 日 期:
修 改: 日 期:
***********************************************************************/
///*
void chinese16(int x,int y,int z,int color,int row,int col,char *s , char (*s1)[max_x/8])
{
char buffer[32]; //buffer用来存储一个汉字
U8 m,n,i,j,k;
unsigned char qh,wh;
unsigned int offset;
qh=*(s)-0xa0; //汉字区码
wh=*(s+1)-0xa0; //汉字位码
offset=(94*(qh-1)+(wh-1))*32; //计算该汉字在字库中偏移量
FlashRead(ROM_CHINESE+offset,(U16 *)buffer,32);//取出汉字72字节的点阵字模存入buffer中(一个汉字)
for(i=0;i<16;i++) //将72位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示汉字
for(n=0;n<row;n++)
for(j=0;j<2;j++)
for(k=0;k<8;k++)
for(m=0;m<col;m++)
if (((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
//putpixel(x+8*j*col+k*col+m,y+i*row+n,color,s1);
putpixel(x+8*j*col+k*col+m,y+i*row+n,color,s1);
else
putpixel(x+8*j*col+k*col+m,y+i*row+n,!color,s1);
}
//*/
/**********************************************************************
函 数 名:
功 能:输出8*16点阵asc码
说 明:
调 用:
入口参数:
x X轴坐标
y Y轴坐标
z 0表示当1时亮0时暗,1表示当1时暗0亮
color 输出颜色
row X轴放大倍数
col Y轴放大倍数
s 输出汉字
返 回 值:int
设 计:劳 日 期:
修 改: 日 期:
***********************************************************************/
///*
void put_asc(int x,int y,int z,int color,int row,int col,char s, char (*s1)[max_x/8])
{
char buffer[16]; //buffer用来存储一个asc码
U8 m,n,i,k;
unsigned int offset;
offset=s * 16; //计算该asc码在字库中偏移量
FlashRead(ROM_ASC+offset,(U16 *)buffer,16);//取出汉字asc码16字节的点阵字模存入buffer中
for(i=0;i<16;i++) //将16字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示asc
for(n=0;n<row;n++)
for(k=0;k<8;k++)
for(m=0;m<col;m++)
if (((buffer[i]>>(7-k))&0x1)!=NULL)
//putpixel(x+k*col+m,y+i*row+n,color,s1);
putpixel(x+k*col+m,y+i*row+n,color,s1);
else
putpixel(x+k*col+m,y+i*row+n,!color,s1);
}
//*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -