ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:158.74KB ,
资源ID:2900270      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2900270.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的硬件字库设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的硬件字库设计.docx

1、基于单片机的硬件字库设计基于单片机的硬件字库设计作者:汤美玲陕西理工学院(物电学院)电子信息科学与技术专业2008级 陕西 汉中 723000指导教师:刘东摘要:随着液晶显示技术的发展和应用,越来越多的开发人员希望在自己开发的仪器设备中使用液晶屏幕来显示汉字,通常的汉字显示方式是先根据所需要的汉字提取汉字点阵如16x16 点阵,将点阵文件存入ROM 形成新的汉字编码,而在使用时则需要先根据新的汉字编码组成语句再由MCU 根据新编码提取相应的点阵进行汉字显示,在这种显示方式中如果使用的汉字数量较大或语句较多时,利用汉字的新编码组成语句将是一件繁琐而枯燥的工作。如果有新的汉字加入那么汉字库的维护也

2、成问题,而我们日常生活的一些手持工具上如手机快译通等等它们可以任意输入汉字不仅灵活性大而且检索速度快,这其中的主要原因就是在这些设备中固化了硬件汉字库。本设计就是通过keil软件编写c语言程序并生成HEX文件联合proteus电路设计仿真软件制作一个简单的硬件字库系统。关键词:c语言, 单片机,硬件,字库一.任务 设计并制作一个基于单片机的硬件字库系统.二.要求 1.基本要求 1.1可显示任何汉字字符. 1.2 可实现花样显示. 2.发挥部分 2.1 不需要使用专门的字模软件提取固定汉字字模. 2.2 可人性化设置.三.说明3.1 时间要求:11月12日到11月24日.3.2 完成实际电路,总

3、结报告.3.3 本例将262KB的16x16点阵中文字库文件HZK16拆分为两个128KB文件,分别保存到两片24C1024中,多余6KB被删除,运行时,对于任意输入的汉字或中文标题符号,程序会直接从24C1024所保存的字库中提取点阵并转换为液晶格式,在12864液晶屏上显示。四. 硬件字库系统设计的基本原理及分析本系统在两块24C1024芯片中内置了16x16点阵汉字库文件HZK16,该文件共262KB(两块芯片各保存128KB),多余的部分被删除。本例运行时,程序根据汉字内码得到区位码,再根据区位码从硬件字库中提取汉字点阵,所提取的字库点阵进一步转换为本例液晶屏汉字显示所需要的格式后即可

4、显示在液晶屏上。本例显示任何汉字时,不再需要使用专门的字模软件提取固定汉字字模。本系统框图如下图4.1图: 图4.1 硬件字库系统框图五.电路的功能单元设计1.硬件电路的设计该硬件字库系统是以单片机AT89C51为核心来完成的,在硬件电路方面,电路中采用P0口、P2口的前六个管脚与LCD液晶显示屏连接,这是由于P0口输出驱动电路工作处于开漏状态,它的驱动能力强。因为在合proteus中找不到更大容量的存储芯片,本系统使用了两片具有128KB空间的24C1024保存汉字库的前半部分与后半部分,拆分字库文件时,也可以自己编写TC程序完成完成,也可以直接使用本书案例压缩包中提供的文件拆分软件。图5.

5、1为LCD的管脚图。图5.1 LCD管脚图AT89C51是一种带4K字节闪烁可编程可擦除只读存储(FPEROMFalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精

6、简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。电路构成:(1)单片机最小系统电路。(2)LCD液晶显示屏驱动电路。(3)24C1024电路部分。图5.1为AT89C51的管脚图。图5.1 AT89C51管脚图2.软件程序的设计本系统程序中读取各汉字内码后,将2B汉字内码分别减去0xa0得到区位码,再根据

7、区位码求出汉字点阵在字库中的位置。由于汉字存放在94行94列的区域中,每个汉字点阵占32B,根据汉字的区位码,也就是汉字在字库表中的行列位置,可得出汉字在字库中的点阵字节的起始位置,公式为(94x(SectionCode-1)+(PlaceCode-1))x32L,其中SectionCode与PlaceCode分别为区位码和位码。由于字库中各汉字的32B点阵是逐行取模的,每行16个像素,即2B,从上到下共32B,而本例液晶显示汉字时,需要的汉字点阵取模顺序是从汉字上半部分开始,从左到右垂直取得16B,且各字节是高位在下,低位在上,然后在从左到右取得汉字下半部分的16B,因此,本例还需要将字库点

8、阵格式转换为液晶点阵格式。六测试报告在阅读并调试本例时,可以将其中的液晶屏改为16x16点阵的LCD点阵屏,仍使用本例中的硬件字库,实现任意汉字的滚动显示。另外,本例仅实现了全角汉字和全角英文及数字字符的显示,可进一步改进,使之能实现全角与半角文字与字符的混合显示。七.总结 本设计是以单片机80C51芯片为核心部件,实现了硬件字库在液晶屏上显示的功能。通过这次设计,我熟练掌握了Keil C51集成开发环境和Proteus7仿真环境的使用方法,加深了对单片机常用指令的理解与运用,同时进一步掌握c语言的熟练使用。在设计过程中,我得到了一次用专业知识、专业技能分析和解决问题、全面系统的锻炼的机会,对

9、于同一个设计,自己经过思考,做出多种方案,并选择其中适用的,合理的,方案进行设计,也使我在需求分析及总体分析设计、单片机的基本原理、单片机应用系统开发过程,和常用编程设计思路技巧(特别是c语言)的掌握方面都能向前迈了一大步。 同时在老师的悉心指导和严格要求下,极大地提高了电路设计与程序分析设计的能力,同时也感受到理论与实践之间的差距,使我们对单片机系统的应用有了更加深刻的认识.参考文献1 梅丽凤,王艳秋,等.单片机原理及接口技术M 清华大学出版社,2004.2 朱定华,刘玉.单片机原理及应用技术学习辅导M 电子工业出版社,2001.3 薛钧义.MCS-51/96系列单片微型机算计及应用M 西安

10、交通大学出版社,1998.4 何立民.MCS-51系列单片机应用系统设计M 北京航空航天大学出版社,2001. 附录1:硬件总图,软件仿真图附录2:程序清单附录1:硬件总图软件仿真图附录2:程序清单/-/说明:本例将262KB的16x16点阵中文字库文件HZK16拆分为两个128KB文件,分别保存到两/ 片24C1024中,多余6KB被删除,运行时,对于任意输入的汉字或中文标题符号,程序会/ 直接从24C1024所保存的字库中提取点阵并转换为液晶格式,在12864液晶屏上显示。/-#include#include #include#define uchar unsigned char #def

11、ine uint unsigned int#define ulong unsigned long/12864LCD相关函数void LCD_Initialize();void Display_A_Char(uchar,uchar,uchar *);void Display_A_WORD_String(uchar,uchar,uchar,uchar *);void Display_A_Image(uchar,uchar,uchar,uchar,uchar *);/I2C相关函数void IIC_24C1024_Init();uchar RecString (uchar Slave,ulong M

12、em_address,uchar *Buffer,uchar N);/从汉字库所取得的一个汉字的点阵存放区uchar Word_Dot_Matrix32;_/转换为LCD显示格式的汉字点阵存放区uchar LCD_Dot_Matrix32;/-/读取汉字点阵并将字库点阵格式转换为液晶屏汉字取模格式/-void Read_HZ_dot_Matrix_AND_Convert_TO_LCD_Fmt(uchar c);ulong Offset; /汉字在点阵库中的偏移位置uchar SectionCode , PlaceCode; /汉字区位码与位码uchar AT24C1024_A1; /标识24C

13、1024芯片编号0,1uchar i,j,LCD_Byte,block; /格式转换变量uchar Idx4=0,1,16,17; /四个板块转换的起始字节索引SectionCode=c0-0xa0; /取得汉字区位码PlaceCode=c1-0xa0;Offset=(94*(SectionCode-1)+(PlaceCode-1)*32L; /计算偏移/取得偏移地址Offset的第18位,AT24C1024_A1为0时表示/该汉字点阵处在字库前半段,即处于第一片24C1024/否则表示该汉字点阵在字库后半段,即在第二片24C1024中AT24C1024_A1=Offset17;Offset&= 0x0001FFFF;/从Offset开始读取该汉字32B的点阵数据if(AT24C1024_A1=0) RecString (0xa0, Offset,Word_Dot_Matrix,32);else RecString (0xa4, Offset,Word_Dot_Matrix,32);/将16x16 点阵分为4各8x8点阵区域进行转换(汉字上半部分与下半部分各自占两个区域)for(block=0;block4;block+) for(i=0;i8;i+) LCD_Byte=0x

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1