STC单片机开发助手设计附件材料.docx
《STC单片机开发助手设计附件材料.docx》由会员分享,可在线阅读,更多相关《STC单片机开发助手设计附件材料.docx(25页珍藏版)》请在冰豆网上搜索。
STC单片机开发助手设计附件材料
普通本科毕业论文(设计)选题方向审核表
学院:
软件与通信工程学院教学系:
电子信息工程时间:
2014年10月15日
课
题
情
况
题目名称
STC单片机开发助手设计
选题性质
A.理论性研究B.应用性研究√C.应用性设计D.其它
教师姓名
张勇
职称
副教授
学位
博士
选题来源
A.□B.□C.□D.
是否与毕业实习结合
否
成果类别
A.论文√B.设计(创作、演出)C.其它(如案例分析、调查报告等)
学生应具
备的条件
已熟悉汇编、C51、C#等编程语言的基础知识,掌握单片机的基本原理;能熟练使用Proteus仿真软件、VisualStudio系列中一款软件、keilC51等软件。
主要
研究
内容
STC单片机开发助手是辅助基于单片机工程项目开发的一款比较实用的软件。
该软件主要用来快速生成单片机基本功能的控制程序代码,以节省项目工程师编写程序的时间,达到快速开发、提高效率的目的。
软件主要实现的功能模块有:
延时计算模块、定时/计数器模块和串口波特率模块等。
本软件开发采用软件平台与硬件平台相结合的方法;软件平台选用VisualStudio2012,采用C#编程语言来设计开发;硬件平台使用的是综合了STC单片机基本功能模块的开发板,用来检测利用软件生成单片机基本功能控制程序代码的正确性与可行性。
教学系
审题
意见
选题有一定的理论研究意义和较强的实际应用价值,主要内容和研究目标明确,能反映学生对本专业知识体系架构的掌握和应用能力,同意选题。
负责人:
2014年10月29日
学院审批意见
该选题符合本科毕业论文选题要求。
同意该选题。
2014年10月30日
注:
选题来源:
A为指导教师的科研课题,B为企事业单位委托课题,C教学研究课题,D为教师或学生富有创新和实际意义的自拟课题。
请在对应的□内打“√”。
文献综述
前言
本毕业论文的题目是《STC单片机开发助手设计》。
单片机作为智能化工具的代表,以自身独特的优点,已经被广泛地应用于生活中的各个领域,尤其是智能管理及过程控制等领域。
在实际的基于STC单片机工程项目开发过程中,项目工程师经常会编写基于单片机一些基本功能的控制程序;程序虽然都很简单,但是重复操作也给程序编写者带来了不少的麻烦;因此,开发一款可以快速生成STC单片机常用功能的控制程序的软件,具有很大的必要性。
随着微电子、IC集成电路行业的蓬勃发展,单片机的功能已经不断地被扩展,如何更好更快地开发单片机,已成为众人瞩目的焦点。
STC单片机开发小助手主要用来快速生成延时计算程序及计时器/计数器初值的设定程序,并可快速进行串口通讯波特率初值计算和波特率误差的计算等,辅助单片机工程控制项目的开发。
延时算法的研究对于延时程序的编写有着重要的关系,汇编和C语言的综合了解以及在单片机实际控制程序中的编写规律,对于软件程序的实现也很关键。
此外,对VisualStudio2012软件的熟悉程度以及C#编程语言的灵活运用情况,也会对此款软件实现产生很大的影响。
事实上,此类软件常常不受工程师重视,但是使用频繁,重要性虽然不及单片机其它开发工具,如keilC51软件,但是其实用性非常强,市场前景不错,应用领域也将会相当广泛,有涉及单片机的地方将都会有它的身影。
正文
1.国内外应用现状
在国内,单片机开发工具从仿真器、开发板到集成开发环境、配套例程以及使用说明书,已经普遍在使用,但是,类似于单片机开发小助手辅助单片机开发的软件并不是很多,市场上目前只有单片机小精灵、单片机工具箱等,应用并没有十分普及,应用领域也主要集中于基于单片机的工程项目,在教学、入门学习等方面使用情况较少。
此类工具由于在实际开发过程中也可以省略,所以知名度并不是很大;但是,此类软件使用起来特别方便,可以用来辅助程序编写人员编写基于单片机的项目控制程序,为其节省时间和精力。
在国外,与单片机相关的开发工具的使用情况及开发程度明显优于国内,虽然也有此类基于单片机的项目工程的辅助程序编写过程的开发工具,但是也不是很多,应用情况跟国内差不多。
这些说明此类软件还未得到很大推广,发展空间相对较大。
2.软件开发平台
软件开发平台[14]~[24]选用的是Microsoft公司推出的Windows平台应用程序开发环境VisualStudio系列。
选用的是此版本中的VisualStudio2012,该版本软件工作流程清晰,整体布局更合理,并可快速访问工具,附有更实用的模板、设计及测试调试工具、及BlendforVisualStudio提供的一系列可视化工具集。
软件设计使用的编程语言是Microsoft公司发布的的高级程序设计语言C#。
要想开发此软件,首先必须熟悉此设计语言的基本语言规则及实际应用案列,了解其开发使用方法,再结合VisualStudio2012软件,在熟悉其开发应用过程的基础上,添加自己的设计思路,设计自己的软件。
这里需要自行了解利用C#开发的项目,并将好的编程思想借鉴于此软件开发过程中。
此软件开发还用到了STC单片机开发的硬件平台,主要用来测试软件的质量及实用性。
主要用来将软件快速生成的程序控制代码,实际写入硬件平台,通过观察实际运行结果,来判断生成代码的正确性与可行性,进而来确定软件的可用性。
3.STC单片机开发助手工具存在的问题
目前市场上,已有类似的单片机开发助手工具也可以实现单片机相关基本功能,但是针对单片机延时程序、定时/计数程序、波特率配置的程序等,具体的实现过程以及考虑的问题并不全面。
例如单片机延时程序,目前类似的软件所能达到的精度一般在几个微秒左右,通常只采用汇编或者C语言编写。
当采用C语言编写时,延时误差一般比较大,如何弥补延时误差,如何改善延时算法,这些问题都没有得到很好解决。
对于误差要求比较小时,函数调用时间或者采用汇编语言编辑时的堆栈保护时间是否需要考虑等等,这些情况,在实际已有的软件中,有些并没有考虑到位。
目前市场上已经有的此类软件基本功能相对比较完善,但是涉及到软件界面设计以及软件运行速度,用户并不是很满意。
使用者在使用软件过程中,通常会遇到软件在在运行中却无法在在该界面进行其他操作的情况,同时多项操又可能会导致软件运行终止。
有时,当延时时间较长,即需要计算的数据较大时,需要的时间一般较久,有时也可能出现程序运行终止;对于使用者,这都是个令人头疼的问题。
这个问题的解决跟软件实现的设计思路有关。
在编程设计此软件各功能模块程序代码快速生成时,需要综合考虑各种情况下软件运行时间,并有目的地进行算法优化,尤其是延时模块软件编程实现时,延时时间计算算法的实现,需要多次进行优化,以减少软件响应时间,提高软件的性能。
结论
查找文献综合后,发现自己对单片机开发小助手软件设计有了更深刻的认识。
而且对单片机延时算法及其程序实现方法、定时/计数程序汇编及C语言两种编写方式以及软件实现过程以及串口波特率通信过程及其初始化程序设计流程都有了较熟的理解和认识。
此外,也进一步深入了解了VisualStudio软件开发过程以及使用C#编程开发项目的流程,并以此对自己的论文进行了构思,大概章节安排均已清楚,具体从哪些方面入手也都了然于心。
参考文献
[1]李富林,崔继友,程伟华,彭鹏.浅谈单片机的应用领域[J].网络财富,2010,(16).
[2]刘祝华,蔡十华,傅晓明.单片机原理及其接口技术[M].北京:
科学出版社,2012:
236—247.
[3]张齐,朱宁西.单片机应用系统设计技术——基于C51Proteus仿真[M].第3版.北京:
电子工业出版社,2013:
167—181.
[4]艾学忠主编,刘伟,陈北辰副主编.单片机原理及其接口技术[M].北京:
清华大学出版社,2009:
26—29.
[5]周绍平.单片机延时方法的分析及应用[J].江苏广播电视大学学报,2005,16(6).
[6]佟云峰,李光辉,李志平,李杨,杨宇.单片机延时程序设计与时长精确计算[J].昆明冶金高等专科学校学报,2011,27(3).
[7]刘高潮.基于单片机延时程序的分析[J].科学时代,2012,(20).
[8]徐蕾,孙长智.C语言循环语句实现单片机延时函数[J].安庆师范学院学报(自然科学版),2013,(4).
[9]张晞.适应外部中断的可调长延时程序[J].广东民族学院学报(自然科学版),1998(04).
[10]眭仁武主编,阳平,周志方,徐雨明等副主编.汇编语言与微机原理[M].北京:
中国水利水电出版社,2003:
116—128.
[11]JohnSharp著,周靖译.VisualC#2008从入门到精通[M].北京:
机械工业出版社,2012:
26—29.
[12]李纯莲,刘玉宝主编,祝海英,孙宇副主编.C#实用开发教程[M].北京:
清华大学出版社,北京交通大学出版社,2008:
44—94.
[13]石峰.VisualStudio2010应用解析[J].经济师,2011(7).
[14]StewartFraser,StevenLivingstone著,毛尧飞,崔伟译.C#XML入门经典C#编程人员必备的XML技能[M].北京:
清华大学出版社,2003.
[15]郑小平.VisualC#.NET开发实践[M].北京:
人民邮电出版社,2001.
[16]赵阳,赵谦,武芃.Microsoft.NETFramework结构解析[J].微机发展,2003(S2).
[17]肖晨帆,肖扬.在VS2012下创建类似VisualStudio界面的方法[J].电脑编程技巧与维护,2014,(19).
[18]MattewMacDonald.ProWPFinC#2012:
WindowsPresentationFoumdationin.NET4.5[M].2011.
[19]Langley,Nick.VisualStudio2008upsproductivity[J].ComputerWeekly,2008:
36.
[20]Anonymous.Novell,Inc.:
NovellDeliversFirstCommercialSolutiontoBuild.NETApplicationsforLinuxwithMicrosoftVisualStudio;MonoToolsforVisualStudioadd-inlowersdevelopmentcostsandreducestime-to-marketfornon-Windows.NETapplications[J].M2Presswire,2009.
[21]Binstock,Andrew,Dobb's.DrMicrosoftVisualStudio2012:
Must-HaveForWin8Developers[J].EN,2012.
[22]Foley,John.NewlookatVisualStudio[J].InfoWorld,2003,Vol.27(N0.950):
14.
指导教师评语:
该生通过阅读与STC单片机相关的大量文献,详细阐述了STC单片机开发助手设计的研究背景与意义,说明了该课题的研究具有一定的应用价值和研究价值。
该文献综述报告格式正确,内容比较充实,反映了该生论文前期的文献阅读工作准备得比较充分,具备了独立开展后续论文(设计)工作的能力,为后续论文工作的开展奠定了良好的基础。
指导教师评分(百分制):
指导教师:
2015年01月05日
普通本科毕业论文(设计)开题报告及任务书
论文(设计)题目
STC单片机开发助手设计
学生姓名
童慧玲
专业
电子信息工程
学号
0113262
指导教师
张勇
职称
副教授
1.选题目的和意义:
STC单片机开发小助手是实际单片机工程项目开发过程中很实用的一个工具。
在单片机实际应用中,单片机基本功能模块的控制程序的编写实际上是件简单但又繁琐的工作,虽然对后期的工作没有什么太大影响,但是,却给单片机项目工程开发者增加了不少的小麻烦,比如一时遗忘串口初始化相关控制位的设置方式、定时/计数器各种使用方式的设置方式及初值的计算,需要考虑延时误差的一定延时时间延时程序的编写等等。
有时候,延时程序延时误差的大小,在开发过程中极其重要,而为达到此要求,程序员往往需要反调试。
在采用C语言编写程序时,有时需要考虑调用时间;当使用汇编语言编写程序时,有时需要考虑堆栈保护;这些,在此软件里都有相应的解决方法。
STC单片机开发小助手可以帮助快速生成一定延时时间的延时程序、可被调用的延时函数延时程序、定时/计数器的初值的初始化以及串口通信中串口波特率的配置程序等,可以省去延时函数实现的调试过程,定时计数初值的计算过程,串口波特率的计算过程等,方便又快捷。
这些程序代码都是单片机工程项目开发过程中一般不可缺少的程序控制代码,点点滴滴的小事,积累起来,有时也是一项挺费时费事的工程。
此软件的开发使用可帮助省去此项工程,辅助基于单片机工程控制代码的编写过程,加快开发速度,提高效率。
目前,此软件在单片机应用领域使用并不频繁,并没有受到项目工程师及单片机爱好者的重视,但是这并不代表其市场需求不大;相反,它会因为迎合了现代许多工程师追求高效率的心理,将会得到很多人的青睐,未来将会和单片机同在。
2.主要研究内容(含论文提纲):
本文在深入了解单片机基本功能、相关工作方式以及常用应用领域的各种功能模块的使用情况的基础上,又对单片机基本功能控制代码进行了详细的分析,利用C#编程语言,在VisualStudio2012平台开发了此款软件。
文章主要阐述了软件延时功能模块、定时/计数器功能模块、串口波特率功能模块这三个模块,每个模块分别介绍了该功能模块原理、软件界面设计情况以及在软件中具体实现过程。
本文针对延时程序,在算法原理及实现过程上进行了优化,并针对不同延时误差要求提供了不同的处理办法;针对定时/计数器初始化模块,可根据用户选择的工作模式及工作方式,相应地生成不同的初始化控制程序;关于串口通信波特率初始配置问题,综合考虑常用情况,设置成最方通用的可变波特率工作方式。
单片机开发小助手软件对于STC系列的单片机都是通用的,可供所有单片机爱好者使用,帮助其学习、使用单片机或者开发基于单片机相关的项目,并针对繁琐又很基础的程序代码给予解决办法。
全文分为六章,结构安排如下:
1引言
1.1选题背景1.2研究目的1.3实现办法
2STC单片机开发小助手开发平台及界面
2.1STC单片机开发小助手硬件开发平台2.2STC单片机开发小助手软件开发平台
2.3STC单片机开发小助手界面布局
3延时计算模块
3.1延时算法原理3.2延时计算模块界面设计
3.3延时计算模块VisualStudio2012中编程实现过程
4定时/计数器模块
4.1定时/计数器4.2定时/计数模块界面设计
4.3定时/计数模块在VisualStudio2012中设计思路
4.4定时/计数模块编程实现过程
5串口初始化配置模块
5.1串行口数据通信及串口波特率模块界面设计
5.2串口波特率模块在VisualStudio2012中实现思路
5.3串口波特率模块在VisualStudio2012中实现过程
6结束语
3.完成论文(设计)的条件、方法及措施,包括实验设计、调研计划、资料收集、参考文献等内容:
条件:
熟悉单片机基本原理,了解汇编、C51、C#等编程语言,会使用VisualStudio2012、keilC51等软件;此外计算机安装了keilC51、Proteus、VisualStudio2012、单片机串口调试小助手等软件;
方法措施:
采用C#编程语言,以VisualStudio2012软件开发平台,并使用新一代用户界面框架,软件编程设计此软件;此外Microsoft还引入了XAML,便于开发人员与设计人员间的合作交流;
实验设计:
软件设计主要分为延时功能、定时/计数器功能、串口波特率功能等三个功能模块;
调研计划:
对于单片机应用领域及其开发工具使用的现状以及此款软件在单片机爱好者及工程师中的熟知程度及使用情况进行调研;
资料收集:
收集单片机原理、延时算法、汇编语言语法及应用、C语言语法及应用、C51应用C#项目开发相关资料;
引用的参考文献有:
[1]李富林,崔继友,程伟华,彭鹏.浅谈单片机的应用领域[J].网络财富,2010,(16).
[2]刘祝华,蔡十华,傅晓明.单片机原理及其接口技术[M].北京:
科学出版社,2012:
236—247.
[3]张齐,朱宁西.单片机应用系统设计技术——基于C51Proteus仿真[M].第3版.北京:
电子工业出版社,2013:
167—181.
[4]艾学忠主编,刘伟,陈北辰副主编.单片机原理及其接口技术[M].北京:
清华大学出版社,2009:
26—29.
[5]周绍平.单片机延时方法的分析及应用[J].江苏广播电视大学学报,2005,16(6).
[6]佟云峰,李光辉,李志平,李杨,杨宇.单片机延时程序设计与时长精确计算[J].昆明冶金高等专科学校学报,2011,27(3).
[7]刘高潮.基于单片机延时程序的分析[J].科学时代,2012,(20).
[8]徐蕾,孙长智.C语言循环语句实现单片机延时函数[J].安庆师范学院学报(自然科学版),2013,(4).
[9]张晞.适应外部中断的可调长延时程序[J].广东民族学院学报(自然科学版),1998(04).
[10]眭仁武主编,阳平,周志方,徐雨明等副主编.汇编语言与微机原理[M].北京:
中国水利水电出版社,2003:
116—128.
[11]夏耘主编,臧劲松,黄小瑜副主编.C语言程序设计与实践[M].北京:
中国铁道出版社,2013:
98—116.
[12]何钦铭,颜晖.C语言程序设计[M].北京:
高等教育出版社,2012:
75—83.
[13]JohnSharp著,周靖译.VisualC#2008从入门到精通[M].北京:
机械工业出版社,2012:
26—29.
[14]李纯莲,刘玉宝主编,祝海英,孙宇副主编.C#实用开发教程[M].北京:
清华大学出版社,北京交通大学出版社,2008:
44—94.
[15]石峰.VisualStudio2010应用解析[J].经济师,2011(7).
[16]StewartFraser,StevenLivingstone著,毛尧飞,崔伟译.C#XML入门经典C#编程人员必备的XML技能[M].北京:
清华大学出版社,2003.
[17]郑小平.VisualC#.NET开发实践[M].北京:
人民邮电出版社,2001.
[18]赵阳,赵谦,武芃.Microsoft.NETFramework结构解析[J].微机发展,2003(S2).
[19]肖晨帆,肖扬.在VS2012下创建类似VisualStudio界面的方法[J].电脑编程技巧与维护,2014,(19).
[20]MattewMacDonald.ProWPFinC#2012:
WindowsPresentationFoumdationin.NET4.5[M].2011.
[21]Langley,Nick.VisualStudio2008upsproductivity[J].ComputerWeekly,2008:
36.
[22]Anonymous.Novell,Inc.:
NovellDeliversFirstCommercialSolutiontoBuild.NETApplicationsforLinuxwithMicrosoftVisualStudio;MonoToolsforVisualStudioadd-inlowersdevelopmentcostsandreducestime-to-marketfornon-Windows.NETapplications[J].M2Presswire,2009.
[23]Binstock,Andrew,Dobb's.DrMicrosoftVisualStudio2012:
Must-HaveForWin8Developers[J].EN,2012.
[24]Foley,John.NewlookatVisualStudio[J].InfoWorld,2003,Vol.27(N0.950):
14.
4.论文(设计)的进程安排:
2014年10月08日~2014年10月30日:
确定毕业设计题目——STC单片机开发助手设计
2014年12月01日~2015年01月09日:
搜集有关基于单片机开发工具、单片机开发工具国内外应用情况、单片机原理、延时算法及基于C#开发项目的文献资料,撰写文献综述与开题报告;
2015年01月10日~2015年02月28日:
设计并完成STC单片机开发小助手,并利用STC单片机开发板检验利用软件生成的单片机基本功能控制程序的正确性,
2015年03月01日~2015年04月25日:
撰写论文毕业论文,修改论文;在系统中完成论文的提交与检测工作;指导老师进行论文指导与修改工作;
2015年04月26日~2015年05月10日:
指导教师进行论文评阅,毕业论文校稿、定稿。
5.指导教师意见及建议:
该选题研究目标明确,论文层次结构安排合理,逻辑关系清楚,论文进展时间安排妥当。
在选题后,该同学阅读了较多的文献资料。
本课题是学生所学专业知识的延续,符合学生专业发展方向,对于提高学生的基本知识和技能,对于提高学生的研究能力有益。
研究方法和研究计划基本合理,难度合适,学生能够在预定时间内完成该课题的设计。
是否同意开题:
指导教师签字:
2015年01月05日
注:
此表前四项由学生填写后交指导教师签署意见,否则不得开题。
普通本科毕业论文(设计)工作中期检查表
学院软件与通信工程学院专业电子信息工程年级2011级
论文(设计)题目
STC单片机开发助手设计
学生姓名
童慧玲
专业
电子信息工程
学号
0113262
指导教师
张勇
职称
副教授
选题是否有变化
否
如有,请
填写原因
无
是否一人一题
否
是否进行了开题报告
是
是否进行了文献调研
是
拟解决的关键问题
1.如何优化延时算法。
2.针对长延时情况,在软件设计实现过程中,如何优化以缩短软件响应时间。
论文(设计)进度情况:
已完成文献收集、整理和阅读工作,已完成软件的设计,并开始写初稿。
提前完成
√正常进行
延期滞后
(请写出原因)
工作态度情况(学生对毕业论文(设计)的认真程度、纪律及出勤情况):
√认真
较认真
一般
不认真
指导教师工作情况(指导教师履行职责、指导学生记录)
√认真
较认真
一般
不认真
中期质量评价(学生已完成部分的工作质量情况):
√好
中
差
教学系的意见
通过对该生论文设计工作