⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcdapi.c

📁 EDN板之PS2键盘接口程序-- 单片机殿堂
💻 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 + -