51单片机驱动160160点阵显示屏字太大的问题

如题,现在只能24*24显示一个汉字,太大,能不能16*16显示一个汉字。有没有样例程序,求助,急。... 如题,现在只能24*24显示一个汉字,太大,能不能16*16显示一个汉字。有没有样例程序,求助,急。 展开
 我来答
11kxmx
2015-04-29 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2505万
展开全部
字模从哪里来?生成顺序如何?保存在什麼地方?
字模由取字模软件生成的,生成时可设置阴码 阳码,扫描顺序,高位在前在後等选择项,显示程序与此密切相关,生成後可直接以数组的形式写在程序中,也可以保存在SD卡或FLASH中
如果只显示少数几个汉字,则可以把字模以表格等形式写在代码中,如果有显示时要调用大量汉字则要生成字库保存於SD卡或EEPROM中
16*16字模占32字节,1 行是2 个字节
写入原理很简单,就是按照取模时的顺序,一个点一个点逐次写入
以下程序供参考,假设字模存在於表格hanzi[ ][ ]中,一个汉字占32 个字节
逐行扫描 低位在前

输入参数:X,Y是坐标位置 n是汉字编号(一个二维表格里可以存多个汉字假设存20个字表格就是
hanzi[20 ][ 32] ) color是字符颜色

void LCD_Disphanzi(uint16_t x, uint16_t y,uint16_t n,uint16_t color)
{
uint16_t page, column,temp1,temp2;
LCD_OpenWindow(x, y,16, 16); //16 *16
LCD_ILI9341_CMD(0X2C); //这是ILI9341的一个命令

for( page=0; page < 32; page+=2 ) //16行写16次
{
temp1 = hanzi[n][page];//一行的左半部8个点 占一字节
temp2 = hanzi[n][page+1];//一行的右半部8个点 占另一字节

for( column=0; column < 8; column++ )//写左半行 8 个点, 循环8 次
{
if( temp1 & 0x01 ) //取最低位 是1时写入字形的颜色
{
LCD_WR_Data( color );
}
else //是0时写入背景的颜色BACKGROUND
{
LCD_WR_Data( BACKGROUND );
}
temp1>>= 1; //把高位往低位推进
}

for( column=0; column < 8; column++ )//写右半行 8 个点, 循环8 次
{
if( temp2 & 0x01 )
{
LCD_WR_Data( color );
}
else
{
LCD_WR_Data( BACKGROUND );
}
temp2>>= 1;
}

}
}
奥蕾达
2024-11-14 广告
如果说原理的话,液晶是起到一个开关的作用。好比水龙头控制水量,液晶控制着光的通过量。 1 A:透明的不是液晶,而是整个显示系统。液晶显示器中的液晶显示系统在未浮花第拘郢饺电邪钉矛通电时是透明的(而且是Normaly White模式的)。 2... 点击进入详情页
本回答由奥蕾达提供
122241158
2016-06-16 · TA获得超过240个赞
知道小有建树答主
回答量:554
采纳率:0%
帮助的人:129万
展开全部

是不是这种屏?只有资料,可参考下,

可嘉我,。,名字,。的,。,企,。,。鹅,。,号。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式