资源描述
毕 业 设 计 设计题目:基于单片机的多功能数码相框设计与实现学 院 物理科学与工程技术学院专 业 电子信息工程 年 级 2009 级 姓 名 刘勇 指导教师 刘莉 职 称 讲师 (2013 年 6 月)宜春学院教务处制目 录1毕业设计任务书2毕业设计开题报告3毕业设计答辩资格审查表4论文原创性申明5论文版权使用授权书6毕业设计正文7外文资料译文8外文资料原文宜春学院毕业设计任务书题 目: 基于单片机的多功能数码相框设计与实现 学 院: 物理科学与工程技术学院 系 电子与信息工程系 专 业: 电子信息工程 班 级: 09 电信 学 号: 0934301122 姓 名: 刘勇 起止日期: 2012.11.17-2013.5.18 指导教师: 刘莉 职称: 讲师 系 主 任: 审核日期: 2说 明1. 毕业论文任务书由指导教师填写,并经教研室审定,下达到学生。2. 进度表分前、中、后三期由学生填写,每期填写后交指导教师签署审查意见,并作为毕业论文工作检查的主要依据。3. 学生根据指导教师下达的任务书独立完成开题报告,3 周内提交给指导教师批阅。4. 本任务书在毕业论文完成后,与论文一起交指导教师,作为论文评阅和毕业论文答辩的主要档案资料,是学士学位论文成册的主要内容之一。3一、毕业论文的要求和内容数码相框又叫电子相册,是一种可以播放图片的电子设备。数码相框硬件由STC12C5A60S2单片机、ILI9325芯片控制的2.4TFT彩屏、按键、发光二极管、SD卡等部分构成,能实现BMP图片的播放、简易万年历、演示程序以及系统时间日期设置功能,同时能实现简单的GUI显示控制。系统的功能切换由KEY_ENTER、KEY_NEXT、KEY_PRE、KEY_UP、KEY_DOWN_EXIT完成。其中KEY_ENTER为“确认”键,当满足一定条件时,按下此键进入相应功能程序,。KEY_NEXT为“向右”按键,可实现鼠标向右移动、下一张图片切换、是非选择、时间日期增加等功能。KEY_PRE为“向左”按键,可实现鼠标向左移动、上一张图片切换、是非选择、时间日期减小等功能。KEY_UP为“向上”按键,实现鼠标向上移动。KEY_DOWN_EXIT为“向下退出”键,实现鼠标向下移动或退出功能。电子相册、万年历、系统设置、演示程序是通过轻量级任务系统Protothreads简称pt)进行切换的,pt是一个占用内存极小的C语言封装宏函数库,为一种无堆栈的轻量线程环境,能够实现模拟线程的条件阻塞、信号量操作等操作系统中特有的机制,从而使程序实现多线程操作。它的最大特点就是每个pt线程只需增加十行代码,并且只占用2字节的RAM资源。这使像51这种RAM资源小微控制器可以很轻松的实现pt多任务进程。在BMP图片的解码显示速度上要求刷新一幅图片所需时间在5秒以下。二、研究方案、目标本系统采用 STC12C5A60S2单片机芯片作为系统的核心部件,它除了具备微机 CPU的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的输入量、控制系统的输出量,实现自动控制。在本次设计中采用技术来实现电单片机子相册功能。方案的设计可以从以下几个方面来确定。微处理器的选择,STC12 系列单片机是我国宏晶科技公司生产的单时钟/机器周期(1T)的单片机, 是高速/低功耗/超强抗干扰的新一代 8051单片机,指令代码完全兼容传统 8051,但速度快 8-12倍。还增加了 ISP(在系统编程)/IAP(在应用编程)编程、看门狗和 MAX810专用复位电路等功能,内部资源非常丰富,flash 容量和 RAM容量可选范围宽。在本次设计中采用 STC12C5A60S2单片机,它具有 60k的程序存储空间,1280Byte 的 RAM空间,在保证本系统功能实现的基础上,还保留有很大的升级空间,非常适合用来设计这种读写数据大的场合;显示电路的设计,随着信息科技的快速发展,液晶显示的使用越来越方便,已被普遍的使用。由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便,因此在这里采用液晶显示技术,使用 ILI9325控制的 TFT彩屏作为整个系统的显示模块;GUI 界面控制电路的设计;以及 SD卡电路的设计;其中 SD卡的设计至关重要,是决定本设计成败的关键,因为 SD卡里面存储有电子相册需要播放的 BMP图片、系统应用程序图标和其他系统所需资源。4SD卡设计成功后,将 SD卡中的图片数据读出通过单片机控制彩屏显示出来,从而实现电子相册的功能。5三、阅读书目清单1现有主流数码相框方案解析及对比EB/OL.http:/www.liangteng.com/,2008.2李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础M.北京:清华大学出版社,2005.3宋戈,黄鹤松,员玉良等.51 单片机应用开发范例大全M.北京:人民邮电出版社,2010.4唐继贤.51 单片机应用系统开发实例精解 C 语言M.上海:上海科学技术出版社,2011.5苏义鑫,程敏,何力.基于 AT89C52 单片机的 SD 卡读写设计J. 世界电子元器件,2008,(5):65-69.6林倩,严桂林.基于 STC12C5A60S2 单片机的 SD 卡读写J.电子元器件应用,2010,(4):1.7倪天龙,路林.基于 STC12C5A60S2 的电子相框设计J.郑州轻工业学院学报(自然科学版),2011,(5):31-33,47.8杨永竹.液晶显示模块图像的编辑以及点阵数据的提取J.仪表技术与传感器,2003,(8):48-50.9何钦铭,颜晖.C 语言程序设计M.北京:高等教育出版社,2008.10闫石,马潮.时间触发模式下的 Protothreads 设计应用J.单片机与嵌入式系统应用 ,2009,(1).11Dunkds Adam.Protothreads- Lightweight,Stackless Threads in COL,2006200807http:/dunkels.com/adam/pt/ .12周兴华.51 单片机驱动彩屏的设计J.无线电,2012,(2):62-66. 13洪岳炜,王百鸣,谢超英.一种易于移植和使用的文件系统FatFs_ModuleJ .单片机与嵌入式系统应用,2008(5).14贾玉珍,靳冰,刘琮等.BMP 文件结构的信息隐藏方法与实现J.江西理工大学学报,2009,(1):42-44.15龚成清.RLE 改进算法对 BMP 图像无损压缩的实现J.现代计算机,2006,(12):79-81,92.16李伟,张利华.BMP 文件解码的研究与实现J.计算机工程与设计,2006,(7):1180-1182 .6四、毕业论文进度计划序号 各阶段工作内容 起止日期 备注1 查阅资料,撰写开题 报告 2012.11.152013.01.052 总体方案设计 2013.01.06-02.043 软、硬件详细设计 2013.02.0503.204 完成论文初稿 2013.03.2104215 修改定稿 2013.04.22-05.18五、主要参考资料1现有主流数码相框方案解析及对比EB/OL.http:/www.liangteng.com/,2008.2李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础M.北京:清华大学出版社,2005.3宋戈,黄鹤松,员玉良等.51 单片机应用开发范例大全M.北京:人民邮电出版社,2010.4唐继贤.51 单片机应用系统开发实例精解 C 语言M.上海:上海科学技术出版社,2011.5苏义鑫,程敏,何力.基于 AT89C52 单片机的 SD 卡读写设计J. 世界电子元器件,2008,(5):65-69.6林倩,严桂林.基于 STC12C5A60S2 单片机的 SD 卡读写J.电子元器件应用,2010,(4):1.7倪天龙,路林.基于 STC12C5A60S2 的电子相框设计J.郑州轻工业学院学报(自然科学版),2011,(5):31-33,47.8杨永竹.液晶显示模块图像的编辑以及点阵数据的提取J.仪表技术与传感器,2003,(8):48-50.9何钦铭,颜晖.C 语言程序设计M.北京:高等教育出版社,2008.10闫石,马潮.时间触发模式下的 Protothreads 设计应用J.单片机与嵌入式系统应用 ,2009,(1).11Dunkds Adam.Protothreads- Lightweight,Stackless Threads in COL,2006200807http:/dunkels.com/adam/pt/ .7六、毕业论文进度表(本表由学生填写,每期分别交指导教师签署审查意见)前 期(2012 年 11 月17 日至2013 年 1 月8 日)学生主要工作:去图书馆借阅与数码相框相关的书籍,并通过上网的方式来收集相关的资料,了解数码相框的相关知识及其发展趋势,同时与老师联系,咨询一些毕业设计方面的信息并在老师的指导下进行一些大致工作。在电脑上安装 Keil uVision4 和 Altium Designer 软件,学会用它们设计并在开发板上仿真一些模块电路的程序,为毕业设计的的写作作准备。指导教师审查意见:年 月 日8中 期( 2013 年 1月 12 日至2013 年 5 月5 日)学生主要工作:整理好前期收集的一些资料并认真阅读,做好相关的知识准备,对设计课题的可行性进行分析,初步形成设计的大体思路,形成基本框架,确定设计方案和目标,将之前做好的各个部分的设计组织起来,完成各个电路模块的设计和程序设计仿真并形成初稿。指导教师审查意见:年 月 日9后 期(2013 年 5 月 7日至2013 年 5 月 18日)学生主要工作:将设计初稿交给指导老师审查,依据老师的一些意见和建议来对论文进行修改和完善,完成论文终稿。指导教师审查意见:年 月 日10七、其他(学生提交)1开题报告 1 份 2外文资料译文 1 份(1000 字以上,并附资料原文) 3设计 1 份(理科 4000 字以上,文科 6000 字以上) 指 导 教 师: 系 负 责 人: 学生开始执行任 务 书 日 期 : 学 生 姓 名 : 送交毕业设计日 期 : 宜春学院毕业设计开题报告题 目:基于单片机的多功能数码相框设计与实现 学 院:物理科学与工程技术学院 系 电子与信息工程系 专 业: 电子信息工程 班 级: 09 电信 学 号: 0934301122 姓 名: 刘勇 指导教师: 刘莉 填表日期: 2012 年 11 月 26 日2一、选题的依据及意义数码相框是一个浏览图片的电子设备,具有很多传统纸质照片不可比拟的优点。传统纸质的相册占用空间大,容易丢失,携带不方便,而且不能永久保存,时间久了会变得很模糊,致使很值得纪念的相片失去了纪念的意义。而数码相框可以很好的解决这些问题,而且数码相框能以图、文、声、像等多种方式呈现给用户,使用户可以获得听觉及视觉上的享受。数码相框还可以使用计算机方便的修改编辑照片,使照片更具个性化。同时数码相框可以快速的查找检索到所要浏览的相片,具有永不掉色和永久保存,复制分享照片非常方便,携带方便,而且还可以随时将自己旅游、学习、毕业留影、生活中的点点滴滴拍摄成照片加入到数码相框中浏览,方便与家人朋友同事分享自己的相片。为老人准备一个精致小巧的数码相框,把老人的亲人在外拍的各种有意思的相片放入数码相册中,对老人的老年生活来说会是一个不错的选择。正是因为数码相框具有如上那么多的优点,数码相框的发展需求才越来越大,因此选择数码相框作为毕业设计课题将会是一个不错的选择。二、国内外研究现状及发展趋势(含文献综述)数码相框从刚提出发展到现在,已有近九年的时间。起初数码相框的解决方案多数是移植其他系统的平台,而用于数码相框的专业平台不多。现在,数码相框市场需求越来越大,各种用于数码相框的专业平台也越来越成熟,各种解决方案也数不胜数。而在 ARM,DSP,Nios II等高端平台上更是已开发出了各种各样的数码相框,更能多,这类数码相框一般还具有音视频播放等多媒体功能。近几年,现场可编程逻辑阵列(FPGA)发展迅猛,由于 FPGA在实现复杂算法时会提高实时性,因此在数据计算、通信、自动控制等领域的应用越来越广泛,使用它减少了系统开发的风险和成本,缩短了开发维护周期。因为 FPGA的快速发展,采用 Nios II处理器的自定义指令,而且硬件也能实现一些重要的算法,所以使得数据处理的速度很快,保证了整个系统的良好的实时性。并且在外围电路不改变的情况下,通过 FPGA内部充足的硬件逻辑资源,能很方便的对系统升级及功能增强。所以,FPGA 是一个发展趋势。嵌入式现在在电子领域是最热门的概念之一,是当前电子技术发展的又一新热点。它是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统,在消费电子产品中应用非常广泛。嵌入式系统在硬件上已经进入片上系统阶段,使用片上系统开发产品设计快速、灵活,具有完善的软件开发平台,使基于 FPGA的片上系统得到了广泛的应用。采用片上系统作为数码相框的设计将是一种前所未有的新方法。三、本课题研究内容(1)主要实现数码相框功能,解码 SD 卡中的 BMP 图片并将其显示到液晶显示屏上。(2)有按键控制系统,能用按键控制,进行程序间的切换,并能用按键对 BMP 图片的播放进行控制,例如上下幅图片的切换,自动播放的切换。还能用按键对系统时间进行设置。(3)用定时器实现软时钟,能正确显示当前时间、日期以及星期,并设计制作一个简易的万年历程序。(4)实现多任务图片菜单设计,当鼠标移到应用程序图标处,按下确定键进入应用程序。 四、本课题研究方法3本课题是使用实验的研究方法,数码相框的现有专业解决放啊都是基于 ARM 或者 DSP 等高端处理器所设计的嵌入式系统。这种数码相框一般都带有适合本处理器的操作系统,例如 UCOS 等微操作系统,操作系统一般带有文件系统,不需要移植其他操作系统就可以方便的对存储在 SD 卡中的各种文件进行读写操作。而基于单片机等低端处理器的数码相框解决方案则少之又少,根据课题所提出的要求和所要实现的功能,在单片机开发板上进行实验验证。实验步骤包括以下几步:(1)编写各个模块的驱动程序,将各个模块的硬件驱动,使其正常工作。(2)第一步功能实现后,再根据课题要求,考虑移植一个功能完善而又精简的文件系统,实现对存储在 SD 卡中的 BMP 图像文件进行读操作。经过网上查找资料,最终确定移植一个占用内存很小的文件系统 FATFS,这个文件系统不仅代码量少,而且功能强大,还不依赖于任何硬件,方便移植。(3)移植了文件系统后,接下来要做的就是对 BMP 图片的解码工作了,利用文件系统对存储在 SD 卡中的 BMP 图像文件数据读取出来并送单片机处理,单片机将数据送液晶显示屏显示,就可以实现 BMP 图像文件的显示了。经过以上三个步骤的验证,数码相框的功能已经基本上实现了,需要做的就是不停的优化程序代码,调试程序,使其性能能满足课题所需的要求,在速度和解码图片显示的质量上都要达到一定的性能要求。通过不断的实验和改进程序,从而使整个系统的软件功能完善,再进行相应硬件的设计。五、研究目标、主要特色及工作进度研究目的:实现 BMP 图片的解码操作,实现数码相框功能。主要特点:通过 GUI函数库,设计出比较漂亮的图片播放显示控制界面,移植入一个轻量级线程库,使系统实时性得到提高,并且移植了移植功能强大的文件系统,可以对 SD卡中的文件进行各种操作,能将 SD卡中的 BMP图片解码显示到液晶显示屏上。并利用单片机的定时器设计了一个软时钟,在软时钟的基础上实现了简易万年历的功能,同时能对系统的时间日期进行设置,以便准确调时。工作进度:(1)2012.11.152013.01.05 收集各种与设计相关的软硬件资料并仔细阅读,直到对所做设计有一个比较清晰的认识和初步的设计思路。(2)2013.01.06-03.20 对所收集的资料进行整理,确定设计研究方案,按要求编写开题报告。(3)2013.03.2104.20 根据任务书和开题报告以及收集的各种有用资料进行初步设计,进行电路模块的验证,验证最简单的电路模块是否工作正常,循序渐进的完成每个电路模块的设计。各电路模块硬件设计完成后编写各个模块的驱动程序,不断的调试软硬件,直到该模块软硬件都正常工作。(4)2013.04.2105.15 完成了各电路模块的软硬件设计后,将各模块合并成一张电路图,进行系统总硬件设计。然后编写系统源程序,通过调用上一步所设计的各个模块的驱动程序,不断完善程序,设计出漂亮的 GUI显示界面。(5)2013.05.16-05.18 所有软硬件设计都成功实现了后,开始编写毕业设计正文。4六、参考文献1现有主流数码相框方案解析及对比EB/OL.http:/www.liangteng.com/,2008.2李群芳,肖看.单片机原理、接口及应用嵌入式系统技术基础M.北京:清华大学出版社,2005.3宋戈,黄鹤松,员玉良等.51 单片机应用开发范例大全M.北京:人民邮电出版社,2010.4唐继贤.51 单片机应用系统开发实例精解 C 语言M.上海:上海科学技术出版社,2011.5苏义鑫,程敏,何力.基于 AT89C52 单片机的 SD 卡读写设计J. 世界电子元器件,2008,(5):65-69.6林倩,严桂林.基于 STC12C5A60S2 单片机的 SD 卡读写J.电子元器件应用,2010,(4):1.7倪天龙,路林.基于 STC12C5A60S2 的电子相框设计J.郑州轻工业学院学报(自然科学版),2011,(5):31-33,47.8杨永竹.液晶显示模块图像的编辑以及点阵数据的提取J.仪表技术与传感器,2003,(8):48-50.9何钦铭,颜晖.C 语言程序设计M.北京:高等教育出版社,2008.10闫石,马潮.时间触发模式下的 Protothreads 设计应用J.单片机与嵌入式系统应用 ,2009,(1).11Dunkds Adam.Protothreads- Lightweight,Stackless Threads in COL,2006200807http:/dunkels.com/adam/pt/ .12周兴华.51 单片机驱动彩屏的设计J.无线电,2012,(2):62-66. 13洪岳炜,王百鸣,谢超英.一种易于移植和使用的文件系统FatFs_ModuleJ .单片机与嵌入式系统应用,2008(5).14贾玉珍,靳冰,刘琮等.BMP 文件结构的信息隐藏方法与实现J.江西理工大学学报,2009,(1):42-44.15龚成清.RLE 改进算法对 BMP 图像无损压缩的实现J.现代计算机,2006,(12):79-81,92.16李伟,张利华.BMP 文件解码的研究与实现J.计算机工程与设计,2006,(7):1180-1182 .宜春学院 2013 届毕业设计答辩资格审查表题 目 基于单片机的多功能数码相框设计与实现 学生姓名 刘勇 专业 电子信息工程 班级 09电信 学号 0934301122论文完成情况 完成开题报告 完成外文资料翻译 完成中、英文摘要 完成检查内容软硬件验收 完成论文期间考勤情况 满勤 累计旷课时间 无学生自查说明本人严格按照任务书进度开展论文设计工作及时发现问题并发馈给指导老师,跟老师一起探讨最佳解决方案,不断的改进设计;严格按照任务书的要求,对论文进行排版,确保内容的准确性、格式无误的情况下完成毕业论文设计工作。学生签名:年 月 日指导教师意见(说明是否进行答辩及评定成绩)指导教师签名:成绩 年 月 日宜春学院论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。对本文的研究作出重要贡献的个人和集体,均在文中以明确方式表明。本人完全意识到本申明的法律责任,其后果由本人承担。作者签名:日 期:论文版权使用授权书本论文作者完全了解学校有关保留、使用论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权宜春学院可以将本论文的全部或部分内容编入数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。作者签名: 日期:导师签名: 日期:宜春学院物理科学与工程技术学院毕业设计I基于单片机的多功能数码相框设计与实现宜春学院 物理科学与工程技术学院 电子信息工程 刘勇指导老师:刘莉摘要:设计并实现了一款基于单片机的电子数码相框。系统主要包括 4 个任务程序:图片播放器、演示程序、万年历程序以及系统设置程序。通过按键选择,支持人工控制播放及系统自动播放两种播放功能。采用一种开源的适合 SD 卡使用的 FATFS 文件系统,实现对 SD 卡内的文件进行读、写、枚举操作;通过定时器设计产生系统时间;采用软件解码技术,对存储在 SD 卡 photo 目录下的BMP 图像文件进行解码操作,并将其显示到液晶显示屏上。通过对多任务实时操作系统Protothreads 的移植,保证了系统工作的实时性,实现了系统主菜单和应用程序之间切换。由于系统功能的实现主要依赖于软件程序,从而使系统具有灵活性、方便移植、硬件结构简单、外围器件少,产品成本低,系统维护和升级容易等特点。关键词:数码相框;单片机;文件系统;多任务;图片解码Abstract: A digital photo frame based on the single chip microcomputer ( scm) was designed and implemented. Four task programs such as pictures player, demo program, calendar program, and system setup were mainly included in this system. Manual controlled play and autoplay were all supported through the selection button. An open source FATFS file system which is suited to the secure digital (SD) card was adopted to realize reading, writing, enumeration operation of the card; System time was designed by timer; software decoding technology was used to implement the decoding operation of BMP image files in the photo directory of the SD card, so that to display on the LCD panel. To ensure the system working in real time , and to realize the programs exchanging between system main menu and application program,a multiprocessing real time operating system was transplanted , Because the system function was mainly depended on the software,it has many excellent characteristics such as the flexibility, easy to transplant, simple hardware structure, less periphery components, low product cost, system maintenance and upgrade easily and so on.Key words:Digital Photo Frame ; Single Chip Microcomputer ; File System ; Multi-tasking ; Picture Decoding宜春学院物理科学与工程技术学院毕业设计II目 录1 前言 11.1 选题背景 .11.2 国内外研究现状及发展趋势 .11.3 论文研究的主要内容 .12 方案设计与选择 12.1 数码相框主流设计方案 .12.2 本课题设计方案介绍 .22.3 系统总体硬件介绍 .23 详细硬件设计 33.1 STC12C5A60S2 单片机概述 33.1.1 I/O 口各种不同的工作模式及配置介绍 .33.1.2 单片机最小系统 43.2 电源电路 .43.3 SD 卡接口电路 53.4 按键电路 .53.5 LCD 液晶显示电路 .64 数码相框的软件设计 64.1 软件总体设计 .64.1.1 Protothreads 极轻量级系统介绍 74.2 驱动程序设计 .84.2.1 SPI 驱动程序设计 84.2.2 SD 卡驱动程序设计 .84.2.3 ILI9325 驱动程序设计 .94.2.4 鼠标按键驱动程序设计 104.3 FATFS 文件系统移植设计 .114.3.1 FATFS 文件系统介绍 114.3.2 FAT 文件系统的结构 .114.3.3 FATFS 文件系统移植过程 124.3.4 FATFS 文件系统读取文件过程 124.4 BMP 图像解码程序设计 .144.4.1 BMP 图像文件简介 144.4.2 BMP 图像软件解码过程 144.4.3 BMP 图像的显示控制 154.5 系统时间程序设计 .174.6 万年历程序设计 .184.7 系统设置程序设计 .185 实现与测试 195.1 图像显示结果及分析 .196 结论与展望 22参考文献 23谢 辞 24附录 1 总电路图 .25附录 2 系统源程序 .26宜春学院物理科学与工程技术学院毕业设计11 前言1.1 选题背景数码相框是一个浏览图片的电子设备,具有很多传统纸质照片不可比拟的优点。传统纸质的相册占用空间大,容易丢失,携带不方便,而且不能永久保存,时间久了会变得很模糊,致使很值得纪念的相片失去了纪念的意义。而数码相框可以很好的解决这些问题,而且数码相框能以图、文、声、像等多种方式呈现给用户,使用户可以获得听觉及视觉上的享受。数码相框还可以使用计算机方便的修改编辑照片,使照片更具个性化。同时数码相框可以快速的查找检索到所要浏览的相片,具有永不掉色和永久保存,复制分享照片非常方便,携带方便,而且还可以随时将自己旅游、学习、毕业留影、生活中的点点滴滴拍摄成照片加入到数码相框中浏览,方便亲朋好友分享自己的相片。为老人准备一个精致小巧的数码相框,把老人的亲人在外拍的各种有意思的相片放入数码相册中,对老人的老年生活来说也会是一个不错的选择。正是因为数码相框具有如上那么多的优点,数码相框的发展需求才越来越大,因此选择数码相框作为毕业设计课题将会是一个不错的选择。1.2 国内外研究现状及发展趋势数码相框从刚提出发展到现在,已有近九年的时间。起初数码相框的解决方案多数是移植其他系统的平台,而用于数码相框的专业平台不多。现在,数码相框市场需求越来越大,各种用于数码相框的专业平台也越来越成熟,各种解决方案也数不胜数。而在 ARM,DSP,Nios II等高端平台上更是已开发出了各种各样的数码相框,更能多,这类数码相框一般还具有音视频播放等多媒体功能。近几年,现场可编程逻辑阵列(FPGA)发展迅猛,由于 FPGA在实现复杂算法时会提高实时性,因此在数据计算、通信、自动控制等领域的应用越来越广泛,使用它减少了系统开发的风险和成本,缩短了开发维护周期。因为 FPGA的快速发展,采用 Nios II处理器的自定义指令,而且硬件也能实现一些重要的算法,所以使得数据处理的速度很快,保证了整个系统的良好的实时性。并且在外围电路不改变的情况下,通过 FPGA内部充足的硬件逻辑资源,能很方便的对系统升级及功能增强。所以,FPGA 是一个发展趋势。嵌入式现在在电子领域是最热门的概念之一,是当前电子技术发展的又一新热点。它是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗严格要求的专用计算机系统,在消费电子产品中应用非常广泛。嵌入式系统在硬件上已经进入片上系统阶段,使用片上系统开发产品设计快速、灵活,具有完善的软件开发平台,使基于 FPGA的片上系统得到了广泛的应用。采用片上系统作为数码相框的设计将是一种前所未有的新方法。1.3 论文研究的主要内容本课题设计的数码相框主要以 STC12C5A60S2 单片机作为主要控制中心,采用 BMP 图片软件解码技术,并移植 FATFS 文件系统,实现对存储在 SD 卡内的 BMP 图片文件进行读取操作,并且编写解码算法对 BMP 图片进行解码操作,然后通过 STC12C5A60S2 单片机驱动液晶显示屏,对解码后的图片进行显示。并在 TFT 彩屏上实现简单的 GUI 界面操作,使显示界面更漂亮美观。此方案有如下两个优点。一是制作成本低,硬件结构简单,软硬件设计方便。而且易于扩展和升级更多功能。其中的图片解码功能是通过软件模拟实现,不依赖于硬件,这样使系统具有良好的灵活性和适应性,易于移植。宜春学院物理科学与工程技术学院毕业设计22 方案设计与选择2.1 数码相框主流设计方案目前,国内外数码相框的设计方案主要有以下几种 1:(1)采用 ARM+JPEG 硬件解码器作为核心处理系统,解码速度快,图片显示速度比较快捷,支持 MPEG1、 MPEG4;在 USB 接口方面,支持 USB2.0 Slave 和 USB1.1 Host;在音频处理方面,支持 mp3、wma 、wav 、aac、 ape、flac、alac 等音频播放。这类数码相框性能比较全面,包括图片显示播放,音视频播放,存储卡的支持,USB 等多种功能,而且功耗低,图片分辨率也比较高。(2)采用单芯片处理系统,PCB 板结构简单,支持 JPEG、BMP 、GIF 以及 MP3、MP4 的播放。这类数码相框一般成本低,但是图片显示效果不太理想。(3)采用嵌入式的构架来做数码相框,采用纯硬件解码 JPEG,对图像的任何编辑操作均通过硬件来实现,这类数码相框图像处理速度快,支持图像的分辨率也比较高。但与第一类方案相比,功能单一,娱乐性能受到限制。在国内,数码相框的产品更注重多功能,因为国内用户更倾向于一机多用,即一种电子产品具有多种功能。但是国外尤其是欧美的用户,更倾向于简洁、实用的电子产品。例如爱国者的“双屏数码相框”研发的目标就是仅仅把数码相框的“照片展示”特性发挥到极致,使照片在数码相框上的显示效果多种多样。事实证明,这类数码相框产品也会越来越受人们的喜欢,因此,数码相框的发展也在朝这方面不断的创新和发展。2.2 本课题设计方案介绍以上方案都是比较成熟的方案,在市场上利用这些方案制作的数码相框也比较多,其功能也比较全面,一般具有图片浏览、音频播放、视频播放、游戏娱乐等功能。满足大多数消费者对功能的要求,其主控芯片一般都是采用 ARM 或者 DSP 等高级单片机。而采用单片机设计的数码相框虽然没有 ARM 或者 DSP 设计的数码相框那么高级,功能没有那么多,但是也有其优越性,成本低、易于开发、功能扩展方便。特别是现在单片机处理速度也越来越快,内部资源越来越丰富,ROM 和RAM 也都比较大。所以利用单片机设计一个简易数码相框还是有研究意义的。基于以上原因,本设计选择的是以 STC12C5A60S2 单片机,搭载 FATFS 文件系统,将存储与SD 卡中的 BMP 图片解码并通过单片机控制液晶显示屏将图片显示出来,并且在显示速度上能够满足要求,完全显示一幅图片一般不能超过 5 秒,否则就没有研究意义了,试想一下如果显示一幅图片需要 7、8 秒甚至上 10 秒,那是很糟糕的。此方案有两个方面优点。一是制作成本低,硬件结构简单,设计方便,易于开发,而且易于扩展和升级其他功能。2.3 系统总体硬件介绍数码相框系统硬件设计结构框图如图 2-1 所示。图 2-1 数码相框系统硬件设计结构框图本系统硬件结构设计简单,主要以 51 单片机最小系统为主控中心,搭载电源电路、SD 卡存储STC12C5A60S2单片机电源电路SD 卡接口电路按键电路时钟电路复位电路LCD 液晶显示电路宜春学院物理科学与工程技术学院毕业设计3电路、按键控制电路以及 LCD 液晶显示电路。51 单片机最小系统包含了晶振电路及复位电路,是整个系统能正常工作的基础。电源电路应该包含电源转换电路,因为 SD 卡和 LCD 液晶显示屏的工作电压和系统工作电源不同,所以应该进行电压转换,保证 SD 卡和 LCD 液晶显示屏能够正常的工作。SD 卡存储电路配置一个 SD 卡卡座,并设计了 SD 卡卡座与单片机的连接。按键控制电路主要完成系统功能的切换、系统设置以及图片浏览控制。3 详细硬件设计3.1 STC12C5A60S2 单片机概述本设计选择的主控芯片是 STC12C5A60S2。该单片机是我国宏晶科技生产的单时钟 /机器周期的单片机,具有高速、功耗低、抗干扰能力强、指令代码完全兼容 51 单片机等优点。与普通 51 单片机结构基本相同,所不同的是其内部集成了更多的实用功能(如:AD 、PWM 等功能) 。其工作电压范围宽,为 3.3V-5.5V,工作频率为 035MHz,程序存储空间为 60KB,RAM 容量为1280Byte,具有 40 个通用 I/O 口。内置复位、通用全双工串行接口、SPI 总线接口,用来和 SD 卡通讯可以显著提高读取速度。该单片机内部资源丰富,可以完全满足本次设计的要求,充分利用其内部资源,减少外围硬件设计,既可以降低成本,还使设计更加简单。STC12C5A60S2 单片机的引脚图如图 3-1 所示。3.1.1 I/O 口各种不同的工作模式及配置介绍STC12C5A60S2 系列单片机所有 I/O 口均( 新增 P4 口和 P5 口)可由软件配置成 4 种工作类型之一,如表 3-1 所示。4 种类型分别为:准双向口 /弱上拉、强推挽输出/强上拉、仅为输入(高阻)或开漏输出功能。每个口由 2 个控制寄存器中的相应位控制每个引脚工作类型。STC12C5A60S2 系列单片机上电复位后为准双向口/ 弱上拉模式。2V 以上时为高电平,0.8V 以下时为低电平。每个 I/O口驱动能力均可达到 20mA,但整个芯片最大不得超过 120mA。表 3-1 I/O 口工作类型设定P4M17:0 P4M07:0 I/O 口模式0 0 准双向口(传统 8051 I/O 口模式) ,灌电流可达 20mA,拉电流为 230uA,由于制造误差,实际为 250Ua150uA0 1 强推挽输出(强上拉输出,可达 20mA,要加限流电路)1 0 仅为输入(高阻)1 1 开漏,内部上拉电阻断开,要外加例如:P4M1=0XA0,P4M0=0XC0 ,则 P4.7 为开漏,P4.6 为强推挽输出,P4.5 为高阻输入,P4.4/P4.3/P4.2/P4.1/P4.0 为准双向口/ 弱上拉,其他 I/O 配置方法和 P4 口一样,只要正确给其PiM1, PiM0( i=0,1,2,3)两个寄存器赋值就行。宜春学院物理科学与工程技术学院毕业设计4图 3-1 STC12C5A60S2 单片机引脚图3.1.2 单片机最小系统单片机电路要正常工作,除了有 STC12C5A60S2 单片机外,还需设计有正确的时钟电路和可靠的复位电路,这三个部分组成了单片机最小系统,当然还要有电源电路。(1)时钟电路STC12 系列单片机既可以使用外部时钟,也可以使用内部振荡器提供时钟信号。本设计使用的是外部时钟,并且使用的晶振是 32MHz,提高了图片刷新的速度。将晶振连接于 XTAL2 和XTAL1 引脚之间,并与两个 20-40pF 之间的电容连接接地,电路图如图 3-2 所示:图 3-2 单片机最小系统时钟电路(2)复位电路复位操作完成单片机片内电路的初始化,使单片机从一种确定的状态开始运行,而不至于使程序运行出错。一般是 RST引脚出现 5ms以上的高电平时,单片机就可以完成复位过程。复位有上电复位、开关复位。本设计同时使用了上电复位和开关复位。上电复位是上电时使单片机复位,而开关复位是在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。如图 4-3复位电路增加了二极管,在电源电压出现跳变时加快电容放电,一定宽度的电源毛刺也可令系统可靠复位。通常复位电容和复位电阻的值为 C1=1030uF,R2=110K。单片机最小系统复位电路如图 3-3所示:宜春学院物理科学与工程技术学院毕业设计5图 3-3 单片机最小系统复位电路3.2 电源电路在本系统中,各个模块的工作电压不尽相同,TFT 液晶显示屏和 SD卡工作电压为 3.3V,而单片机工作电压为 5V。为了完成各模块电压匹配问题,需要设计一个电源电路,完成电压转换。其电路图如图 3-4所示:图 3-4 电源电路在单片机系统中,电源转换一般都是选用 AMS1117-3.3V稳压芯片。AMS1117 是一个正向低压降三端稳压器,其内部集成过热保护和限流电路,体积小,稳压特性好,输出电压精度高,是便携电子产品中最常用的稳压芯片。在本设计中选择该稳压芯片,简化了电路设计与制作,同时又能解决整个系统电压不匹配的问题。在设计中加入了滤波电容 C3、C4、C5、C6,使输出电压更平稳。3.3 SD 卡接口电路SD卡(Secure Digital Memory Card)中文名称为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,存储容量大,数据传输快,使用方便且安全可靠。它被广泛地用于便携式装置上使用,例如数码相机、手机和 MP3、MP4 等多媒体播放器。SD卡有两种通信协议,SD 模式和 SPI模式。SD 模式允许强大的一线到四线数据信号设置。当默认的上电后,SD 卡使用 DAT0。初始化之后,主机可以改变决定是使用多少根数据线,一般使用四根线,既 DAT0DAT3,还要使用一根时钟线 CLK和命令线 CMD。SD 总线上通信的命令和数据比特流从一个起始位开始,以停止位中止。采用 SD模式时传输速度非常快,但是传输的命令及协议复杂。SPI 模式则一般采用 4线制,即时钟线 CLK、片选线 CS、主机输出,从机输入线 MOSI以及从机输出,主机输入线 MISO。由于在传输期间,每次只使用一条数据,传输速率低,但是相比于 SD模式而言,其传输协议及命令简单,易于实现。而且,SD 模式需要微处理器带有相对应的控制器接口,而 51单片机是不支持 SD卡模式的,选用 SD模式则要增加硬件成本。相反,SPI 总线接口很多 51单片机都带有,选择该模式不但可以简化主机和程序的设计,还降低成本。虽然 SPI模式相对于 SD模式速率较低,但是在带有 SPI接口的单片机上用 SPI模式读取 SD卡里面的图片数据在速度上还是能满足本设计要求的,而且它只需要四根线,连接简单,软硬件设计方便。因此,在本设计中使用 SPI模式是最好的选择。SD 卡接口电路如图 3-5所示:图 3-5 SD 卡接口电路宜春学院物理科学与工程技术学院毕业设计6SD卡的 CS、MOSI、MISO、CLK 分别与单片机的 P1.4、P1.5P1.7 连接进行通信。SD 卡的工作电压为 3.3V,而单片机的工作电压一般为 5V,所以要进行电平转换,实现各功能模块间的电平匹配,电平转换右电源电路实现。3.4 按键电路因为本课题设计了几个功能,为了方便的在各个功能件进行切换,使用了五个按键,分别是左移 KEY_PRE、右移 KEY_NEXT、上移 KEY_UP、下移/ 退出 KEY_DOWN_EXIT、确定KEY_ENTER 五个按键。按键一般有矩阵按键和独立按键,由于设计使用的按键不多,只有五个,I/O 口充足,所以使用独立按键设计。KEY_PRE、KEY_NEXT、KEY_DOWN_EXIT 、KEY_UP、KEY_ENTER 分别和单片机的P1.0、P1.2、P1.3 、P1.4、P2.0 连接,当按下按键时,单片机相应引脚电平被拉低(为 0) ,通过检测相应引脚电平状态就可以确定是哪个按键按下,从而执行相对应的功能,操作方便,容易实现。按键电路如图 3-6 所示:图 3-6 按键电路3.5 LCD 液晶显示电路TFT(Thin Film Transistor)薄膜场效应晶体管,是值液晶显示器上的每一个像素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速高亮高对比度显示液晶屏上的信息,TFT 液晶显示屏是现在常用显示器中的一种,普遍应用于手机、笔记本电脑、MP3、MP4 等电子产品。本系统采用的 TFT 彩屏为 2.4 英寸的 24 位真彩数字屏,由 ILI9325 控制器控制,分辨率为240X320,数据传输是采用 8 位数据方式,通过 8 根数据线与单片机连接进行通信。显示时,一个像素用 16 位表示,即采用 565RGB 方式,红色分量用 5 位表示,绿色分量用 6 位表示,蓝色分量用 5 位表示。要想液晶显示屏正常工作,还要通过片选 CS、写入 WR、数据命令选择 RS、复位RST、RD 写五根线与单片机连接进行控制。液晶彩屏显示电路如图 3-7 所示。系统整个电路图设计见附录 1。图 3-7 LCD 液晶显示电路4 数码相框的软件设计4.1 软件总体设计整个数码相框的软件系统可以分为三个功能模块:系统主任务、系统菜单显示任务、系统时间宜春学院物理科学与工程技术学院毕业设计7显示任务。在主函数前,先创建三个以上三个任务。系统主任务主要完成的是系统各种设备的初始化操作以及不停的进行按键的扫描,通过按键扫描来确定鼠标移动到液晶显示屏的哪个位置,从而调用相关函数,按下确定键后转到按键处理程序执行对应的功能;系统菜单显示任务主要完成的是菜单的选择与 GUI 窗口的显示以及各种应用程序的选择处理程序;系统时间显示任务主要完成的是系统时间的显示功能,通过调用相关函数实现时间的显示。创建了以上三个任务以后,主函数在 while(1)死循环中调用三个任务,不停的循环执行,等待某个事件发生再转到相应程序处理。程序流程图如图 4-1 所示:NYNYNY图 4-1 主程序流程图4.1.1 Protothreads 极轻量级系统介绍Protothreads 是一种在小 RAM 单片机上实现多线程的方法,使用 Protothreads 可以很方便的在单片机上实现多任务操作,使得每个任务都有自己单独的 while(1)循环。对于单片机这样的小 RAM微处理器不能进行移植操作系统,而使用 Protothreads 可以轻松实现,达到一样的效果,大大简化了程序的设计。Protothreads 最大的特点是占用内存非常小,每个 Protothreads 只需占用 2 字节的RAM,而且代码非常短,移植很方便,只需在工程中包含三个头文件 lc.h、lc-switch.h、pt.h 即可。主函数中创建的三个任务就是利用 protothreads 创建的。以下几个函数是 Protothreads 中比较重要的几个函数,分别对其进行说明 11:PT_INIT(pt):初始化任务变量,只需在初始化函数中执行一次即可。PT_BEGIN(pt):启动任务处理,放在函数的开始处。PT_END(pt):结束任务,放在函数的最后。开始初始化任务 MAINTASK初始化任务 MENUTASK初始化任务 OSTIMETASKmaintaskcnt=100?运行任务 MainTask()运行任务 MenuTask()menutaskcnt=200?运行任务 OSTime()timetaskcnt=100?宜春学院物理科学与工程技术学院毕业设计8PT_WAIT_UNTIL(pt, condition):等待某个条件(条件可以为时钟或其它变量,IO 等)成立,否则直接退出本函数,下一次进入本函数就直接跳到这个位置运行,再次判断运行条件是否满足,并执行后续程序或继续阻塞。4.2 驱动程序设计4.2.1 SPI 驱动程序设计SPI 总线接口是 STC12C5A60S2 单片机提供的高速串行外设接口,SPI 接口是一种高速、全双工、同步的串行通信总线。与 SPI 通信相关的特殊功能寄存器主要有三个:控制寄存器 SPCTL、状态寄存器 SPSTAT 以及数据寄存器 SPDAT。(1)控制寄存器 SPCTL:确定单片机作为主机还是从机,使能 SPI,设定 SPI 发送和接收的位顺序以及设定 SPI 传输数据的时钟速率。(2)状态寄存器 SPSTAT:用来判断 SPI 数据有没有传输完成以及检测是否对数据寄存器SPDAT 进行写操作。(3)数据寄存器 SPDAT:所要传输的 8 位数据,为 Bit7Bit0。SPI 驱动程序主要包括四个函数:SPI 初始化函数主要对以上三个寄存器进行初始化操作;SPI时钟速率设置函数用来设置数据传输时的速率,为高速模式还是低速模式;SPI 发送数据函数用来发送指定数据到 SPI 总线上; SPI 接收数据函数则是用来接收来自 SPI 总线上的数据。4.2.2 SD 卡驱动程序设计SD 卡是在单片机的控制下进行通信的,单片机发送特定指令给 SD 卡,并且接收来自 SD 卡的响应并确定 SD 卡是否初始化完成,再进行下一步的命令操作。在对 SD 卡操作之前,应该首先确保单片机已选择 SD 卡,即将 SD 卡的片选线 CS 置为低电平,再发送相关命令对 SD 卡进行读写。单片机与 SD 卡之间通信的命令有几十个,但是常用的只有 19 个,每个命令都会产生不同的响应码,用以判断 SD 卡处于什么状态。SD 卡驱动程序设计主要有两个函数:SD 卡初始化函数和 SD卡读扇区函数。(1)SD 卡初始化函数:初始化函数主要完成 SD 卡的上电复位并将 SD 卡初始化为 SPI 模式。初始化程序流程图如 4-2 所示:NYN开始发送 74 个时钟周期发送复位命令 CMD0进入 SPI
展开阅读全文