第十六章 S3C2410的人机界面设计.ppt_第1页
第十六章 S3C2410的人机界面设计.ppt_第2页
第十六章 S3C2410的人机界面设计.ppt_第3页
第十六章 S3C2410的人机界面设计.ppt_第4页
第十六章 S3C2410的人机界面设计.ppt_第5页
免费预览已结束,剩余63页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十六章S3C2410的人机界面设计 主要内容 16 1汉字显示原理16 2字模提取与小字库建立16 3S3C2410显示控制特点16 4S3C2410的LCD控制信号和外部引脚16 5S3C2410的LCD驱动程序16 6S3C2410在LCD驱动方面的其它应用16 8S3C6410 ARM11 的汉字和曲线显示 16 1汉字显示原理 16 1 1嵌入式控制系统人机界面设计概述嵌入式控制系统设计 首先会遇到人机界面设计 人机界面设计的问题也是嵌入式控制系统设计中难点之一 由于嵌入式控制系统人机界面一般使用LCD LiquidCrystalDisplay 液晶显示器的简称 做显示器件 所以人机界面设计基本上归结为为二个问题 一是如何解决在液晶显示器上显示汉字和各种曲线 另一个就是各类液晶显示器件驱动问题 16 1 2汉字和字符显示原理无论是CRT显示器 还是单片机系统常用的LCD 它们的分辨率都是以像素为单位的 一个像素就是LCD屏上的一个可以显示的最小单位 也就是常说的点 因此 要在LCD屏上显示一个汉字或图形就必须将汉字或图形用点来表式 这些表示某种图形的点的集合就是所说的点阵 嵌入式控制系统中最常用的汉字是16 16点阵 它是由行列各16个点 共256个点组成的点阵图案 每行的16个点在内存中占两个字节 一个16 16点阵汉字共16行 在内存中占32个字节 根据这些字节在点阵中存放的顺序 第一行的第1个字节称 0 号字节 第2个字节称 1 号字节 第二行的第1个字节称 2 号字节 第2个字节称 3 号字节 以此类推 最后一行的第1个字节称 30 号字节 第2个字节称 31 号字节 每个字节高位在前 低位在后 即D7在一个字节的最左侧 D0在最右侧 具体如图16 1所示 不同的汉字各字节数据不同 图16 2是仿宋体 哈 字的16 16点阵字模 在点阵中 每一个小方格代表字节中的一位 也叫一个bit 黑色的点bit值等于1 白色的点bit值等于0 这样 仿宋体 哈 字的16 16点阵字模的32个字节数据如下 0 x0040 0 x0040 0 x00a0 0 x78a0 0 x4910 0 x4918 0 x4a0e 0 x4df4 0 x4800 0 x4800 0 x7bf8 0 x4a08 0 x0208 0 x0208 0 x03f8 0 x0208 输出一个字节数据时 该字节中 位 bit 为1时 在该 位 位置打点 为0时该 位 位置打空白 如图16 2所示 此外常用的汉字还有24 24点阵 它是由行列各24个点组成的点阵图案 它每列的24个点在内存中占三个字节 一个24 24点阵汉字共24列 在内存中占72个字节 48 48点阵 行 列为48 48 一个汉字占内存288个字节 12 12点阵 为方便编程把列12点扩展为16点 既两个字节 行 列为12 16 一个汉字占内存24个字节 16 1 3汉字字符集概述我国1981年公布了 信息交换用汉字编码字符集 基本集 GB2312 80方案 把高频字 常用字和次常用字集合成汉字基本字符 共6763个 在该集中按汉字使用的频度 又将其分成一级汉字3755个 按拼音排序 二级汉字3008个 按部首排序 再加上西文字母 数字 图形符号等700个 国家标准的汉字字符集 GB2312 80 在汉字操作系统中是以汉字库的形式提供的 汉字库结构作了统一规定 即将字库分成94个区 用区号表示 每个区有94个汉字 用位号表示 每一个汉字在汉字库中有确定的区和位编号 用两个字节 就是所谓的区位码 区位码的第一个字节表示区号 第二个字节表示位号 因而只要知道了区位码 就可知道该汉字在字库中的地址 16 1 4汉字的内码计算机内英文字符用一个字节的ASCII码表示 该字节最高位一般用做奇偶校验 故实际是用7位码来代表128个字符的 但对于众多的汉字 只有用两个字节才能代表 这样用两个字节代表一个汉字的代码体制 国家制定了统一标准 称为国标码 16 1 5内码转换为区位码当用某种输入设备例如键盘将汉字输入计算机时 则管理模块将自动地把键盘输入的汉字转换为内码 再由内码转换成区位码 通过区位码在汉字库中找到该汉字 进行显示 由于区位码和内码存在着固定的对应关系 因而知道了某汉字的内码 即可确定出对应的区位码 16 2字模提取与小字库建立 上面提到 汉字占用内存是非常多的 如常用的一个16 16点阵汉字占32字节 一个仿宋体16 16点阵汉字库有6763个汉字 占内存32 6763字节 一个24 24点阵汉字占72字节 一个仿宋体24 24点阵汉字库有6763个汉字 占内存72 6763字节 一个48 48点阵汉字占288个字节 一个仿宋体48 48点阵汉字库有6763个汉字 占内存288 6763字节 此外 汉字还有宋体 揩体 黑体 新宋体 篆书等等 每一种都要占和仿宋体一样内存 16 2 1用C语言提取字模和建立小字库如果应用程序是使用C语言编制或对C语言熟悉 那么使用C语言来提取字模和建立小字库比较方便 C语言的汉字提取程序较多 我们用程序Selchn16 c来提取16 16点阵汉字 汉字输入是采用区位码 同时生成的小字库是C语言数据形式 可直接复制到用户程序中运行 还可以在LCD屏显示小字库内容 程序分5段给出 每段都给出详细的解释 1 qwcode h头文件头文件qwcode h包含界面设计需要的5个汉字的区位码 QU WE 24 86 29 73 20 51 34 56 29 81 是我们随机找的5个汉字 个 介 从 仑 今 的区位码 CHNNUMBER 汉字个数 5 2 char buffw数组char buffw数组中事先存储了小汉字库中C语言一行字模的存储格式 一个16 16点阵汉字占32个字节 程序将字膜排成二行 一行8个字 16字节 改为C语言数据格式后 每个数前面加0 x0 数与数之间用 号分隔 再加上每行前面的14个空格 一行是76个字节 3 计算偏移量 移指针根据区位码计算偏移量使用公式 Location 94 qh 1 wh 1 32 然后将文件指针移到该位置 从该位置读32个字节放输入缓冲区 同时在LCD屏显示该汉字 4 将读入的字模转换为C语言形式从字库读出的字模是二进制形式 现转换为C语言形式 转换后 每个16 16汉字字模排两行 每行8个字 即16个字节 转换时先转换第一个字节高4位 再转换第一个字节低4位 然后转换第二个字节高4位 最后转换第二个字节低4位 5 按位转换程序因为每4个二进制数可用一个16进制数表示 而要转换的C语言形式是16进制数 所以把一个字节的高4位和低4位分别取出 将其数值加上30H 既变为相应的ASCII码 然后存储 建成的小汉字库是以C语言数据格式存放在数组CHN1616 INC中 16 2 2用Delphi提取字模和建立小字库 该程序可以提取的字模点阵有 16 16点阵宋体汉字库 16 16点阵仿宋体汉字库 24 24点阵宋体汉字库 24 24点阵仿宋体汉字库 48 48点阵宋体汉字库 如果输入方式选择区位码 可以得到国标上有的拉丁文数字 一般符号 序号 日文假名 希腊字母 英文 俄罗斯文 汉语拼音符号 汉语注音字母等字膜 程序见书中 16 2 3通用字模提取程序MinFonBase使用说明通用字模提取程序MinFonBase是用Delphi编写的 如果你对Delphi不熟 不用看程序的源代码 直接使用它的可执行文件既可 程序使用非常方便 在随书下载软件包中选MinFonBase1 exe双击 出现图16 4画面 然后按图画中提示操作就可以完成字模提取工作 16 3S3C2410显示控制特点 16 3 1STNLCD显示器S3C2410支持3种STNLCD板 1 支持单色 4灰度级 16灰度级 2 支持256色 4096色的彩色STNLCD 3 支持多种不同尺寸的LCD屏 如 640 480 320 240 160 160等 支持现行256色模式彩屏的最大尺寸 4096 1024 2048 2048 1024 4096等 16 3 2TFTLCD显示器1 S3C2410支持1 2 4 8比特 每像素TFTLCD彩色显示器 2 支持16比特 每像素的真彩色显示器 3 支持24比特 每像素的真彩色显示器 4 支持最大为16M 24比特 每像素的模式 5 支持多种不同尺寸的TFTLCD屏 如典型的LCD屏尺寸 640 480 320 240 160 160 最大TFTLCD尺寸 2048 1024等 16 3 3LCD控制器特点S3C2410LCD控制器有一个专门的数据存储器 它从内存视频缓冲器之中 获取数据图像资料 同时还具有以下特点 专用中断功能 INT FrSyn和INT FiCnt 系统内存用作显示器内存 支持各种现行的LCD屏 支持水平或立轴式的硬件 通过编程可实现各种显示器件的时序控制 支持小型字节类型的数据或WinCE数据格式 16 4S3C2410的LCD控制信号和外部引脚 本节介绍S3C2410的LCD控制信号和外部引脚 这些知识同学一般掌握即可 这些内部信号编程时有的用不到 虽然LCD控制寄存器的设置和LCD屏幕 打点 程序比较复杂 但系统会根据使用的LCD型号和屏幕分辨率自动完成 S3C2410的LCD控制框图如16 5所示 S3C2410的LCD控制器引脚 1 VFRAME VSYNC SYV 帧同步信号 STN 垂直同步信号 TFT SECTFT信号 2 VLINE HSYNC CPV 行同步脉冲信号 STN 垂直同步信号 TFT 3 VCLK LCD HCLK 像素时钟信号 SEC TFT SECTFT信号 4 VD 23 0 LCD像素数据输出端口 STN TFT SECTFT 5VM VDEN TP LCD驱动器交流偏置信号 STN 数据允许信号 TFT SECTFT信号 6 LEND STH 行结束信号 TFT SECTFT信号 7 LCD PWREN LCD控制允许信号 8 LCDVF0 SECTFTOE允许 9 LCDVF1 SECTFT信号REV 10 LCDVF2 SECTFT信号REVB TIMEGEN模块能产生VFRAME VLINE VCLK VM等信号 具体如下 1 定时脉冲发生器该定时脉冲发生器产生LCD驱动器的控制信号诸如 VFRAME VLINE VCLK和VM 等信号 这些控制信号和三基色库之中的LCD控制寄存器1 5的构造有密切联系 2 VFRAME脉冲在第一行的间隔内以每帧一次的频率产生 该信号的作用是为了将LCD的行指针移到显示的开始以便重新开始下一帧扫描 3 VM信号VM信号使得LCD驱动器调整行和列电压的极性 用于像素的通断 该信号的速率取决于LCD控制寄存器1的MMODE位和LCD控制寄存器4的MVAL位 如果MMODE位为0 则VM信号用于标定每一帧 如果为1 则用于标定MVAL 7 0 中VLINE信号的下降沿 16 4 1LCD专用控制寄存器 S3C2410在REGBANK有17个可编程的寄存器 其中有几个编程时要经常用到 介绍如下 1 LCD控制寄存器LCD控制寄存器共有5个 它们的使用见表16 1 16 5 2 缓存起始地址寄存器在编写LCD驱动程序时除了用到上述5个控制寄存器外 还要用到下面介绍的3个帧缓存器起始地址寄存器 通过表16 6 16 8来介绍它们的使用 3 查表寄存器 16 4 2LCD专用控制寄存器的设置 从上节介绍可知 S3C2410LCD专用控制寄存器比较多 而且每一个控制寄存器设置项目也比较复杂 给我们界面设计带来很大困难 但在系统提供的lcd mcp项目中有1个Lcd Init inttype 程序 只要我们把使用的LCD类型 屏幕颜色 分辨率 做为实参调用该程序 就会自动设置好这些专用控制寄存器 Lcd Init inttype 部分程序如下 程序见书中 16 4 3LCD屏幕 打点 程序 屏幕上 打点 和屏幕分辨率 打点 位置 彩色BPP有关 系统提供的lcd mcp项目中也有1个Glib Init程序可供我们借鉴使用 打点 是对显示内存数据进行操作 是直接写屏 显示速度最快 技术最先进 打点 程序 详见书中 16 5S3C2410的LCD驱动程序 16 5 1S3C2410LCD驱动程序编写步骤1 提字模2 建立显示项目3 项目初始化程序和仿真器设置4 项目实例 16 5 2利用S3C2410显示汉字与曲线 显示汉字与曲线我们使用 打点 的方法 屏幕使用TFT 16BIT 640480 原英培特教学实验系统中使用的是TFT 8BIT 320240 所以要修改lcdlib c和glib c中的调用参数 主程序如下 Main c是主程序模块 其中包括主函数 显示汉字 图形 ASCII字符4部分 显示汉字 图形原理可参见16 1 2节汉字和字符显示原理 1 三个变量数组介绍2 显示曲线3 显示汉字4 显示ASCII字符 实验显示效果如图16 7所示 图中除48 48点阵汉字外其它可以显示的汉字 曲线 图形 西文都包括了 16 6S3C2410在LCD驱动方面的其它应用 上面几节我们介绍了用ARM9单片机S3C2410驱动STN和TFT显示器的程序 实际上我们也可以像使用其他单片机一样 用S3C2410的I O口来驱动LCD显示器 本章我们介绍S3C2410用I O口驱动HD66421的例子 16 6 1HD66421的硬件简介HD66421的结构图如16 8所示 见书中图 和控制程序有关的左側管脚是 1 GND电源地2 VCC数字电源 3 NC空脚 输出电压 4 RS寄存器选择5 WR写选通6 CS片选 7 D0 D7数据线15 RD读选通16 BLCS背光使能17 RST复位18 NC VLCD 液晶驱动电压 19 A背光电源 20 K背光电源 HD66421与S3C2410连接很简单 如图16 9所示 在我们的系统中 硬件连接使用D口和C口 具体连接如下 GPD0 RD GPD1 WR GPD2 RS GPD3 CS GPC8 GPC15 DATA由于使用了D口和C口 在程序中要对这两个口进行初始化 将它们设为第一功能 即基本I O口 16 6 2HD66421的软件编程 16 6 3HD66421与微处理器接口及驱动程序 HD66421与微处理器接口我们使用S3C2410的 D 口和 C 口部分管脚和HD66421连接 具体可参见

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论