小学期单片机实验日记 下载本文

实验日记

组号:12

小组成员:李雨薇,廖志杰,沈晨 课题:多功能闹钟 实验时间:2014.9.22-2014.9.28

9.22

第一天主要是进行基础知识的学习,看了许多关于AVR的视频,第一次接触这个单片机,有很多东西都是一头雾水,基本上什么东西都是照着视频一模一样的学习,再加上没有老师讲解,全部都要自学,不会的时候小组成员相互讨论,还是搞不明白的时候就去请教其它小组同学,好在大家都是编写流水灯这个基础程序,所以流程都差不多,不懂得地方就对比一下,下午开始动手编写程序,由于是一个小组实验,我主要负责电路的搭接,廖志杰负责程序的编写,按照视频教学,电路连接很容易上手,代码也很容易,第一天的成果就是流水灯成功亮起。

9.23

第二天开始动手完成第二个要求-----计时器,这个程序在视频教学中也有详细讲解,主要比较困难的是控制走每一秒的时间,因为设置的是延时,所以秒钟走的特别快,不符合平时我们用的计时器,当时我们没有想到好的方法就采取最笨的,跟手机里的计时器进行比对,猜测可能的延时,一点点试。后来小组讨论有没有更好的办法,我联想到以前程序实践设计课曾经用过系统计时函数,经过成员的查阅资料,觉得可以尝试一下。搞了一晚上,真是书到读时放恨少,去年学程序设计的时候就应该搞明白,不应该随便糊弄一下。虽然一天的时间后,采用系统函数的计时器没有运行成功,但是至少是一个新的思路。还有开关的要求,其实主要的问题就是开关接触不好,本来以为是自己的代码编写有问题,但后来一不小心按键按得太使劲了,结果就亮了,果然是接触的问题,然后直接就省掉开关,直接用导线连接了,这样又稳定又省事。

9.24

第三天,下午就要验收了,还有好多没有完善的,有点紧张。 仔细看了一遍实验要求,老师只要求按下按键流水灯继续亮,计时器停止,两者互不干扰,但没有要求二次按下按键计时器是否要继续开始,可能是没有太理解程序代码的步骤,觉得一旦按下按键,进行全局跳出程序,没有回去的可能性,再加上其他小组也没有考虑到这个功能,所以就没有担心的去验收了。验收的时候发现有一个小组竟然可以二次按键后计时器继续计时,觉得好厉害,赶紧上去请教,他说设置一个变量,在中断的程序后判断引用就可以,我们小组赶紧回去尝试,但是时间实在是太紧张了,晚上就要交选题报告,小组讨论觉得应该预留时间进行选题的方案设计,毕竟后面的这个大实验才是小学期主要的课题项目,这个流水灯只是基础实验,只要掌握基本要领精髓,后期如果想加功能可以在选题项目中实现。所以二次按键计时器继续计时这个程序我们就放弃了。 晚上进行选题讨论,老师说要想拿下高分就不要做那些已经被学长学姐做烂的题目,所以参考了1-4周已经做过小学期的班级,还有时间有限问题,选题的难易程度,可操作性,实验室器材等许多因素,最后选定了温度计这个课题,而且老师说不是很难,但是胜在做的人不多。

9.25

第四天开始新的实验了,上网查资料,这个课题看上去很简单,其实我个人觉得一点都不简单,网上可参考的资料都不是我们所用的ATmega16单片机,而且其他小组选的电子琴,直接从网上找的代码,一个上午就编译成功,电子琴已经初见雏型了,在加上当时我们一头雾水,心情就特别的浮躁,下午还好,小组成员相互鼓励,相互加油,一个看教学视频,一个上网去图书馆查阅资料,有尝试自己编写简单的代码,可是对于单片机毕竟才接触了三天,

很多头文件都不会添加,晚上的时候小组成员就有说“算了,换一个简单的课题吧,我们实在不太了解。”坚持到底是什么呢?什么时候该坚持?什么时候该放弃呢?再面对有限的时间,还想要做出成果的考验之下,我们不得不放弃这个课题。现在想想如果当初可以静下心来,一点点看视频,一步步编写程序,也许这个课题也没有看上去的那么困难吧。 9.26

第五天开始选择其它课题,小组相互提意见,提想法,最终经过讨论敲定了多功能闹钟这个课题。我们根据实验要求和自己所要增加的额外功能程序,在流水灯的基础上,加了液晶显示屏,喇叭,蜂鸣器等器件,根据芯片的功能,以及预期功能,将大程序分解成一个个小模块,分别写出相应程序,由于之前流水灯基础知识的铺垫,再加上后期相应网上的程序资料,但是这其中出现代码无法编译的问题,找不到头文件,某词first used in this function,廖志杰很困惑,我就说让我来试试,尝试了一下午,即使定义了变量,还是会有这个bug。请教同课题的小组,共同讨论解决问题,发现是头文件需要自己重新建立,并在icc程序下运行后再次打开工程文件才能顺利下载编译。这个问题是我们之前做实验没有遇见过的,还好其他小组友情帮助。对比以前的实验程序,我觉得我们现在使用的单片机avr的芯片集成功能很强大,这其实同时也省去我们很大的工作量。 9.27

第六天主要进行收尾工作,预期功能的测试,虽然代码编译成功,但是在下载到板子后还是遇到了很多实际问题。首先遇到的问题就是4*4键盘跟我们设置的按键不太一样,查阅了键盘的介绍,然后进行比对猜测,不断尝试键盘按键的可能对应代码,比较麻烦;然后就是闹钟的设置,发现设置的闹钟不能按照预置时间响起,排除掉电路连接问题,重新审查一遍代码,由于这一段代码是从网上找的,并没有进行详细理解消化,和小组成员讨论学习后,明白闹钟的功能就像实际生活的闹钟一样,必须按下启动按键,闹钟才会如期响起。实际操作后成功。还有就是最终版代码的完善和电路板的美观,将整个程序代码重新看一遍,进行充分理解吸收,尤其是那些不是自己写的,然后在原来的基础上简化,变成自己的程序代码。 晚上的时候,实验结果终于达到了预期效果。其实这次实验时间非常有限,但是由于是自学,还是学到了很多单片机的知识,受益匪浅。