正点原子显示取模汉字

本文章通过正点原子的视频改动LCD_ShowChar函数,通过PCtoLCD2002取模,实现显示任意大小字符。

下面以‘人’为例,通过PCtoLCD2002取模:

按照正点原子下的LCD例程设设置PCtoLCD2002

以16*16的‘人’进行取模

取的数组为(2字节*16==32字节)

uint8_t ren[32] = {0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x30,0x00,0xC0,0x03,0x00,0xFC,0x00,0x03,0x00,0x00,0xC0,0x00,0x30,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x00};

 改装LCD_ShowChar(可以对比原来函数观察差异)

void LCD_ShowChinese(u16 x,u16 y,u8 *num,u8 size,u8 mode)
{  							  
   u8 temp,t1,t;
	u16 y0=y;
	u8 csize=(size/8+((size%8)?1:0))*(size);		//得到字体一个字符对应点阵集所占的字节数	
	for(t=0;t<csize;t++)
	{   
		temp=num[t];
		for(t1=0;t1<8;t1++)
		{			    
			if(temp&0x80)LCD_Fast_DrawPoint(x,y,POINT_COLOR);
			else if(mode==0)LCD_Fast_DrawPoint(x,y,BACK_COLOR);
			temp<<=1;
			y++;
			if(y>=lcddev.height)return;		//超区域了
			if((y-y0)==size)
			{
				y=y0;
				x++;
				if(x>=lcddev.width)return;	//超区域了
				break;
			}
		}  	 
	}  	    	   	 	  
}   

 使用LCD_ShowChinese函数(记得把数组放在同一.c下)

LCD_ShowChinese(30,150,ren,16,0);

实验现象:

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值