好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

沈理嵌入式课设-图像显示系统(共12页).doc

12页
  • 卖家[上传人]:des****85
  • 文档编号:242625984
  • 上传时间:2022-01-19
  • 文档格式:DOC
  • 文档大小:83KB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 精选优质文档-倾情为你奉上专心-专注-专业摘摘 要要LCD 显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LCD 显示屏在证券交易、金融、交通、体育、广告等领域被广泛的应用基于STM32 的 LCD 显示可以更好的满足各种需求,也更便于操作和实现本系统是利用STM32 开发板配合 SD 卡实现将已存入 SD 卡中的图片循环的显示在 LCD 彩色显示屏上关键词: STM32 LCD 液晶显示屏 图片显示精选优质文档-倾情为你奉上专心-专注-专业目 录1222223344591010111213精选优质文档-倾情为你奉上专心-专注-专业1 引言随着嵌入式技术的迅猛发展,人机交互界面也越来越显示出它的重要性本次课程设计主要以 TFTLCD 的 LCD 显示模块,完整的实现了图片的循环显示TFT-LCD即薄膜晶体管液晶显示器其英文全称为:Thin Film Transistor-Liquid Crystal DisplayTFT-LCD 与无源 TN-LCD、STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT) ,可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

      目前,显示技术和显示工业的发展迅速显示技术是传递视觉的信息技术液晶显示器件 LCD 是当今最有发展前途的一种平板显示器件,它具有很多独到的优异特性它具有显示信息多、易于多彩化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点精选优质文档-倾情为你奉上专心-专注-专业2 总体设计2.1 图片显示的基本原理 JPEG 是最常用的图像文件格式,由一个软件开发联合会组织制定,是一种有损压缩格式,能够将图像压缩在很小的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤JPEG 格式压缩的主要是高频信息,对色彩的信息保留较好,适合应用于互联网,可减少图像的传输时间,可以支持 24bit 真彩色,也普遍应用于需要连续色调的图像2.2 图片显示设计分析针对要实现的功能,采用 STM32 开发板进行设计,它是一款迷你型的开发板,小巧而不小气,简约而不简单这样,既能做到经济合理又能实现预期的功能具体要实现的目标为:更新内存卡,即图片可进行变换;定时自动跳转下一幅图片;可以通过按键快速跳到下一幅图片;可以通过按键返回到上一幅图片;初始状态显示本次课设的基本信息;可对显示信息的汉字进行自定义。

      2.3 系统的结构框图STM322.1 系统结构框图存储图像SD 卡键盘按键LED 提示灯TFTLCD精选优质文档-倾情为你奉上专心-专注-专业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 卡精选优质文档-倾情为你奉上专心-专注-专业3.2 软件设计解码是通过 AI_LoadPicFile 函数来实现的,在该函数里面,会先判断文件的类型,来调用不同的解码函数,解码 JPEG 由 Decode 实现,而解码 BMP 则由 Bmp Decode函数实现AI_LoadPicFile 函数会将图片以合适的大小显示在液晶上(总是不会超过你给定的区域) ,对比输入尺寸大的图片,会自动压缩解码图片完成后返回解码是否成功的信息保存 jpegdecode.c,并在工程中新建一个 JPEG 的组,把 jpegdecode.c 加入该组下 SysInfoGet 函数用于查找各种系统文件/文件夹以及自定义的文件/文件夹等主要程序如下: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); 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,&pic_cnt);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=&F_Info0;index=1;while(1) Get_File_Info(Cur_Dir_Cluster,FileInfo,T_JPEG|T_JPG|T_BMP,&index);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(index1)index-=2;else index=pic_cnt-1;break; delay_ms(1);time+;if(time%100=0)LED0=!LED0;精选优质文档-倾情为你奉上专心-专注-专业if(time3000)time=0;break;index+;if(indexpic_cnt)index=1; void LCD_ShowString(u16 x,u16 y,const u8 *p) while(*p!=0) if(xMAX_CHAR_POSX)x=0;y+=16; if(yMAX_CHAR_POSY)y=x=0;LCD_Clear(WHITE); LCD_ShowChar(x,y,*p,16,0); x+=8; p+; void Show_Str(u16 x,u16 y,u8*str,u8 size,u8 mode)u8 bHz=0; while(*str!=0) if(!bHz) if(*str0 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; 3.2.4 程序流程图 Y N系统初始化插入 SD 卡结束否读取数据在 LCD 上显示图片及信息跳到上一幅或下一幅图片3s 后自动跳转到下一幅有键按下?开始图 3.6 程序流程图精选优质文档-倾情为你奉上专心-专注-专业4 实验结果及分析4.1 硬件实验结果4.2 结果分析接通电源后,正确的读取 SD 卡信息后,LCD 液晶显示屏上显示实验题目及制作成员等基本信息。

      随后自动跳转到图片显示模式不对实验板进行操作时,每 3 秒会跳转到下一张图片,显示图片及相应的图片信息,由于图片的大小及像素不同,刷新显示的速度也有所不同,图片显示完毕后会伴随 LED 小灯闪烁 当按下 WK_UP 键,可显示上一张图片;按下 key1 键,显示下一张图片按下 key0 可对 SD 卡进行更新图片设定为循环演示若 SD 卡没插入或内容不识别,屏幕上会有无法读取的提示按复位键可重新演示精选优质文档-倾情为你奉上专心-专注-专业5 结论本次基于 ARM 的汉字显示系统耗时很久,最后做出的来的功能也是经过反复多次调试才全部达标,是一次很有意义的学习和动手经历从懵懂嵌入式到在 STM 开发板上成功编写出相应的程序,下载程序,调试成功的那一刻我们的喜悦,是无法用任何语言来加以形容的!本次课程设计很好的锻炼了我们的动手能力以及团队合作能力,使我加深了对嵌入式的认识,并且熟悉了嵌入式系统的设计流程,收获丰硕让我们开阔了视野,同时也增长了见识,在课余时间发挥想象和积极思考,锻炼了自己的思维能力在修改程序等设计上我们大胆创新,敢于尝试,并且积极搜查资料,认真分析,选择出最优的程序组合,使整个系统能够按照设计要求稳定运行。

      通过本次课程设计我们的感受到看再多的课本可能效果也不如实际编程的学习效率高调试程序比编程本身枯燥的多,但是在某种意义上更加重要但是实际结果能不能达到还要看调试,要考虑算法逻辑、语法、内存地址等诸多方面这一点在对硬件编程上体现的尤为明显本实验最后完成了图片显示的诸多功能,但并没有向其他领域拓展的功能,是比较遗憾的地方希望在以后能得到很好的弥补!精选优质文档-倾情为你奉上专心-专注-专业参考文献1 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.