武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年12月30日今天早上,我打开电脑,发现同学们都在讨论今年的单片机实习任务。我仔细看了下实习任务的每一条要求,发现这个任务整体上来说是比较简单的,但是中间的一些细节性问题可能不好解决。我整理了一下思路,根据老师给的时间安排了自己单片机课设的具体计划。我决定今天的主要任务就是查找资料,安装软件,做好十足的准备工作。于是我去了东院图书馆去借了此课设所需的参考书籍,并且在网上下载相关软件,为了提高自己的能力,不准备将软件汉化。在装好需要用的软件以后,根据借来的参考书籍,熟悉了这些软件的基础用法,并且通过向同学请教相关的问题,使我更熟练的掌握了单片机相关知识。我对接下来十四天的实习期做了一个初步的规划,我相信通过自己得努力,一定可以顺利完成此次单片机课程设计。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年12月31日今天主要的任务就是通过查找资料和阅读参考书把这次课程设计的各个模块的方案选择出来,首先我需要弄清各个模块的基本原理,根据原理才能来进行方案选择,然而方案选择真不是一件轻松的事情,根据要求,通过从图书馆借的参考书籍和在网上找到的期刊文献等,我选出一些可以实现并且能满足课程设计要求的多种方案,并且要在这多种方案的基础上,优中选优,选出一个更适合实际的方案经过查阅相关资料,相互对比,我最终确定单片机选择STC公司生产的STC89C52RC这款单片机,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。选定好芯片后,再了解该芯片的基础上,就开始设计该单片机的最小系统,经过查阅相关资料,单片机的最小系统需要再单片机上加复位电路、晶振电路、P0口上拉电阻等。设计完最小系统,经过查阅相关资料,我选定美信公司的MAX232这款芯片,用这款芯片来实现ISP下载程序。今天我计划完成最小系统的设计,并且开始进行外部扩展电路的设计。今天需要设计通信接口部分。单片机使用的是TTL电平,而计算机使用的是RS-232电平,实现RS-232电平与TTL电平之间的转换。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月1日今天主要的任务仍旧是硬件电路的设计,主要包括是供电模块、按键模块、数码管显示模块、串口通信模块。设计供电模块时,我直接使用的USB接口,因为USB口本身就带有VCC和GND,使用也比较方便,而且目前很多手机充电机,电脑的USB端口输出电压都在5V左右,所以采用外接USB供电线来给系统供电是十分合适的。同时,对于按键模块,由于系统要求的功能比较多,所以若是每个按键都占一个IO口,那就显得太浪费单片机资源了。故我选择了矩阵键盘。同时,在设计数码管模块时,我认真了解了共阳数码管和共阴数码管的区别,并做了对比,发现两者区别不是很大,由于我以前使用过共阳数码管,我决定使用共阳数码管。考虑单片机驱动能力并不强,需添加锁存器给数码管供电。对于串口,由于前面已经对51单片机有一定了解,知道此时可以选择一块主机,一块从机,通过主机的串口TXD与从机RXD相连,以单工通信的方式即可实现老师的要求。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月2日今天上午,我将昨天设计的电路重新检查了一遍,发现没有什么大的问题,于是准备开始进行软件设计。虽然说之前对51单片机软件编程有过基础,但是,时间长了,许多编程的思想与方式都有些淡忘了。所以今天,我又重新的打开了keil软件,翻开了C语言书以及原来看过的郭天祥编的一本讲授51单片机的书。花了2个小时熟悉了51单片机的编程语言和编程环境。下午,则根据实习要求,开始构思各个功能,各个模块的编程思想、软件流程图等。虽说整个过程有些艰难的,有很多地方自己还是不是很清楚,但是经过查阅资料,与班上同学讨论,到晚上时候,总算把大致架构搭建出来了。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月3日昨天进行了软件的流程设计,今天就要正式开始编写程序代码了。今天主要是编写单独一些模块代码。具体如下:首先是设计了系统软件编程了经常会用到的一些函数,如延时函数,键盘扫描、数码管显示等。在这些基础上,我开始设计数据输入和数据显示的实现函数。在编程前,我经过详细思考,对于这些功能,我应该设什么样的变量,什么地方设全局变量,什么时候设局部变量,变量的类型是什么。最后,以key这个全局变量来存储按键值,以一个全局变量的数组来实现功能一中的键盘输入的序号以及序号所对应的数字。然后功能二则是在这个数组中取出相应存储的数字。并且,程序中也详细定义了每个按键所赋予的意义,以及一些情况的处理等由于数据储存部分逻辑较为复杂,需要考虑的东西很多,思维经常出现短路的情况,但我还是通过请教学长渐渐解决了这些问题。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月6日今天我的任务是完成串口通信的代码编写,由于对单片机的串口寄存器配置不是很熟,我花了2个小时重新复习了单片机教科书中的串口部分。在编写程序时,我将串口配置为工作模式1,波特率配置为4800,定时器1的工作方式配置为方式2,功夫不负有心人,很快我就实现了串口通信功能,再接再厉地完成了功能三程序的设计。以上相应各自的功能基本实现了,但是,系统是整体工作的,还需要将各个功能结合起来。经过实践,我确定以键盘的输入来实现功能的转换,并在整体上逐渐形成相互联系、相互制约这种关系。逐渐的完善整体程序经过这几天的辛苦努力,程序终于写完全了,这个过程中,遇到了不少bug,但是身边的学长帮助了寻清了问题,最终解决了。所以我很感谢他们的帮助,同时也希望后面的仿真以及实物调试能顺利完成。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月7日今天,我将对系统进行整体的仿真测试。由于并不知道程序是否完全正确,所以心里还是有些许的忐忑之感。开始仿真后,我发现仿真的过程出奇的顺利,那也就是证明我所编写的程序并没有出现很大的错误。只是有的时候会出现数码管莫名其妙闪动的情况和退出功能时依然会有数字留在数码管上。经过仔细的排查和思考,我发现出第一种错误的原因是在显示数据时没有把上一次的数据清除,导致上一次的数据还留有残留,当程序循环执行时就会显示出来。至于第二个错误呢,其实也是编程的时候思维不够严谨,在退出程序时忘了关闭显示。加上这些代码时,程序运行就不再出错了。经过今天的仿真测试,我明白了测试的重要性,许多错误在编写的时候难以发现,但是一仿真就马上暴露出来了,这样可以增加所写程序的严谨性。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月8日今天,我将进入实物焊接的阶段。由于以前已经有过不少焊接的经验,这一次的焊接倒是颇为顺手,并没有出现什么大的纰漏。只是中途好几次被溅出来的焊锡烫到了手。这次焊接的工程量是有史以来最大的一次,以前也就只是焊一个小模块,而这一次是要焊一整个系统。因此,这一次花了一天的时间才将整个系统焊接完毕,其中较为复杂的就是单片机最小系统和数码管的焊接了。由于数码管引脚并是不是按顺序排列的,所以在焊接的时候不可避免的会遇到需要跳线的情况。为了美观,我已经尽量减少了跳线的数量,但是在实在绕不过去的情况下,我还是跳了不少线。焊了一天的电路板,虽然一直低着头很累,但是感觉一天过得很充实。经过了一天的实践,我感觉我的焊接技术比以前更加熟练了,这对我来说是一个很好地锻炼。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月9日终于进入了实物调试阶段,我充满期待的把焊接好的系统和电脑连上进行调试。本来以为过程会和仿真时的一样顺利,可是现实却给了我一个下马威,程序下不进去。没想到一开始就并不顺利,把板子检查了好几遍之后发现自己犯了一个非常低级的错误。我没有将连接RXD和TXD的排针和MAX232接起来。当接上时,下载便成功了。此后,我先编写了一个简单显示数字的数码管调试程序,用来检测数码管是否接错。可是上电后数码管没有任何显示,我以为是自己数码管没有焊好。于是拿着万用表一个引脚一个引脚的检测发现没有任何错误,然后再检测单片机的输出,发现也没有错误,但奇怪的是一接上74LS573所有引脚的电平都被拉低了。拿着旁边同学的电路板进行对比后才发现我把芯片插反了。将芯片插对并改变VCC与GND后数码管显示正常。经过今天的调试,我发现自己粗心大意的毛病的确是需要改改。焊接的电路板大错误没有,小错误不断。但就是这一个个的小错误会导致整个电路出现错误,明天将进行整体调试,希望不要像今天一样困难。武汉理工大学《单片机原理及应用》课程设计报告书实习日记2013年1月10日今天将进行实物的整体调试,昨天功能测试成功后今天要将所有模块连接起来进行联调,希望能比较顺利。首先测试功能一与功能二一起调试,由于功能一看不出什么效果,于是按了几个键之后就开始测试功能二。按下功能二键后,在之前输入的数字显示在了数码管上,那就意味的前两个功能测试成功。接下来测试功能三,串口发送。我只焊了一套最小系统,便借同学的系统进行联调。同学的数码管为共阳数码管,之前在编写程序的时候使用的共阴数码管的数组,对程序进行微调后下入单片机中,测试很成功。可是显示总是有些不稳定,前一次还是好的,可是过了几小时再测又会发送不正常。经过和同学的讨论的出结论,可能是与电脑串口连接的部分对其有一定的影响。测试的时候将与MAX232连接的两根线拔掉后显示变得稳定了不少。到今天,实物也调试完毕了。通过这次课程设计,我体会到了自主设计实物的不容易与最终实物调试成功后的喜悦感,也让我对单片机这门课程有了更深层次的了解。此外,我还感受到编写程序时思路清晰的重要性。我正是由于有时候有些急于求成,在还未规划好的时候就开始编程,导致后期小错误不断。武汉理工大学《单片机原理及应用》课程设计报告书本科生课程设计成绩评定表姓名性别专业、班级课程设计题目:课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日武汉理工大学《单片机原理及应用》课程设计报告书实习成绩表一、成绩评定所占比例(%)成绩实习表现实习报告质量考试或其他总成绩二、对实习表现及实习报告质量的综合评价(评语)指导老师(签字):2012年月日注:该表由实习指导老师在批改完实习报告后填写。