📄 lcdapi.c
字号:
#include "lcdapi.h"
#include "3310.h"
#include "asclib.h"
#include "hzlib.h"
/*功能:发送ASCII点阵数据
*性质:文件内部使用
*参数:列地址,行地址,字符
*返回:无
*/
void DispAsc( uchar x, uchar y, uchar *asc )
{
uchar i,j,*ptr;
ptr = &ASCII816[(*asc-0x20)*16];
for( j=0; j<ASC_HEIGHT/8; j++ )
{
for( i=0; i<ASC_WIDTH;i++ )
{
LCD_SetAddr( x+i,y+j );
WriteByte(*ptr, MODE_DATA);
ptr++;
}
}
}
/*功能:发送汉字点阵数据
*性质:文件外部使用
*参数:列地址,行地址,汉字
*返回:0没有找到汉字,1操作成功
*/
uchar DispHz( uchar x, uchar y, uchar *hz )
{
uchar i,m,n,hznum;
hznum = sizeof(GB_16)/sizeof(GB_16[0]);
for(i=0;i<hznum;i++)
{
if(*hz == GB_16[i].Index[0] && *(hz+1) == GB_16[i].Index[1])
break;
}
if( i==hznum ) //没有找到需要的汉字
return 0;
for( m=0; m<HZ_HEIGHT/8; m++ )
{
for( n=0; n<HZ_WIDTH; n++ )
{
LCD_SetAddr( x+n,y+m );
WriteByte(GB_16[i].HzLib[m*16+n], MODE_DATA);
}
}
return 1;
}
/*功能:混合显示ASCII及汉字
*性质:文件外部使用
*参数:列地址,行地址,字符串
*返回:无
*/
void DispString( uchar x, uchar y, uchar *str )
{
while( *str )
{
if( *str<128 )
{
DispAsc( x, y, str);
str++;
x += 8;
}
else
{
DispHz( x, y, str);
str+=2;
x+=16;
}
}
}
/*功能:显示BMP位图
*性质:文件外部使用
*参数:列地址,行地址,宽度,高度,字符串
*返回:无
*/
void DrawBmp( uchar x, uchar y, uchar xsize, uchar ysize, uchar *bmpptr )
{
uchar i,j,ymax;
ymax = ysize/8;
if( ysize%8 )
ymax+=1;
for( j=0; j<ymax; j++ )
{
for( i=0; i<xsize; i++ )
{
LCD_SetAddr( x+i, y+j );
WriteByte(*bmpptr++, MODE_DATA);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -