Chinaunix首页 | 论坛 | 博客
  • 博客访问: 815121
  • 博文数量: 321
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 936
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-23 11:25
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(10)

2015年(61)

2014年(187)

2013年(62)

分类: 嵌入式

2014-05-14 23:18:30

十、字库

原理:汉字:一个字的行宽16位,2个字节,×16行,则32个字节(LCD屏上)表示一个字===VS内存中汉字占2个字节

如何取出来:unsigned short t = ziku[0]<<8|ziku[1];

For(i=0; i<16; i++)

{

If(t&(16-i))

//该点显示字的颜色

Else

//该点显示字的底色

}

如何实现字的颜色:

Void setpixel(unsigned int x, unsigned int y, unsigned short c)

{

Buf[y*240+x]  =  c;

}

分区:先找出区码,再找出位码;一个区码有94个汉字。假设区码0xb3,位码0xc5,则偏移地址:(0xb3-0xa1)*94*32+(0xc5-0xa1)*32--------即绝对地址=基地址+偏移地址==注意:位码和区码都是从0xA1开始。汉字在内存中占2个字节,egchar *p = "你好"第一个字节P[2]就是区码,第二个字节P[3]是位码。=====理解:汉字在内存2中的存储;汉字的字模32存储

单独托一个二进制文件是托不进去的,要建文件夹。

 

1.hzk16in.s==字库:(要有个hzk16in.s<==>hzk16in.h

EXPORT hzkdata

AREA hzk,DATA,READONLY,ALIGN=4(AREA 段名,DATA数据段。)

hzkdata

incbin hzk16;//INCBIN的作用是把二进制文件插入到源文件;即把二进制文件展开

END

2.显示汉字和数据,字符。注:数组名做参数传递进来变为指针,所以无法知道数组的大小

3.显示连续的汉字时,可以定义一个指针指向该字符,通过定义的指针,‘\0’,可判断出结束条件。就可以知道传进来的字符串的大小了。

4. addr =(U8 *)hzkdata+(c[k]-0xa1)*94*32+(c[k+1]-0xa1)*32;//该字的首地址

5.通过循环16*16次,等到一个汉字。注:汉字在内存中是两个字节,但是在LCD上是32个字节。16*16.位。32字节

6.temp = ((*(addr+i)<<8)|(*(addr+i+1)));//取内容temp & (1<<(15-j)

7.英文字符在内存中是一个字节,所以直接可用(c[num]=='\0' )来判定结束。

 

阅读(617) | 评论(0) | 转发(0) |
0

上一篇:8-IIC

下一篇:12-LCD

给主人留下些什么吧!~~