适用场景:单片机学习前准备、课程设计实施阶段
本文要点:单片机硬件焊接、程序模块化调试、设计问题分析
行文逻辑:学习单片机→掌握编程语言→实践硬件连接→完成课程设计→总结设计问题
近自己对单片机特别的感兴趣,因为看到它能控制电机的转动,自己觉得很神奇。就想弄清楚它到底是怎么做到的?
我看到书上讲:单片机可以用两种语言编写,一种是c语言,另外一种是汇编语言。汇编语言是一种机器语言,且代码繁琐,不易记忆。需要掌握单片机的内部结构和逻辑结构,通过看了几本书让我了解认识到汇编确实太繁琐,不过我学习过c语言,也参加了全国计算机二级考试,觉得自己在一方面具有优势,能很快学好它。
不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。说起课程设计,我认为重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
适用场景:单片机课程设计准备、毕业设计答辩材料
本文要点:程序设计调试、硬件电路焊接、报警电路故障排查
两周的单片机课程设计终于顺利完成了,其中包含着快乐,也有辛酸。我们选的设计题目是“数字温度计”,大家都觉得这个题目是比较简单的。其实不然,做了之后,发现设计电路虽然简单,但我们认为它真正困难的地方是程序设计,不过在我们同心努力下最终完成了。
我们刚选该题目时,真的是一头雾水,硬件电路不知如何下手,更何谈解决程序那块,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。不过,我们三人也没偷下懒,迅速分工去查阅和收集资料。我们去了图书馆借一些参考书,上网找一些相关资料,并且请教指导老师。通过不断努力,终于把数字温度计的思路和模型定了下来并开始分一个人去焊接硬件电路,剩下的`去整理和修改程序。
通过一番整理和修改后,在电脑上进行仿真,仿真成功后准备焊接电路板。在焊接电路板中,我们首先对硬件电路进行布局,然后确认无误后,在电路板上进行焊接,这个过程我们觉得是做得比较快的,以至于后面出现了虚焊的错误。
焊接电路板完工,细心检查后,进行通电测试。结果液晶LCD没有显示,通过检查,原来是LCD坏了,在换了块新的后,能显示显示值。但还有个问题是,当报警电路不会报警,在请教老师后,发现走动蜂鸣器的电压太低了,是因为串接了一个太大的电阻。然后,我们换了一个小电阻,但这时蜂鸣器却一直在叫,停不下来,不过,在我们三人的的细心检查下,原来是在放大电路的一端虚焊了,这说明我们焊接电路的技术还不够好。在重新焊接那端后,数字温度电路终于成功实现功能,当时我们的心情都是无比兴奋和快乐的,因为我们两周的辛苦没有白费。
在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被动完成。但通过学习这一次实践,增强了我们的动手能力,提高和巩固了单片机方面的知识,特别是软件方面。从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。
适用场景:课程设计选题准备、学生实践能力考核
本文要点:单片机开发技术掌握、理论与实践结合应用、编程问题解决过程
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。
回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的`过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说三极管pnp管脚不懂怎么放置,不懂分得二极管的正负极,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在梁强老师的辛勤指导下,终于游逆而解。同时,在梁强老师的身上我学得到很多实用的知识,在次我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
适用场景:单片机学习前准备、课程设计实施中
本文要点:模块化程序编写、硬件连接调试、实验指导学习
为期一周的单片机实训结束了,真是让我受益匪浅啊!学到了很多东西,不管怎么样,先感谢学校给我的这么多机会,真正的学到了东西。随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,我们就学习了单片机这门课程,感觉是有点难。也不知道整个学习过程是怎么过来得,可是时间不等人。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。俗话说“好的开始是成功的一半”。
说起课程设计,我认为重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。在全组人竭尽全力,老师的精心指导下,程序基本编写成功,这是我们共同努力的结果,在享受我们成果之时,不得不感慨单片机的重要性与高难度性,所以为期一周的单片机课程设计没有浪费我我们学到了很多知识,也让我们对单片机有了更深一步的了解,虽然后结果是出来了,可这与老师的精心指导是分不开的她引导我们的思路,本来一窍不通的我们经过老师的点拨基本上通了,所以老师是功不可没的。总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅。
适用场景:电子时钟制作准备、单片机实训任务执行
本文要点:巩固单片机基础知识、绘制pcb板并手工制板、使用protel进行硬件设计
(一)
1.课程设计目的
1)巩固单片机基础知识,串联知识点。
2)学会绘制pcb板,学会手工制板的一般方法。
3)使用protel等eda工具进行单片机硬件系统设计的能力。
4)基于keilide开发单片机应用程序的能力。
5)写技术报告和编制技术资料的能力。
6)独立工作能力和创造力。
7)综合运用专业及基础知识,解决实际工程技术问题的能力。
2.课程设计题目描述和要求
旋转电子时钟的设计与制作
实现的功能要求:(1)实现单片机小系统;(2)四只led数码管显示当前时分;(3)每隔一秒钟周边的60只led发光管旋转一格,装饰用的led每隔一秒旋转;(4)实现整点报时;(5)实现按键调整;(6)停(掉)电保护,年计时误差小于30秒;(7)其他功能。
3.课程设计报告内容
3.1方案论证
3.1.1单片机定时器做电子时钟
优点:考虑到单片机货源充足、价格低廉,可软硬件结合使用,能够方便的实现系统的多功能性,故采用单片机作为本设计的硬件基础。故其优点是外围电路简单,只需要一个单片机小系统,和一个显示模块。
缺点:定时不是很准确,计时误差较大,并且程序的编写较繁琐。
3.1.2数字电路做电子时钟
优点:具有走时准确、显示直观、无机械传动装置。与传统的机械钟先比,电子钟具有更优异的优点。由于电子钟采用数字集成电路的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳定、携带方便等优点,电子钟用于定时自动报警、按时自动打铃、时间程序自动控制、定时广播及自动控制等各个领域。缺点:因为电子钟毕竟是电子产品,电子产品都有辐射,不过电子钟危害极低,对人体够不成任何危害,不象手机的辐射那么大。
应用:目前,在国内,电子钟因数码管数字显示效用直接有效,所以大多运用在城市的主要营业场所,以及车站、码头等公共场所。在对公共场所的电子钟设定的时候,使用者还可根据周边的气候、温度等对lcd屏进行设置。同时,因为数码管的显示耗电量很省,所以能够保持持续的工作效果。夜间在睡觉的时候,床头如果放个带投影功能的电子钟,可以不用起床,直接让时间显示在天花板上,非常直观与有效。现在生产的大部分汽车中,车内前方仪表盘旁边一般也都自带电子钟功能,采取蓝色背景光板成像效果,非常清晰。
3.2旋转电子时钟硬件电路,并简要讲述各部分的原理3.2.1降压部分
3.2.1电源部分
5v电源可使用通用的78xx系列来构成,也可以使用ldo来构成,一般而言,目前ldo为主流,常用的ldo主要为reg1117-xx系列,该部分的电路可参考图1,使用一个reg1117-5构成5v电源。为了更好地了解系统电源的情况,一般会在电源的输出端加入一个led进行电源的指示。
3.2.2显示部分
60灯旋转的原理和数码管显示原理一模一样。只不过把数码管的段分别用单个二极管代替,形成了8个类似数码管的控制结构。
3.2.3指示部分
为了能输出用户的相关信息,目前使用的有lcd和led方法,本实训中学生可以从两种方法中任选一个.
3.2.4按键部分
本实训使用的是较为简单的阻容复位电路。对于单片机这类微控制器而言,其本质就是运行用户设定的程序,所以必须在基本硬件的基础上加入一个*线接口,用来*用户编写的程序,由于stc单片机支持串行口*,在做硬件的时候大家只需将单片机的p3.0和p3.1接排针形成预留接口,我们用*线直接*。用户输入信息使用的是独立按键,本项目中因为要输入调整和加减信息,所以仅使用了独立按键.
4.电路原理图
5.实训心得
xx:我们经过了一周的学习和制作后,终于完成了电子时钟的基本功能。使我们更加地认识到了动手能力和理论知识相结合的重要性。在这次的制作中,我们也深刻地认识到我们的不足和自身理论知识的欠缺,所以从中遇到了很多困难,但是后还是在老师以及组员的帮助下*解决了困难,实现了整个系统的制作与后的调试,相关指标达到预期的效果,并且很好地完成了本课程要求的任务。
xx:这些日子我们收获了许多东西,从零散的元器件到电子时钟能够实现基本功能的整个过程,在设计过程中虽然遇到了一些的问题,但经过又的讨论,一遍又一遍的检查我们终于找出了问题所在,也暴露了前期在这方面的知识欠缺和经验不足。通过此次项目的学习提高了我们自主学习的能力、动手操作的能力和团结合作的能力。
通过这个课程,使我更加扎实的掌握了有关电子线路、单片机方面的知识。使我对自己的专业知识有了更为详尽而深刻的了解,认识到了许多我以前虽然看过但并没有认真的去了解的元器件的使用方法,从而更深的了解到了自己的不足,虽然我的基础知识不够扎实,但是我在此期间积累了许多宝贵的经验,这都是我以后走上工作岗位的巨大的财富。在次我要感谢我们的指导老师徐老师和香老师的耐心以及辛苦的指导。还有谢谢组员的包容和辛勤的劳动。
(二)
通过今次单片机实训,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。当我第接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。希望这次的经历能让我在以后学习中激励我继续进步。
适用场景:单片机教学改革方案制定、课程设计题目设置参考
本文要点:引入Proteus+Keil软件进行系统设计、设计不同难度层次的课题组、实现软硬件联合调试与优化
行文逻辑:分析教学现状→引入仿真工具→设置课题层次→总结改进效果
放眼当今社会,电子行业快速发展,单片机在多个领域如工业自动化、智能仪器仪表、消费类电子产品、武器装备、终端及外部设备控制、计算机网络和通信设备等有着广泛的应用[1,2]。对于工科的电子、电气相关专业的学生而言,掌握好单片机技术对自我知识的提升和今后就业的帮助都是大大有益的。因此,单片机课程在上述专业中的地位非常重要,而且鉴于单片机特殊的实践性,它的实践环节比如课程设计就更是重中之重了。
一、我校单片机教学的现状
我校原有的单片机教学实验环节有两个:单片机课内实验和单片机课程设计。课内实验虽然有硬件设计和软件编程两部分,但由于开发板上硬件的最小系统比较完善,学生相当于只需要进行简单的连线便完成了硬件设计。软件设计则是在伟福Lab6000系列单片机仿真实验系统上完成的,这些实验基本都是验证性实验或者是很简单的设计性试验,主要目的是让学生通过实验了解单片机的硬件环境,熟悉单片机的编程方法。因此学生总体所完成的工作基本上是简单的软件编程,硬件设计几乎没有,更谈不上是软硬件的综合系统设计。这使学生在以后的工作中应用单片机时捉襟见肘,学不够用。
针对以上情况,我校单片机课程设计通过引入Proteus+Keil两个软件进行较大的改进,既加强了学生硬件电路的设计,又有软硬件联调的综合考量,很好地培养了学生对单片机系统设计的能力,提高了大家学习的积极性和主动性。
此外,之前学校课程设计题目单一,没有考虑到学生的个体差异,导致有些学生无从下手,最终只能模仿别人的电路板,甚至连设计报告也是抄袭别人的;还有些能力较强的学生做起来易如反掌,达不到拔高的效果,这样就违背了课程设计的初衷[3]。
二、Proteus+Keil的完美结合
Proteus软件是英国Labcenter electronics公司出版的EDA工具软件,能很好地仿真单片机及外围器件。相对于另一款使用较高的仿真软件Multisim,Proteus的元件库更齐全,使用更方便,最重要的是它可以把软件作用在处理器上,并和该处理器的任何模拟和数字器件协同仿真。除此,Proteus还提供了大量的虚拟仪器和分析工具,用户可以在调试代码时清晰地看到仿真结果或通过节点波形等查找错误原因。
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,易学易用。
在计算机上,安装Proteus仿真软件和集成软件开发环境软件Keil,就已经相当于是一个设备先进、功能完善的虚拟实验室了,可以方便地进行软硬件的级联调试,加强单片机系统设计的概念。
在实际的课程设计中,先在Proteus ISIS中设计硬件原理图,确定IO口的端口使用。项目的软件可在Keil中进行设计,生成目标代码文件*.hex,若编译失败,可对源程序进行修改,直至编译成功。把生成的目标代码文件*.hex添加到硬件电路的单片机中,比如AT89C52,然后运行仿真,即可以看到仿真结果。若不正确,可以分析错误原因,修改相应的软硬件,直至仿真正确[4,5]。
三、课题的设置
课程设计不同于平时的作业,它有一定的针对性,要满足高中低各层次不同学生的需求。假如全班同做的是一道很难的课程设计题,学困生根本无从下手,更别说从此获取知识了,这样他们很快没有了学习的积极性,彻底放弃了。于是针对不同阶段的学生,我校单片机课程准备了三个不同层次的题目组。
第一类是拔高性题目,比如简易计算器,学生在短期内必须要完成一些实际应用的题目,要求综合性知识较全面,适合基本功扎实、有想法、爱创新的学生。例如有些学生在低年级段就参加了电子设计竞赛,已经有了单片机系统设计的概念,他们需要的是设计更为复杂实用的系统来提升自我。
第二类是中等难度的题目,比如多功能智力竞赛抢答器,学生除了有基本的单片机知识,还必须有一定的动手实践能力和逻辑分析能力,并且涉及其他知识领域,适合知识面较广的学生。
第三类是基础性题目,比如数字温度计,是学生在掌握了单片机基本知识后所能完成的简单的功能设计,这个层次的题目要求不高,适合底子较为薄弱的学生。也就是说,让每个阶段的学生都能从此次课程设计中汲取相应的养分,有所收获[6]。
由于题目的难度系数不同,最终的评分准则也不同,第一类题满分100分,第二类题满分90分,第三类题满分80分。这样既有针对每个层次学生的题目,又能将大家的差距拉开,让学生付出的劳动与最终给定的成绩基本成正比。
四、总结
利用Proteus和Keil进行课程设计对学生来说也是乐于接受的,软硬件都易于修改,减少了开发设计时间,而且Proteus软件可以直观地看到仿真结果或节点的波形,也就是说学生在自己的宿舍就能完成前期的设计工作,不再像以前那样依赖实验室的测试设备,方便快捷,灵活性好。而课题的多样性,也给了学生更大的选择空间,从而提高了积极性和参与性,让学生亲身领会系统分析、设计和调试各个阶段的各种滋味,提高实际应用的能力。