




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程设计报告 I 摘摘 要要 本文介绍了基于 STM32 的汉字显示系统设计 现如今 LCD 显示屏的技术和产业都 取得了长足的发展 作为重要的现代信息发布媒体之一 LCD 显示屏在证券交易 金融 交通 体育 广告等领域被广泛的应用 基于 STM32 的 LCD 显示可以更好的满足各种 需求 也更便于操作和实现 通电后 复位到初始化状态可显示本次课程设计题目及 成员等基本信息 可人为操作对显示信息的汉字进行自定义大小颜色及字体等等 通 过字库制作软件制作相应的字库经过 SD 卡将自己所制作的字库中的汉字在屏幕中依次 显示出来 同时可以通过按键控制实现显示汉字的速度 暂停 继续以及更新字库 本系统是利用 STM32 开发板配合 SD 卡实现将已存入字库中的汉字完整的显示在 LCD 彩色显示屏上 关键词 STM32 LCD 液晶显示 开关 汉字显示 沈阳理工大学课程设计报告 II 目 录 1 引言 1 2 总体设计 2 2 1 汉字显示的基本原理 2 2 2 汉字显示设计分析 2 2 3 系统的结构框图 3 3 详细设计 4 3 1 硬件设计 4 3 1 1 ALIENTEK MiniSTM32 开发板简介 4 3 1 2 功能简介 4 3 2 软件设计 8 3 2 1 录字软件 8 3 2 2 主函数部分 9 3 2 3 硬件部分程序 12 3 2 4 字库相关程序 14 3 2 5 FAT 系统 19 3 2 6 程序流程图 20 4 实验结果及分析 21 4 1 硬件实验结果 21 4 2 结果分析 21 5 结论 22 参考文献 23 沈阳理工大学课程设计报告 1 1 引言 进入新世纪 LCD 显示屏的技术和产业都取得了长足的发展 作为重要的现代信息 发布媒体之一 LCD 显示屏在证券交易 金融 交通 体育 广告等领域被广泛的应用 伴随社会信息化进程的推进 LCD 显示屏技术也在不断的推陈出新 应用领域愈加广阔 基于 STM32 的 LCD 显示可以更好的满足各种需求 也更便于操作和实现 现基于 STM32 在液晶显示屏幕上显示文本及图形 目前 显示技术和显示工业的发展迅速 显示技术是传递视觉的信息技术 液晶 显示器件 LCD 是当今最有发展前途的一种平板显示器件 它具有很多独到的优异特性 它具有显示信息多 易于多彩化 体积小 重量轻 功耗低 寿命长 价格低 无辐 射 无污染 接口控制方便等优点 实际的 LCD 应用中要显示的汉字一般很有限 并不需要完整的汉字库 再加上完 整字库在程序中要占用大量空间 因而非完整汉字库的研究就有了其自身的现实必要 性 本次课程设计主要以 TFTLCD 的 LCD 显示模块 完整的实现了汉字库的建立与显示 沈阳理工大学课程设计报告 2 2 总体设计 2 1 汉字显示的基本原理 制作一个 GBK 字库 制作好的字库放在 SD 卡里面 然后通过 SD 卡 将字库 文件复制到 W25X16 里 这样 W25X16 就相当于一款汉字字库芯片了 汉字在液晶上的显示其实就是一些点的显示与不显示 这就相当于我们的笔一样 有笔经过的地方就画出来 没经过的地方就不画 所以要显示汉字 我们首先要知道 汉字的点阵数据 这些数据可以由专门的软件来生成 只要知道了一个汉字点阵的生 成方法 那么我们在程序里面就可以把这个点阵数据解析成一个汉字 知道显示了一 个汉字 就可以推及整个汉字库了 汉字在电脑里面存储不是以点阵数据的形式存储 的 而是以内码的形式存储的 每个汉字对应着一个内码 在知道了内码之后再去字 库里面查找这个汉字的点阵数据 然后在液晶上显示出来 这个过程我们是看不到 但是计算机是要去执行的 嵌入式要显示汉字也与此类似 汉字内码 查找点阵库 解析 显示 所以只要 我们有了整个汉字库的点阵 就可以把电脑上的文本信息在嵌入式上显示出来了 2 2 汉字显示设计分析 设计一个基于 STM32 系统 开机的时候先检测 W25X16 中是否已经存在字库 如 果存在 则按次序显示汉字 如果没有 则检测 SD 卡和文件系统 并查找 SYSTEM 文 件夹下的 FONT 文件夹 在该文件夹内查找 UNI2GBK SYS 和 GBK16 FON 在检测到这些 文件之后 就开始更新字库 更新完毕才开始显示汉字 具体要实现的目标如下 1 更新字库 即文档可进行变换 2 初始状态显示本次课设的基本信息 3 可以将输出的文字进行字体 颜色 大小的变换 4 可对显示过的汉字进行计数 5 显示显每个汉字所对应的内存字节 6 在运行过程中可实现暂停 继续 变速等功能 7 每显示一个汉字后 LED0 小灯会闪烁提示一下 沈阳理工大学课程设计报告 3 2 3 系统的结构框图 按键控制 图 2 1 系统结构框图 暂停 继续 更新字库 显示调速 STM32F103RB 芯片 SD 卡 创建字库 在 LCD 上显示汉 字 沈阳理工大学课程设计报告 4 3 详细设计 3 1 硬件设计 3 1 1 ALIENTEK MiniSTM32 开发板简介 ALIENTEK MiniSTM32 开发板是一款迷你型的开发板 小巧而不小气 简约而不简 单 它的外观尺寸只有 8cm 10cm 大小 板子的设计充分考虑了成本与功能这两个矛盾 面 再结合实际使用的经验及 STM32 的特点 可有可无的选择性价比最高的留下 最 终确定了这样的设计 其资源丰富 设计灵活 特点包括 1 小巧 整个板子尺寸为 8cm 10cm 2cm 2 灵活 板上除晶振外的所有的 IO 口全部引出 特别还有 GPIOA 和 GPIOB 的 IO 口是按顺序引出的 可以极大的方便大家扩展及使用 另外板载独特的一键下载 功能 避免了频繁设置 B0 B1 带来的麻烦 直接在电脑上一键下载 3 资源丰富 板载十多种外设及接口 可以充分挖掘 STM32 的潜质 4 质量过硬 沉金 PCB 全新优质元器件 定制全铜镀金排针 排座 电源 TVS 保护 坚若磐石 3 1 2 功能简介 开机的时候先检测 W25X16 中是否已经存在字库 如果存在 则按次序显示汉字 如果没有 则检测 SD 卡和文件系统 并查找 SYSTEM 文件夹下的 FONT 文件夹 在该 文件夹内查找 UNI2GBK SYS 和 GBK16 FON 在检测到这些文件之后 就开始更新字库 更新完毕才开始显示汉字 每显示一个汉字 LED0 小灯会闪烁一下 WK UP 按键调整显 示汉字的速度 key1 控制继续和暂停 key0 更新 SD 卡 所要用到的硬件资源如下 1 STM32F103RBT6 2 外部 LED0 3 TFTLCD 液晶模块 4 按键 WK UP key1 key0 5 W25X16 6 SD 卡 沈阳理工大学课程设计报告 5 1 STM32 的简单介绍 图 3 1 STM32 原理图 选择 STM32F103RBT6 作为 MCU 原因是其性价比高 128K FLASH 20K SRAM 2 个 SPI 3 个串口 1 个 USB 1 个 CAN 2 个 12 位的 ADC RTC 51 个可用 IO 脚 所以我们选择了它作为我们的主芯片 2 外部 LED0 图 3 2 外部 LED0 原理图 沈阳理工大学课程设计报告 6 其中 PWR 是系统电源指示灯 为蓝色 LED0 和 LED1 分别接在 PA8 和 PD2 上 PA8 还可以通过 TIM1 的通道 1 的 PWM 输出来控制 DS0 的亮度 3 TFTLCD 液晶模块 图 3 3 TFTLCD 液晶显示原理图 TFT LCD 是一个通用的液晶模块接口 OLED 是一个给 OLED 显示模块供电的接口 它和 TFT LCD 拼接在一起 当使用 2 4 2 8 的 LCD 时 我们接到 TFT LCD 上就可 以了 而当我们使用 ALIENTEK 的 OLED 模块时 则接 OLED 排阵做电源 同时会连接 到 TFT LCD 上的部分管脚 从而实现 OLED 与 MCU 的连接 4 按键 图 3 4 按键输入原理图 KEY0 和 KEY1 用作普通按键输入 分别连接在 PA13 和 PA15 上 他们都连接在了 JTAG 相关的引脚上 KEY0 还连接在 SWDIO 上 KEY0 和 KEY1 还和 PS 2 的 DAT 和 CLK 线共用 他们都通过 JTAG 的上拉电阻来提供上拉 沈阳理工大学课程设计报告 7 WK UP 按键连接到 PA0 STM32 的 WKUP 引脚 它除了可以用作普通输入按键外 还可以用作 STM32 的唤醒输入 这个按键是高电平触发的 5 W25X16 图 3 5 25X16 原理图 这是 ALIENTEK MiniSTM32 开发板板载的一颗 FLASH 芯片 型号为 W25X16 这颗 芯片的容量为 16M bit 也就是 2M 字节 容量和 AT45DB161 一样 适合存储不常修改 的数据 比如字库等 6 SD 卡 图 3 6 SD 卡部分原理图 沈阳理工大学课程设计报告 8 插入 SD 卡可以外扩大容量存储设备 可以用来记录数据 SD 卡我们使用的是 SPI 模式通信 SD 卡的 SPI 接口连接到 STM32 的 SPI1 上 SD CS 接在 PA3 上 3 2 软件设计 汉字显示系统需要有 STM32 开发板配合 SD 卡使用 因此其程序需要分为以下几 个文件夹 用来读取 SD 卡上的字库和 UNICODE 到 GBK 的转换码表的 FAT 系统文件 硬 件组成文件 HARDWARE 系统文 汉字字库存储 及读取相应的文件 TEXT 文件 以及存 放主程序文件 USER 文件件 和 STM32 的系统文件 3 2 1 录字软件 双击如图所示的软件 进入主界面 如图 3 7 选择中文 小字库 开 始输入文本 创建 确定 如图 3 8 完成后 将生成的文件拷入 SD 卡中 图 3 7 点阵字库生成器 沈阳理工大学课程设计报告 9 图 3 8 创建字库 3 2 2 主函数部分 int main void u32 fontcnt u8 i j u16 fx fy u8 fontx 2 u8 key u16 t ts Stm32 Clock Init 9 delay init 72 uart init 72 9600 LCD Init KEY Init LED Init SPI Flash Init if Font Init UPD 沈阳理工大学课程设计报告 10 POINT COLOR BLACK LCD Clear WHITE LCD ShowString 60 50 STM32 LCD ShowString 60 70 Font Updating SD Initialize while FAT Init LCD ShowString 60 90 FAT SYS ERROR i SD Initialize if i LCD ShowString 60 110 SD CARD ERROR delay ms 500 LCD Fill 60 90 240 126 WHITE delay ms 500 LED0 LED0 LED1 LED1 while Update Font 0 LCD ShowString 60 110 SYSTEM FILE LOST delay ms 500 LCD ShowString 60 130 Please Check delay ms 500 LED0 LED0 LED1 LED1 LCD Clear WHITE RESET LCD Clear WHITE POINT COLOR RED Show Str 5 5 电子系统设计 16 0 Show Str 140 5 汉字显示系统 16 0 POINT COLOR BLUE Show Str 10 40 内码 高字节 16 0 Show Str 130 40 低字节 16 0 Show Str 10 60 对应汉字 16 0 Show Str 130 60 计数器 16 0 Show Str 60 270 张政 马舒阳 刘佳萍 16 0 沈阳理工大学课程设计报告 11 Show Str 90 290 2015 年 7 月 9 日 16 0 POINT COLOR BLACK fx 15 fy 80 ts 600 while 1 fontcnt 0 for i 0 x81 i 0 xp i fontx 0 i LCD ShowNum 100 40 i 3 16 for j 0 x40 j 220 fx 5 fy 20 if fy 130 POINT COLOR RED while 1 key KEY Scan if key 1 goto UPD if key 2 goto RESET LCD ShowString 60 190 Show Over delay ms 500 LCD ShowString 60 210 Please Check delay ms 500 LCD Fill 60 210 220 230 WHITE Show Font 100 60 fontx 16 0 Show Font fx fy fontx 16 0 t ts while t delay ms 1 沈阳理工大学课程设计报告 12 key KEY Scan if key 1 goto UPD else if key 2 while 1 key KEY Scan if key 1 goto UPD if key 2 break break else if key 3 if ts 600 ts 200 else ts 600 LED0 LED0 3 2 3 硬件部分程序 void KEY Init void 键盘相应程序 RCC APB2ENR 1 CRL GPIOA CRL 0X00000008 GPIOA CRH GPIOA CRH 0X80800000 GPIOA ODR 1 ODR 1 APB2ENR 1 APB2ENR 1 CRH GPIOA CRH 0X00000003 GPIOA ODR 1 CRL GPIOD CRL 0X00000300 GPIOD ODR 1 APB2ENR 1 APB2ENR 1 CRL GPIOA CRL 0XBBB00000 GPIOA ODR 0X7 CR1 0 CR1 1 CR1 1 CR1 1 CR1 0 CR1 1 CR1 1 CR1 7 CR1 0 CR1 1 CR1 switch SpeedSet case SPI SPEED 2 SPI1 CR1 0 CR1 1 CR1 2 CR1 3 CR1 7 CR1 1 SR SPI1 DR TxData retry 0 while SPI1 SR return SPI1 DR 3 2 4 字库相关程序 u32 FONT16ADDR u32 FONT12ADDR u32 UNI2GBKADDR ifdef EN UPDATE FONT u8 temp 512 u8 Update Font void u32 fcluster 0 u32 i u32 tempsys 2 float prog u8 t FileInfoStruct FileTemp 沈阳理工大学课程设计报告 15 if FAT32 Enable fcluster FirstDirClust else fcluster 0 FileTemp F Search fcluster unsigned char folder 0 T FILE if FileTemp F StartCluster 0 return 1 FileTemp F Search FileTemp F StartCluster unsigned char folder 1 T FILE if FileTemp F StartCluster 0 return 2 fcluster FileTemp F StartCluster FileTemp F Search fcluster unsigned char sysfile 2 T SYS if FileTemp F StartCluster 0 return 3 LCD ShowString 20 90 Write UNI2GBK to FLASH LCD ShowString 108 110 F Open i 0 while F Read LCD ShowNum 84 110 t 3 16 UNI2GBKADDR 100000 tempsys 0 UNI2GBKADDR tempsys 1 FileTemp F Size SPI Flash Write u8 tempsys 0 8 delay ms 1000 FONT16ADDR FileTemp F Size UNI2GBKADDR FileTemp F Search fcluster unsigned char sysfile 0 T FON if FileTemp F StartCluste r 0 return 4 LCD ShowString 20 90 Write FONT16 to FLASH 沈阳理工大学课程设计报告 16 F Open i 0 while F Read LCD ShowNum 84 110 t 3 16 tempsys 0 FONT16ADDR tempsys 1 FileTemp F Size SPI Flash Write u8 tempsys 8 8 delay ms 1000 FONT12ADDR FileTemp F Size FONT16ADDR t 0XAA SPI Flash Write LCD ShowString 20 90 Font Update Successed return 0 endif u8 Font Init void u32 tempsys 2 u8 fontok 0 SPI Flash Read if fontok 0XAA return 1 SPI Flash Read u8 tempsys 0 8 UNI2GBKADDR tempsys 0 SPI Flash Read u8 tempsys 8 8 FONT16ADDR tempsys 0 SPI Flash Read u8 tempsys 16 8 FONT12ADDR tempsys 0 return 0 获取字库资源信息 void Get HzMat unsigned char code unsigned char mat u8 size unsigned char qh ql unsigned char i 沈阳理工大学课程设计报告 17 unsigned long foffset qh code ql code if qh 0 x81 ql 0 x40 ql 0 xff qh 0 xff for i 0 i size 2 i mat 0 x00 return if ql 0 x7f ql 0 x40 else ql 0 x41 qh 0 x81 foffset unsigned long 190 qh ql size 2 if size 16 SPI Flash Read mat foffset FONT16ADDR 32 else SPI Flash Read mat foffset FONT12ADDR 24 void Show Font u16 x u16 y u8 font u8 size u8 mode u8 temp t t1 u16 y0 y u8 dzk 32 u16 tempcolor Get HzMat font dzk size if mode 0 for t 0 t size 2 t temp dzk t for t1 0 t1 8 t1 if temp else tempcolor POINT COLOR POINT COLOR BACK COLOR LCD DrawPoint x y POINT COLOR tempcolor temp 1 y if y y0 size y y0 x break else for t 0 t size 2 t temp dzk t 沈阳理工大学课程设计报告 18 for t1 0 t1 8 t1 if temp temp 0 x80 bHz 1 else if x LCD W size 2 y size x 0 if y LCD H size break if str 13 y size x 0 str else LCD ShowChar x y str size mode str x size 2 else bHz 0 if x LCD W size y size x 0 if y LCD H size break Show Font x y str size mode str 2 x size u16 my strlen u8 str u16 len 0 while str 0 str len return len void my stradd u8 str1 u8 str2 沈阳理工大学课程设计报告 19 while str1 0 str1 while str2 0 str1 str2 str2 str1 str1 0 void Show Str Mid u16 x u16 y u8 str u8 size u8 len u16 strlenth 0 strlenth my strlen str strlenth size 2 if strlenth len Show Str x y str size 1 else strlenth len strlenth 2 Show Str strlenth x y str size 1 3 2 5 FAT 系统 用来读取 SD 卡上的字库 FAT 系统相关程序 DWORD FirstDirClust DWORD FirstDataSector WORD BytesPerSector DWORD FATsectors WORD SectorsPerClust DWORD FirstFATSector DWORD FirstDirSector fat32 DWORD RootDirSectors DWORD RootDirCount BYTE FAT32 Enable DWORD Cur Dir Cluster FAT TABLE FAT TAB FileInfoStruct F Info 3 u8 fat buffer 512 u8 LongNameBuffer MAX LONG NAME SIZE BOOL LongNameFlag 0 沈阳理工大学课程设计报告 20 const unsigned char filetype 23 MP1 MP2 MP3 MP4 M4A 3GP 3G2 OGG ACC WMA WAV MID FLA LRC TXT C H FON SYS BMP JPG JPE 3 2 6 程序流程图 结束 复制 SD 卡 创建字库 开始 SD 卡插入 开发板 在 LCD 中显示 相应汉字 按键 暂停 继续 更新 字库 按键 变速 否 Key1Key0WK UP 沈阳理工大学课程设计报告 21 图 3 9 程序流程图 沈阳理工大学课程设计报告 22 4 实验结果及分析 4 1 硬件实验结果 图 4
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化工导论考试题库及答案
- 森林救护知识培训简报课件
- 梧州养发知识培训班课件
- 2025年气象观测员职业技能鉴定模拟题集初级
- 风湿病试题及答案
- 2025年政府公务员考试模拟题及答题技巧
- 2025年教育咨询师初级面试技巧与实战模拟题
- 2025年儿童之家招聘信息员考试试题类型及答题策略指导
- 2025年全国高级健康管理师考试题库及答案
- 2025年注册验船师资格考试(A级船舶检验专业案例分析)模拟试题及答案一
- 五年级下册数学口算题练习1200道有答案可打印
- 海康智慧工地解决方案
- 《KANO模型培训》课件
- 四川省2024年高等职业教育单独招生考试中职类语文试题及答案
- 实验室危化品安全管理培训
- 复苏室患者的交接流程
- 老旧小区改造给排水施工方案
- 【人教版化学】选择性必修1 知识点默写小纸条(答案背诵版)
- DB21-T 2523-2015矿山地质环境恢复治理规程
- 2024天津高考英语试题及答案
- 实验室中央空调施工方案
评论
0/150
提交评论