首页 基于串行Flash存储器的点阵字库 的

基于串行Flash存储器的点阵字库 的

举报
开通vip

基于串行Flash存储器的点阵字库 的 1 基于串行基于串行基于串行基于串行 FlashFlashFlashFlash 存储器的点阵字库的设计存储器的点阵字库的设计存储器的点阵字库的设计存储器的点阵字库的设计 作者:常国权,魏胜利,沈晓伟 计算机科学与信息工程系 安阳工学院 摘要摘要摘要摘要:本文介绍了一种以串行 DataFlash 存储器 W25X80 来设计嵌入式系统中硬件点阵 字库的方法,把用到的汉字点阵库写在串行存储器中。该方法简便易行、操作灵活、成 本...

基于串行Flash存储器的点阵字库 的
1 基于串行基于串行基于串行基于串行 FlashFlashFlashFlash 存储器的点阵字库的设计存储器的点阵字库的设计存储器的点阵字库的设计存储器的点阵字库的设计 作者:常国权,魏胜利,沈晓伟 计算机科学与信息工程系 安阳工学院 摘要摘要摘要摘要:本文介绍了一种以串行 DataFlash 存储器 W25X80 来设计嵌入式系统中硬件点阵 字库的方法,把用到的汉字点阵库写在串行存储器中。该方法简便易行、操作灵活、成 本低廉,可以为嵌入式系统中没有字库的 LCD 提供一种有效而灵活的解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。 关键词关键词关键词关键词:W25X80 点阵字库 LCD 模块 中图分类号中图分类号中图分类号中图分类号:TP 368.2 文献标识码:B DotDotDotDot----matrix font design based on tmatrix font design based on tmatrix font design based on tmatrix font design based on the serialhe serialhe serialhe serial Flash memoryFlash memoryFlash memoryFlash memory (Department of Computer Engineering, Anyang Institute of Technology, Anyang 455000) ChanGguoquan,WeiShengli,ShenXiaowei AbstractAbstractAbstractAbstract: This paper introduces a method to design hardware character dot-matrix font in the embedded systems based on the serial DataFlash memory W25X80, the Chinese characters dot-matrix library can be written into the serial Flash memory for use. This method is simple, flexible and low-cost, which can be provided an effective and flexible solution for the LCD without font in the embedded systems. KeywordsKeywordsKeywordsKeywords: W25X80 dot-matrix font LCD module 1111、、、、引言引言引言引言 液晶 LCD 具有功耗低、体积小、重量轻、超薄等许多优点,现已被广泛应用到智能仪器、 仪 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 、自动控制等嵌入式系统中,作为人机交互时信息输出的重要手段。常用的液晶 LCD 可分为点阵字符、数字液晶 LCD 和点阵图形液晶 LCD,尤其是图形点阵式 LCD 不仅可以 显示字符、数字,还可以显示各种图形、曲线及汉字等,操作界面显示直观、友好,越 来越成为嵌入式设计中的首选。图形点阵式 LCD 显示的点阵信息一般存储在字库或图形 库中,但是自带点阵字库的 LCD 显示模块一般价格较高,而且不带点阵字库的 LCD 显示 模块应用又比较广泛,基于以上原因,本文采用低价位的串行存储器 W25X80 来自行设 计嵌入式系统中点阵字库、图形库。 2222、、、、系统设计系统设计系统设计系统设计 汉字点阵字库可以使用现成的字库文件(该字库文件很容易找到,如 UCDOS 软件包中有 www.eetchina.com 2 一个名字为 HZKl6 的文件,即为 16×16 的国标汉字点阵文件)也可以用字库生成软件 自行设计,本设计采用了后一种方法,该方法使用起来比较灵活。有了字库文件之后, 下一步就是按照顺序把字库文件写入到串行存储器 W25X80 的地址单元中。为了把字库 文件写入到存储器中,本设计采用 STC89C52 单片机作为主控制器,主要进行 DataFlash 的擦除、控制、点阵字库的写入、读出和测试等操作;用不带字库的液晶模块 OCM12864 作为测试和显示结果的模块;串行 DataFlash 存储器采用的是 WINBOND 公司生产的 W25X80,并外扩了 MAX232 作为系统和 PC 机通信的通道。汉字库系统设计的原理图如图 1 所示。 1 2 3 J3 POWER IN TTL_TX TTL_RX C10 1uF C7 1uF C9 1uF C11 1uF C1+ 1 V+2 C1- 3C2+4 C2-5 V-6 T2out7 R2in8 R2out 9 T2in 10 T1in 11 R1out 12R1in13 T1out14 GND 15 VCC 16 U3 MAX232 P1.01 P1.12 P1.23 P1.34 P1.45 P1.56 RST9 P3.0/RXD10 P3.1/TXD11 P3.2/INT012 P3.3/INT13 P3.4/T014 P3.5/T115 P3.6/WR16 P3.7/RD17 XTAL119 P2.0/A8 21 P2.1/A9 22 P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15 28 PSEN 29 ALE 30 EA 31 P0.7/AD7 32 P0.6/AD6 33 P0.5/AD5 34 P0.4/AD4 35 P0.3/AD3 36 P0.2/AD2 37 P0.1/AD1 38 P0.0/AD0 39 XTAL218 VCC 40 VSS20 P1.67 P1.78 U1 STC89C52 C1 4.7uF R1 10K VCC Y1 11.0592MHz C3 22pF C4 22pF S1 VCC VCC 5 9 4 8 3 7 2 6 1 J1 DB9 TTL_TX TTL_RX L1 2.2uH R3 330 VCC D2 1N4007 C5 100uF C6 0.1uF C8 10uF VCC C2 10uF RS232TX RS232RX D0 LED VCCVCC P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.1 P2.2 P2.3 P2.4 P2.5 CS P2.0 V SS 1 V D D 2 V O 3 D /I 4 R /W 5 E 6 D B0 7 D B1 8 D B2 9 D B3 10 D B4 11 D B5 12 D B6 13 D B7 14 C S1 15 C S2 16 R ET 17 V EE 18 L ED + 19 L ED - 20 J2 LCD P2 . 1 P2 . 2 P2 . 5 P2 . 4 P2 . 3 P1 . 7 P1 . 6 P1 . 5 P1 . 4 P1 . 3 P1 . 2 P1 . 1 P1 . 0 P2 . 0 VOUT2 VIN 3 G N D 1 U4 REG-1117 C5 10uF C6 10uF VCC R2 10K CS1 DO2 WP3 GND4 VCC 8 HOLD 7 CLK 6 DIO 5 U2 W25X80A DO WP HOLD CLK DIO CS WP HOLD CLK DO DIO 图 1 系统设计的原理图 3333、、、、点阵点阵点阵点阵汉字的显示原理汉字的显示原理汉字的显示原理汉字的显示原理 在国标 GB2312 中规定,所有的国标汉字及符号分配在一个 94 行、94 列的方阵中,方阵 的每一行称为一个“区”,编号为 01 区到 94 区,每一列称为一个“位”,编号为 01 位 到 94 位,方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个阿拉伯 数字就是它们的“区位码”。区位码的前两位是它的区号,后两位是它的位号。用区位 码就可以唯一地确定一个汉字或符号。 汉字一般是以点阵式存储的,如 16×16、24×24 点阵,汉字的字模其实是汉字字形的 图形化,所谓 16 点阵字模,就是把汉字写在一个 16×16 的网格内,汉字的笔划通过某 网格时该网格就对应 1,否则该网络对应 0,这样,每一网络均对应 1 或 0,并且规定其 点阵中二进制位 0 为白点,1 为黑点,把对应 1 的网格连起来看,就是这个汉字。这样 一个16×16点阵的汉字需要用2×16即 32个字节来存放,构成它在字库中的字模信息。 如“啊”字的字模构成如图 2 所示。 www.eetchina.com 3 图 2 字模构成示意图 汉字就是这样通过字节表示其点阵存储在字符字库中的,为了方便查找所需汉字的点 阵,每个汉字都与一个双字节的内码一一对应,通过汉字的内码可以计算出它的点阵起 始字节。现以 16 点阵为例来进行说明,首先,可由内码计算出它在汉字库中的区位码, 其计算公式为: 区码=bn1-160 位码=bn2-160 式中,bn1 和 bn2 则分别表示汉字机内码的第一字节和第二字节。当这些区位码被计算 出来之后,就可以用区位码得到它在汉字库中字模第一个字节的位置,即: 偏移地址 = (94×(区码 - 1)+(位码 - 1))×32 需要注意的是由于汉字区位码无论是区码还是位码均从 1 开始,而计算偏移地址从 0 开 始,所以公式中区码和位码都要减去 1,即可通过机内码直接寻址要显示汉字在汉字库 中的偏移地址。这样,接下来就可以连续读出由 32 个字节组成的该字的点阵数据。 4444、、、、串串串串行存储器行存储器行存储器行存储器 W25X80W25X80W25X80W25X80 串行 Flash 存储器以其体积小、密度高、功耗低、价位低、操作简单而备受青睐,Winbond 公司生产的 Flash 存储器 W25X80 为 8Mbit 串行 Flash,大小为 1MB,分为 4096 页,每 页为 256 字节的存储单元,且带有 256 个字节的缓冲区;SPI 的接口方式,芯片供电电 压为 2.7V—3.6V,器件的忙判断可以由内部的状态寄存器来判断。W25X8 有严格的时序 和规定的命令格式,操作时可以通过其特有缓冲区(256 字节)对其内部进行读或写, 操作结束时,应清除新指令标志以免重复响应。 可以说,该 Flash 不仅操作十分简单,并且可以灵活地适用于多个 设计方案 关于薪酬设计方案通用技术作品设计方案停车场设计方案多媒体教室设计方案农贸市场设计方案 ,如果每个 汉字是 16×16 的点阵,按每个汉字占 32 个字节算,能存储 3 万个多汉字编码,而常用 的汉字库一般不超过 1 万个汉字,因此,除了存储足够的汉字库外,还可以存储其他图 www.eetchina.com 4 片编码等字库。串行 FLASH 需要通过 SPI 总线和单片机进行通讯,而 STC89C52 单片没 有 SPI 通讯模块,通过软件模拟端口来实现和 FLASH 之间的通讯。其实软件模拟端口是 一种更通用的方法,通过软件模拟可以减少开发成本,并不影响芯片的功能。 4.1 4.1 4.1 4.1 W25X80W25X80W25X80W25X80 的读操作的读操作的读操作的读操作 W25X80 读取数据指令允许一次读取一个字节或者多个字节。读数据时首先要把 CS 引脚 拉低,然后通过 DIO 引脚给 W25X80 发送读指令“03h”和 24 位地址(A23-A0)。指令和 地址在时钟引脚的上升沿被锁存,在发送完指令和地址后,数据就会从 DO 引脚顺序移 出,最高有效位在先。只要时钟继续,W25X80 就会连续不断地从下一个地址读取数据, 这就意味着一条指令就可以读取整个 Flash 中的数据。要想结束数据的读取,可以把 CS 引脚拉高。W25X80 的读取数据时序图如图 3 所示。 图 3 W25X80 的读取数据时序图 需要显示某个汉字时,先根据汉字的内码算出它的区位码,然后再根据区位码算出它在 字库中的偏移量,即汉字点阵的起始位置,接着从 Flash 中顺序读出该字的 32 个字节 点阵数据并存在缓冲区里,最后依次送往 LCD 显示,就可以描出该字。 4.2 4.2 4.2 4.2 W25X80W25X80W25X80W25X80 的写操作的写操作的写操作的写操作 W25X80 的写操作即页面编程指令一次可以编程 1-256 字节的数据,在编程之前要对内存 进行擦除。编程时要把 CS 引脚拉低,然后通过 DIO 引脚给 W25X80 发送编程指令“02h” 和 24 位编程地址(A23-A0)。代码和地址在时钟引脚的上升沿被锁存。然后在时钟的作 用下,编程数据依次从 DIO 引脚送入 Flash。在整个编程过程中 CS 引脚必须保持低电平。 W25X80 的页面编程时序图如图 4 所示。 www.eetchina.com 5 图 4 W25X80 的页面编程时序图 5555、、、、字库字库字库字库的的的的写入写入写入写入 为了方便字库的写入,我们使用 VC++编写了 PC 机字库写入软件,通过该软件可以把字 库文件通过串口以握手的方式一个字节一个字节地发给下位机。在传送开始,上位机软 件首先发送的是每次批量编程字节长度 length,下位机采用中断接收方式,每接收够 length个字节,下位机就进行一次编程写入Flash。实际的测试表明写完256KB的GB2312 汉字库仅需要 3 分钟左右,当然写入的快慢和 Flash 芯片的编程速度有关。注意:写入 字节的长度一般是 256 个字节,除非到了字库文件的末尾不足 256 字节,这时也能正常 接收和写入。图 5 是字库写入 W25X80 存储器流程图。 开始 length = SBUF 读入要接收的字节数 等待接收1个字节 counter++ counter == length? 编程写入Flash Y N 图 5 字库写入 W25X80 存储器流程图 6 6666、、、、结论结论结论结论 本文采用串行存储器 W25X80 来设计嵌入式系统中的硬件点阵字库,给出了具体的实现 方法并对设计结果进行了测试,验证了字库正确性。该方法使用简单、操作灵活、成本 低廉,可以为嵌入式系统没有字库的液晶 LCD 提供一种有效而灵活的解决方案。投入嵌 入式系统使用将会产生较好的经济效益。 参考文献参考文献参考文献参考文献 [1] 华邦公司.W25X80A串行存储器 说明书 房屋状态说明书下载罗氏说明书下载焊机说明书下载罗氏说明书下载GGD说明书下载 [DB/OL].http://www.winbond.com. [2] 宏晶公司.STC89C52RC说明书[DB/OL].http://www.mcu-memory.com. [3] 龚建伟,熊光明.Visual C++/Turbo C串口通信编程实践[M].北京:电子工业出版社. 作者简介作者简介作者简介作者简介:::: 姓名:常国权(1973.11),男,汉族,安阳工学院计算机科学与信息工程系讲师,毕业 于东北电力大学信息工程学院,硕士研究生,研究方向为嵌入式系统技术应用与开发。 通信地址:河南省安阳市黄河路安阳工学院计算机科学与信息工程系 邮编:455000 E-mail:changguoquan@126.com
本文档为【基于串行Flash存储器的点阵字库 的】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_672950
暂无简介~
格式:pdf
大小:438KB
软件:PDF阅读器
页数:6
分类:互联网
上传时间:2011-05-24
浏览量:31