NOKIA5110 LCD使用心得之坐标与字模(多原理少代码版)

本文介绍了NOKIA5110液晶显示器在显示汉字时的坐标系统和字模处理方法。通过HZK16汉字存储格式,详细展示了汉字在内存中的表示,并通过实例解释了汉字在LCD上的写入过程,帮助读者理解LCD屏幕的XY坐标概念。
摘要由CSDN通过智能技术生成
  有时沉在别人太多代码里,看得云里雾里, 不如先知道原理,代码一看就懂。

   在点阵屏上写英文或汉字(各种字符也归类于特殊汉字),总有2个问题让我们经常揪心
1. 以指定的方式建立字库
2. 取出汉字字库向LCD写屏的方式
如果概念掌握不好,就会把字库的方式取错了,写出来了也不是汉字,是乱码了。

下面讨论:

1. 以指定的方式建立字库
字库分3类
(1) 常用可见ASCII字 0-9, A-Z及a-z,各种符号*#?()等 数字字库0-9 ,这是XY长度为6*8点的
(2) 半角字符 0-9,A-Z 也是我们常用的数字和英文字符显示方式,占半个汉字大小,是8*16点。半角字符,就是指占汉字一一半大小
(3) 汉字字库常用HZK16(6763个汉字) 显然这是16*16的, 标准的全角字符
一般应用不建议采用第(1)项来显示数字与字母,一是字体太小,二是不便于和汉字混排,不好对齐。
我们来看看标准的HZK16的存储方式和读取方式,贴一段代码(我亲自在VC6的console建个新工程,加入这些代码编译运行):
//hzk汉字点阵 
#include <stdio.h> 
#include <stdlib.h>  

int main() 
{    
unsigned char incode[3]="一"; // 要读出的汉字,GB编码  
unsigned char qh = 0, wh = 0;  
unsigned long offset = 0;  
char mat[16][2] = {0};  
FILE *HZK = 0;  
int i,j,k;  

//每个汉字,占两个字节, 取其区位号  
qh = incode[0] - 0xa0; //获得区码  
wh = incode[1] - 0xa0; //获得位码  
offset = (94*(qh-1)+(wh-1))*32; //得到偏移位置 
if((HZK=fopen("hzk16.bin", &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值