已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程设计报告 I 摘摘 要要 随着社会经济的迅速发展 如今图片显示系统应用于各个领域中 LCD 显示屏的 技术和产业都取得了长足的发展 作为重要的现代信息发布媒体之一 LCD 显示屏在 证券交易 金融 交通 体育 广告等领域被广泛的应用 基于 STM32 的 LCD 显示 可以更好的满足各种需求 也更便于操作和实现 图片显示系统主要由 STM32 芯片 作为 LCD 彩色显示屏的主要核心控制器 通电后 初始化状态可显示本次课程设计题 目及成员等基本信息 可人为操作对显示信息的汉字进行自定义大小颜色及字体等等 把要显示的图片实现拷入内存卡里 更新内存卡 即图片可进行变换 自定义定时跳 转下一幅图片 也可以通过按键快速跳到下一幅图片 或返回上一张图片 本系统是 利用 STM32 开发板配合 SD 卡实现将已存入 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 芯片介绍 4 3 1 2 功能简介 4 3 2 软件设计 7 3 2 1 主函数部分 8 3 2 2 硬件部分程序 9 3 2 3 识别图片 11 3 2 4 FAT 系统 14 3 2 5 程序流程图 15 4 实验结果及分析 16 4 1 硬件实验结果 16 4 2 结果分析 16 5 结论 17 参考文献 18 沈阳理工大学课程设计报告 1 1 引言 随着嵌入式技术的迅猛发展 人机交互界面也越来越显示出它的重要性 本次课 程设计主要以 TFTLCD 的 LCD 显示模块 完整的实现了图片的循环显示 TFT LCD 即薄膜晶体管液晶显示器 其英文全称为 Thin Film Transistor Liquid Crystal Display TFT LCD 与无源 TN LCD STN LCD 的简单矩阵不同 它在液晶显示屏的 每一个象素上都设置有一个薄膜晶体管 TFT 可有效地克服非选通时的串扰 使显 示液晶屏的静态特性与扫描线数无关 因此大大提高了图像质量 BMP 是一种与硬件设备无关的图像文件格式 使用非常广 它采用位映射存储格 式 除了图像深度可选以外 不采用其他任何压缩 因此 BMP 文件所占用的空间 很大 而且 JPEG 是一种很灵活的格式 具有调节图像质量的功能 允许用不同的压 缩比例对文件进行压缩 支持多种压缩级别 目前 显示技术和显示工业的发展迅速 显示技术是传递视觉的信息技术 液晶 显示器件 LCD 是当今最有发展前途的一种平板显示器件 它具有很多独到的优异特性 它具有显示信息多 易于多彩化 体积小 重量轻 功耗低 寿命长 价格低 无辐 射 无污染 接口控制方便等优点 沈阳理工大学课程设计报告 2 2 总体设计 2 1 图片显示的基本原理 BMP 是一种与硬件设备无关的图像文件格式 使用非常广 它采用位映射存储格 式 除了图像深度可选以外 不采用其他任何压缩 因此 BMP 文件所占用的空间很 大 BMP 文件的图像深度可选 lbit 4bit 8bit 16bit 24bit 及 32bit BMP 文件存储 数据时 图像的扫描方式是按从左到右 从下到上的顺序 典型的 BMP 图像文件由三部分组成 位图文件头数据结构 它包含 BMP 图像文 件的类型 显示内容等信息 位图信息数据结构 它包含有 BMP 图像的宽 高 压缩 方法 以及定义颜色等信息 JPEG 是最常用的图像文件格式 由一个软件开发联合会组织制定 是一种有损压 缩格式 能够将图像压缩在很小的储存空间 图像中重复或不重要的资料会被丢失 因此容易造成图像数据的损伤 尤其是使用过高的压缩比例 将使最终解压缩后恢复 的图像质量明显降低 如果追求高品质图像 不宜采用过高压缩比例 但是 JPEG 压 缩技术十分先进 它用有损压缩方式去除冗余的图像数据 在获得极高的压缩率的同 时能展现十分丰富生动的图像 换句话说 就是可以用最少的磁盘空间得到较好的图 像品质 而且 JPEG 是一种很灵活的格式 具有调节图像质量的功能 允许用不同的 压缩比例对文件进行压缩 支持多种压缩级别 压缩比率通常在 10 1 到 40 1 之间 压缩比越大 品质就越低 相反地 压缩比越小 品质就越好 当然也可以在图像质 量和文件尺寸之间找到平衡点 JPEG 格式压缩的主要是高频信息 对色彩的信息保留 较好 适合应用于互联网 可减少图像的传输时间 可以支持 24bit 真彩色 也普遍应 用于需要连续色调的图像 2 2 图片显示设计分析 针对要实现的功能 采用 STM32 开发板进行设计 它是一款迷你型的开发板 小 巧而不小气 简约而不简单 这样 既能做到经济合理又能实现预期的功能 在程序方面 采用分块设计的方法 这样既减小了编程难度 使程序易于理解 又能便于添加各项功能 该程序将实现浏览PICTURE 文件夹下的所有图片及其名字 配合SD卡能够实现顺序显示出每一副图片 并每隔3s左右切换一幅图片 具体要实现的目标如下 沈阳理工大学课程设计报告 3 1 更新内存卡 即图片可进行变换 2 定时自动跳转下一幅图片 3 可以通过按键快速跳到下一幅图片 4 可以通过按键返回到上一幅图片 5 初始状态显示本次课设的基本信息 6 可对显示信息的汉字进行自定义 2 3 系统的结构框图 STM32 2 1 系统结构框图 存储图像 SD 卡 键盘按键 LED 提示灯 TFT LCD 沈阳理工大学课程设计报告 4 3 详细设计 3 1 硬件设计 3 1 1 芯片介绍 STM32 开发板主要采用 STM32F103RBT6 作为 MCU STM32F103 的型号众多 我们选择这款的原因是看重其性价比 作为一款低端开发板 选择 STM32F103RBT6 是最佳的选择 128K FLASH 20K SRAM 2 个 SPI 3 个串口 1 个 USB 1 个 CAN 2 个 12 位的 ADC RTC 51 个可用 IO 脚 这样的配置无论放到哪里都是很 不错的了 更重要的是其价格 不到 13 元的批量价 足以秒杀很多其他芯片了 所以 我们选择了它作为我们的主芯片 3 1 2 功能简介 开机的时候先检测 SD 卡是否存在 然后初始化 FAT 文件系统 在这之后开始查 找根目录下的 PICTURE 文件夹 如果找到则显示该文件夹下面的图片 循环显示 通 过按 KEY0 和 KEY1 可以快速浏览下一张和上一张 如果未找到图片文件夹 图片 则 提示错误 同样我们也是用 LED0 来指示程序正在运行 所要用到的硬件资源如下 1 STM32 2 外部 LED0 3 TFTLCD 液晶模块 4 KEY0 KEY1 5 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 SD 卡 图 3 5 SD 卡部分原理图 插入 SD 卡可以外扩大容量存储设备 可以用来记录数据 SD 卡我们使用的是 SPI 模式通信 SD 卡的 SPI 接口连接到 STM32 的 SPI1 上 SD CS 接在 PA3 上 3 2 软件设计 图片显示系统需要有 STM32 开发板配合 SD 卡使用 因此其程序需要分为以下几 个文件夹 硬件组成文件 HARDWARE 系统文 可以用来显示汉字的 TEXT 文件 用 来识别图片的 JPEG 文件用来读取 SD 卡上的图片文件的 FAT 文件以及存放主程序文 件 USER 文件件 和 STM32 的系统文件 SYSFILE 解码是通过 AI LoadPicFile 函数来实现的 在该函数里面 会先判断文件的类型 来调用不同的解码函数 解码 JPEG 由 Decode 实现 而解码 BMP 则由 Bmp Decode 函数实现 AI LoadPicFile 函数会将图片以合适的大小显示在液晶上 总是不会超过 你给定的区域 对比输入尺寸大的图片 会自动压缩 解码图片完成后返回解码是否 沈阳理工大学课程设计报告 8 成功的信息 保存 jpegdecode c 并在工程中新建一个 JPEG 的组 把 jpegdecode c 加 入该组下 SysInfoGet 函数用于查找各种系统文件 文件夹以及自定义的文件 文件夹 等 3 2 1 主函数部分 int main void u8 i u8 key FileInfoStruct FileInfo u16 pic cnt 0 u16 index 0 u16 time 0 Stm32 Clock Init 9 delay init 72 uart init 72 9600 LCD Init KEY Init LED Init SPI Flash Init if Font Init POINT COLOR RED LCD ShowString 60 50 Mini STM32 LCD ShowString 60 70 Font ERROR while 1 POINT COLOR BLACK Show Str 60 50 嵌入式课程设计 16 0 Show Str 50 70 张政 张焱 刘佳萍 16 0 Show Str 60 90 图片显示系统 16 0 Show Str 60 110 2015 年 7 月 9 日 16 0 SD Initialize while FAT Init Show Str 60 130 文件系统错误 16 0 i SD Initialize if i Show Str 60 150 SD 卡错误 16 0 delay ms 500 LCD Fill 60 130 240 170 WHITE delay ms 500 LED0 LED0 while SysInfoGet 1 Show Str 60 130 图片文件夹未找到 16 0 delay ms 500 FAT Init SD Initialize LED0 LED0 LCD Fill 60 130 240 170 WHITE delay ms 500 沈阳理工大学课程设计报告 9 Show Str 60 130 开始显示 16 0 delay ms 1000 Cur Dir Cluster PICCLUSTER while 1 pic cnt 0 Get File Info Cur Dir Cluster FileInfo T JPEG T JPG T BMP if pic cnt 0 LCD Clear WHITE while 1 if time 2 0 Show Str 32 150 没有图片请先 COPY 图片到 SD 卡的 PICTURE 文件夹 然后重启 16 0 else LCD Clear WHITE time delay ms 300 FileInfo index 1 while 1 Get File Info Cur Dir Cluster FileInfo T JPEG T JPG T BMP LCD Clear WHITE AI LoadPicFile FileInfo 0 0 240 320 POINT COLOR RED Show Str 0 0 FileInfo F Name 16 1 while 1 key KEY Scan if key 1 break else if key 2 if index 1 index 2 else index pic cnt 1 break delay ms 1 time if time 100 0 LED0 LED0 if time 3000 time 0 break index if index pic cnt index 1 3 2 2 硬件部分程序 void KEY Init void 键盘相应程序 RCC APB2ENR 1 CRL GPIOA CRL 0X00000008 GPIOA CRH GPIOA CRH 0X80800000 沈阳理工大学课程设计报告 10 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 沈阳理工大学课程设计报告 11 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 3 识别图片 FileInfoStruct CurFile 当前解码 操作的文件 void AI Drow Init void 沈阳理工大学课程设计报告 12 float temp temp1 temp float PICINFO S Width PICINFO ImgWidth temp1 float PICINFO S Height PICINFO ImgHeight if temp1 temp1 1 使图片处于所给区域的中间 PICINFO S XOFF PICINFO S Width temp1 PICINFO ImgWidth 2 PICINFO S YOFF PICINFO S Height temp1 PICINFO ImgHeight 2 temp1 10000 扩大 10000 倍 PICINFO Div Fac temp1 PICINFO staticx 500 PICINFO staticy 500 放到一个不可能的值上面 初始化量化表 全部清零 void InitTable void short i j sizei sizej 0 PICINFO ImgWidth PICINFO ImgHeight 0 rrun vvalue 0 BitPos 0 CurByte 0 IntervalFlag FALSE restart 0 for i 0 i 3 i 量化表 for j 0 j 64 j qt table i j 0 comp num 0 HufTabIndex 0 将解出的字按 RGB 形式存储 void StoreBuffer void short i 0 j 0 unsigned char R G B int y u v rr gg bb u16 color u16 realx sizej u16 realy 0 for i 0 i SampRate Y V 8 i if sizei i PICINFO ImgHeight realy PICINFO Div Fac sizei i 10000 if IsElementOk realx realy 0 continue 沈阳理工大学课程设计报告 13 for j 0 j SampRate Y H 8 j if sizej j PICINFO ImgWidth realx PICINFO Div Fac sizej j 10000 if IsElementOk realx realy 1 continue y Y i 8 SampRate Y H j u U i V YtoU 8 SampRate Y H j H YtoU v V i V YtoV 8 SampRate Y H j H YtoV rr y 8 gg y 8 bb y 8 R unsigned char rr G unsigned char gg B unsigned char bb if rr else if rr255 G 255 else if gg255 B 255 else if bb 3 color color 2 color color 3 POINT COLOR color LCD DrawPoint realx PICINFO S XOFF realy PICINFO S YOFF else break else break void IQtIZzMCUComponent short flag short H VV short i j short pQtZzMCUBuffer short pMCUBuffer switch flag case 0 H SampRate Y H VV SampRate Y V pMCUBuffer MCUBuffer pQtZzMCUBuffer QtZzMCUBuffer break 沈阳理工大学课程设计报告 14 case 1 H SampRate U H VV SampRate U V pMCUBuffer MCUBuffer Y in MCU 64 pQtZzMCUBuffer QtZzMCUBuffer Y in MCU 64 break case 2 H SampRate V H VV SampRate V V pMCUBuffer MCUBuffer Y in MCU U in MCU 64 pQtZzMCUBuffer QtZzMCUBuffer Y in MCU U in MCU 64 break for i 0 i VV i for j 0 j H j IQtIZzBlock pMCUBuffer i H j 64 pQtZzMCUBuffer i H j 64 flag 3 2 4 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 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 沈阳理工大学课程设计报告 15 3 2 5 程序流程图 Y N 系统初始化 插入 SD 卡 结束 否读取数据 在 LCD 上显 示图片及信息 跳到上一幅或 下一幅图片 3s 后自动跳 转到下一幅 有键按下 开始 图 3 6 程序流程图 沈阳理工大学课程设计报告 16 4 实验结果及分析 4 1 硬件实验结果 图 4 1 初始化显示屏 图 4 2 显示图片 4 2 结果分析 接通电源后 正确的读取 SD 卡信息后 LCD 液晶显示屏上显示实验题目及制作成 员等基本信息
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生态板生产车间责任制度
- 教育局消防安全责任制度
- 注册安全工程师责任制度
- 建设单位质量责任制度
- 惠州市政府行政责任制度
- 物业各岗位消防责任制度
- 赛事活动安全责任制度
- 洗浴消防责任制度范本大全
- 物业部管理责任制度汇编
- 城镇污水处理责任制度
- 2025廉政知识测试题及答案
- 儿童科普宇宙黑洞课件
- 优化人员岗位管理制度
- 《民族团结一家亲同心共筑中国梦》主题班会
- 音乐鉴赏与实践 课件《万物欢腾》
- CJ/T 476-2015建筑机电设备抗震支吊架通用技术条件
- 高考语文专题复习:辨析并修改病句
- 钱大妈加盟合同协议
- 濒危野生动植物种国际贸易公约CITES附录I附录II和附录
- 2025年新高考全国Ⅰ卷英语模拟试卷(含答案)
- 2024年江苏农牧科技职业学院高职单招语文历年参考题库含答案解析
评论
0/150
提交评论