根据合肥学院人才培养方案中的第五学期认知实习教学大纲的要求,我于2012年7月2日至8月31日在合肥学院实习61天。
一、 实习单位简介
合肥学院现有19个教学系部,设有43个本科专业(其中5个国家级特色专业,4个卓越工程师教育培养计划实施专业)。学院是国家首批“卓越工程师教育培养计划”实施高校、首批“服务国家特殊需求人才培养项目”培养硕士专业学位研究生试点工作单位。
我院学生先后获得全国大学生机械创新设计竞赛一等奖、全国大学生 “挑战杯”世博会专项比赛一等奖、全国大学生电子设计竞赛一等奖、“毕昇杯”全国电子创新设计竞赛本科组一等奖、全国高校电子信息实践创新作品评选荣获本科组全国一等奖和最佳实用奖单项奖等;获全国大学生击剑锦标赛金牌27块、银牌17块、铜牌22块。近几年,合肥学院毕业生就业率一直保持在96%以上,其中68%以上毕业生在合肥工作,80%以上毕业生在安徽工作,许多毕业生已成为所在单位的技术和管理骨干。
为了学院建设添砖加瓦,也为完成学校的第五期认知实习,我选择了在学校接受单片机培训。
二、认知实习经历
(一)单片机的背景及应用
单片机是计算机技术发展史上的一个重要里程碑,标志着计算机正式形成了通用计算机系统和嵌入式系统两大分支。
单片机软硬件结合、体积小,容易嵌入到各种应用系统中。得到广泛应用且其体积小、成本低,嵌入到工业控制单元、机器人、智能仪器仪表、汽车电子系统、武器系统、家电系统、办公自动化设备、金融电子系统、玩具、个人信息终端及通讯产品中。
它功能齐全,应用可靠,抗干扰能力强;简单方便,易于普及。单片机技术是易于掌握技术。应用系统设计、组装、调试已经是一件容易的事情,工程技术人员通过学习可很快掌握其应用设计技术;发展迅速,前景广阔。短短几十年,单片机经过4位机、8位机、16位机、32位机等几大发展阶段。尤其是集成度高、功能日臻完善得单片机不断问世,使单片机在工业控制及工业自动化领域获得长足发展和大量应用。目前,单片机内部结构愈加完美,片内外围功能部件越来越完善,向更高层次和更大规模的发展奠定坚实基础。单片机是集成电路技术与微型计算机技术高速发展的产物。体积小、价格低、应用方便、稳定可靠,因此,给工业自动化等领域带来了一场重大革命和技术进步。由于体积小,很容易地嵌入到系统之中,以实现各种方式的检测、计算或控制,这一点一般微机根本做不到。又由于单片机本身就是一个微型计算机,因此只要在单片机的外部适当增加一些必备外围扩展电路,就可以灵活的构成各种应用系统,如工业自动监测监视系统,数据采集系统,自动控制系统,智能仪器仪表等。
(二)认识STC11F32XE单片机的基本结构和原理
Stc11f32xe单片机是由一个8位CPU,4KB程序存储器,一组特殊功能寄存器,4个输入输出口(即P0\P1\P2\P3), 一个全双工串行口,2个16位定时器/计数器,5个中断源等部分组成,各功能部件通过片内单一总线连成一个整体,集成在一块芯片上。共有40个引脚,采用双列直插的封装形式,每个引脚都有其特定功能。
(三)搭建开发板的各个模块
学习单片机的前一个星期就是在设计好的电路板上用电烙铁和锡丝把每个电阻、电容、芯片、开关、插槽、按键、数码管等部件焊接到板子上。由于要锻炼动手实践能力,刚开始焊接电源模块时,出现虚焊、短路等各种状况。由于刚接触,不太熟练,不能轻车熟路的驾驭烙铁,但是随着模块的慢慢搭建,锡焊技术已明显好转,就美观度而言和其他电子设备上的焊接技术可以相媲美了。
经过一个星期的焊接,单片机开发板的每一个模块已基本完成,经过对各个模块的检查测试,全部通过后我自己的单片机开发板就完成了。
(四)编写驱动程序,实现对各个模块的操作
(1)、数码管显示
单片机开发板搭建完成后,写的第一个驱动就是0—F在数码管上的显示。涉及到的两个芯片分别是:74VHC595D和74LS138,前者实现对8段数码管的段选,后者控制位选,两者结合实现数码管对不同数字的显示。
单片机模板用的是共阳极的数码管,建立数组保存数码表,然后通过段选和位选对每个数组元素进行显示。
第一次接触keil软件,不仅要学习如何创建工程,还要掌握基本的引脚控制。在网上查询资料和观看单片机教程的过程中学会了如何写驱动,经过接近两天的自我学习,我的第一个驱动——数码管显示程序出炉了,很高兴。然后便是把写好的程序生成*.hex文件烧到单片机当中,数码管便可显示。
(2)按键操作
我们所用的矩阵键盘与网上通用的键盘略不相同,(我们采用的是3X6,而通用的开发板多采用4X4键盘)但是思想相同。键盘的引脚分别用了P0口和P2^5引脚。
首先实现单击,即按每一个键显示不同的键值。调试通过后再实现双击和组合键。
按键的关键是先对行赋值(或对列赋值),若对行赋值(列赋值),则对列进行检索(行进行检索)。当有按键被按下,相应的列(或行)拉为低电平。
在用数码管显示按键的状态时,由于595 IO的引脚和按键第三行用的都是P2^5引脚,数码管显示有时出现问题,与程序中间的延时时间有关。不太好控制。
(3)温度测量
温度的测量主要用到DS18B20,通过对DS18B20芯片个参数的控制便可驱动该芯片,把结果显示在数码管上。
DS18B20芯片操作包括读操作、写操作以及对其的初始化。在读操作时把读的结果与10相除得温度的十位,取余数得温度的各位(在室温下实验)。
(4)时钟控制
时钟的显示主要是通过对DS1302进行控制,可以实现时、分、秒、年、月、日的显示,并且有漏电保护功能。同样把时分秒显示在数码管上,通过按键再切换到年月日。
在给DS1302初始化时,如果写保护关,则有漏电保护功能(即断电重连后,时钟会自动记录断电的这段时间,并顺着此时间继续计时。)
(5)RS485通信
用RS485实现多机通信,编写通信协议实现一台主机和多台从机进行通信。在进行该模块设计时,由于平台搭建的有点问题,使得RS485的电压拉不到工作电压。然后把问题反映给了我们的两位指导老师,经过他们的一番测试,最终找到问题的所在:是因为一个电阻的原因。当然在观看老师对电路的检测中受益匪浅。也对多功能电压表的应用更为了解。
(6)Nokia 5110屏显示
Nokia 5110屏是48X84的点阵LCD,可以显示4行汉字。用Nokia 5110屏实现计算器、阅读器、推箱子和足球射门等功能。这四个程序设计全是基于Nokia 5110屏和对按键的检测,用按键来控制各个功能,并在屏上图形化显示。
在对计算器的设计要实现0——999之间的四则运算,尤其是除法运算还涉及到浮点数。阅读器主要是上下换行和左右翻页,由于要存储一段文字在寄存器中,文字不能太长,否则会超过程序寄存器的大小而不能进行构建。
推箱子是通过数组0和1实现小人和箱子的走与停。足球射门通过产生随机数来控制球的方向的任意性。
三、总结
两个月的暑期认知实习很快结束了,总体上来说感觉很充实,没有白白浪费暑假时光,也充实了自己的知识储备,获益匪浅。
当然很感谢龙夏老师和肖连军老师,他们放弃自己的假期,在酷暑中坚持没两天一到,为我们解答学习过程中的疑问。还有就是系里的支持,为我们提供凉爽的学习环境,会议室配有空调,在学习的同时不用经受酷暑的考验。虽然我们的学习场所很简陋:桌椅是我们从5栋教学楼搬的,电源插座是刚刚搭建的,和在普通教室上自习的同学来比我们是幸福的。
实习前虽说已经大二结束,但是对我们的专业嵌入式方向始终不甚明白,纵然专业导论课已经谈过,但是总感觉迷茫与空洞。书本上的知识也学了不少,像电路,数字逻辑,组成原理等一些课,但是这些课始终是书本知识,得不到实际的应用。通过这次的亲自动手设计到编写驱动设计程序,终于切身体会到在开发产品中要用到哪些知识。依然记得实训刚开始时,大家都很兴奋,因为我们要自己动手焊接自己开发板的每一模块,从电源模块开始着手。“书到用时方恨少,事要做时方知难”,一点也不假,感觉焊接应该不难,不就把锡点到电器元件引脚上不就行了,可是真正拿着烙铁去焊时,手是抖动的,烙铁也不打听话……淡然这只是刚开始时,经过多次的练习慢慢的得心应手。怪不得社会上的公司招聘都提到:有工作经验者优先。是啊,干过的总比纸上谈兵的强的多,公司不需要对你培训,可以直接工作给公司带来效益。
焊接电路板的时间很短,这只是简单的技术活,不需要逻辑上的考虑。接下来就是用我们焊接好的开发板开始我们的单片机之旅。由于单片机课程还没开,我们不得不从网上查资料,看教程弥补自己基础知识的匮乏。还记得自己写的第一个程序,驱动数码管。虽然看着焊接好的开发板很好看,但是要写程序点亮它就不那么容易了,第一感觉就是无从下手。老师建议我们从网上看前人的驱动程序,然后比着写,由于使用的单片机不同,电路的设计不同,在看网上程序时必须要明白其原理,否则还是无法借鉴过来,就这样第一个驱动程序花费了我两天时间才把数码管点亮。开发的过程是痛苦的,但是结果是令人无比兴奋的。看着自己点亮的数码管心里特别高兴。
接下来的日子就是每天对着电脑编写程序,然后下载到单片机中进行检测,查看能否运行。有时花费了一天的时间编写的一个程序下载单片机中竟然运行不了或者显示错误,心里真的特别失望;有时为了一个驱动程序想了一天还是一无所获,会特别烦躁……但是看到其他同学都在专心的研究,自己也就安慰自己别灰心,要坚持。就想《士兵突击》中说的一样不抛弃不放弃,所以自己也不能放弃自己。然后又重新打起精神,投入到学习当中,就是在这样的一次次的自我暗示中,在和同学们一起拼搏一起学习。
还记得在进行多机通信时,由于要把所有的单片机连接在一起,大家不得不默契配合,一起想办法,编写协议“众人拾柴火焰高”,很快一个主机程序,从机程序就出炉了。
经过一个暑假的认知实习我学到的不仅是知识,还有责任心、信心、恒心以及团队合作能力。我想无论是在学校还是以后踏入社会这些都必不可少。我认识到了我所学知识的重要性。知识犹如人的血液。人缺少了血液,身体就会衰弱,人缺少了知识,头脑就要枯竭。这次的单片机培训应用到的不仅是单片机知识,还有以前的课程,所以知识的积累也是非常重要的。这次亲身体验让我有了深刻感触,这不仅是一次实践,还是一次人生经历,是一生宝贵的财富。在磨练自己的同时让自己认识了很多,使自己未踏入企业就已经对企业有了一定的了解。
通过这次的实习,我对自己的专业更清楚的认知,以前一直不清楚嵌入式的具体应用,不知道以后毕业了该干什么。但通过这次的实习,我对嵌入式有了更清楚地认识,对单片机有了更清晰的理解。我认识到做什么都要有责任心,只有抱着认真负责的态度才能把任务完成。而程序员更是对耐心和细心有很高的要求。
在这次的实习过程中我学会了和同学相处,理解了互帮互助的道理,还有虚心求教的重要性!这对我以后毕业走向社会、走向企业打下了坚实的基础。在这次的实习中所增加的社会经验才是我最宝贵的收获!