1、单片机设计期末作业单片机原理课程期末作业(C)西安电子科技大学 测控专业一、作业形式通过本次作业,考查对8051单片机原理的掌握,以及程序设计和调试基本能力。要求独立设计并调试完成一个具有完整功能的小型单片机系统,并写一份简短的设计报告,对自己所设计的系统进行描述和测试。本次作业完成情况将作为平时成绩部分,计入期末总分。二、作业内容1、参考课程光盘内学习板说明书 C51 StartKit学习板.pdf 的说明,自行购买电子元件,组装一套51单片机学习板。2、从7道作业题中任选一题,独立完成程序设计,并在学习板上调试成功。3、撰写一份简短的设计报告。(主要说明设计思路、方法以及结果)三、作业提交
2、方式将作业打包压缩(rar文件),按照“学号_姓名_题目.rar”的文件名作为附件,发邮件至*。提交截止时间:课程期末考试前。提交内容:1、源程序。(整个工程所在文件夹)2、设计报告。(Word文档)3、(如果有)相关演示视频、图片等。四、作业题目(任选一题,多做不限)本次作业题难度分为ABC三档,A题较难,B题中等,C题较为简单。根据自己能力和兴趣选择合适的题目。1、彩灯控制器(难度B)学习板的P1口上接有8只LED,假设它们是一串彩灯。设计一个简易的控制系统,控制其流水或闪烁花样和速度。设计要求:1)具有至少4种花样,可以参考下图,也可以自行设计或增添其他花样。2)具有4个控制键,按下时蜂
3、鸣器要有“滴”提示音,按键功能如下: 按1键,速度加快 按2键,速度减慢 按3键,切换下一种花样 按4键,暂停,再按一次恢复运行3)其他功能,可自由发挥。设计提示(仅供参考):花样的设计可以利用查表(数组)来完成,每一种花色就对应一个数组,从中循环读取赋值给P1口即可实现滚动效果。利用定时器产生固定的节拍,当节拍计数至N时切换下一个数组元素,改变N值即可调节速度。键盘可以利用程序库中的代码。2、简易温度记录仪 (难度B)利用学习板上的DS18B20数字温度传感器,设计一个简易温度记录系统。设计要求:1)实时显示温度(大约12秒更新一次)2)1分钟记录一次温度。3)具有2个按键,按下时蜂鸣器要有
4、“滴”提示音,按键功能如下:按键1按下时,清除已存储的数据,重新开始记录。按键2按下时,从串口向超级终端打印记录信息,格式如下:序号,温度值1,xx.x, 2,xx.x3,xx.x 4)用自己设计的温度记录系统,记录一次温度变化曲线,附在报告中。例如:室温下记录5分钟,然后置于暖气片上加热放置10分钟(升温),再回到室温冷却10分钟(降温)。5)其他功能或测量实验,可自由发挥。设计提示(仅供参考):温度的测量可以利用程序库内DS18B20代码完成,1分钟计时可以通过定时器累计实现,每次1分钟定时到达时,将温度值顺序保存于一个数组中。建议利用STC单片机256字节外部RAM(xdata)存储温度
5、记录,可以记录128个温度值(约2小时),程序简单但缺点是实验过程不能断电。 也可以保存在STC单片机的Flash中(参考程序库),优点是断电也不会丢失。通过串口向超级终端打印字符,所显示的内容可以拷贝后粘贴在Excel表格里,用Excel生成曲线。注意:学习板上的温度传感器可以用导线延长出来,可以做一些其他有趣的实验(例如测一测一壶开水的水温下降的规律是怎样的?)。3、“节奏感”游戏机 (难度A)“节奏感”是人与生俱来的一种感觉,有的人节奏感好,有的人差。本题将利用单片机设计一个有趣的装置,对你的节奏感进行测试和评分。原理如下图:蜂鸣器发出两次“滴滴”蜂鸣声,之间的间隔是随机产生的(0.3秒
6、2秒范围内随机选取)。参与游戏者听到蜂鸣声后,根据鸣响节奏,估测第三次鸣响应该发生的时刻,按下按键。单片机根据按键时刻的误差Et(单位:ms),给出相应评分(分数显示在数码管上)。本次测试得分=100分 (误差Et20ms) 0 (误差Et400ms)每轮游戏测试10次(每次的时间间隔都是随机的),取平均分作为最后得分。设计要求:1)完成上述设计2)对同宿舍同学进行节奏感测试,得分情况附于报告中。3)其他功能,可自由发挥。设计提示(仅供参考):随机数的产生可以利用math.h库中的rand函数产生。可以用定时器产生1ms定时节拍,对蜂鸣及按键进行计时。显示函数可以调用程序库内的代码。注意,每次
7、测试开始前1秒左右,应该有准备提示(例如LED闪烁一下,提示测试即将开始)。4、电子骰子(难度B)利用单片机学习板上的键盘和数码管显示,设计一款电子骰子,能够产生随机骰子点数,最多能够模拟4个骰子同时扔出时的效果。设计要求:1)有4个按键,功能如下:按键1按下,投出1颗骰子按键2按下,同时投出2颗骰子按键3按下,同时投出3颗骰子按键4按下,同时投出4颗骰子2)4位数码管显示值分别代表4个骰子的点数(16)。3)按下按钮后,相应的数字位开始闪烁(16快速变化),松手后变化速度慢慢减缓,一段时间后才停下,蜂鸣器提示。要求每次点数都是随机的。4)其他功能,可自由发挥。设计提示(仅供参考):随机数的产
8、生可以利用math.h中的rand函数来产生,但是该函数每次生成的序列是一样的(因为每次复位或上电后,随机数种子是一样的)。解决方法之一是用按键时间长短来产生随机数种子,例如当按键按下时,开启定时器,松手时读取计数值n,作为种子,调用srand(n)函数将n设置为随机种子,然后再调用rand函数可以获取不重复的随机数序列。也可以开机后将外部RAM中的数据求和(上电过程不清除外部RAM,是随机数),作为随机数种子。注意rand函数产生的是032767内的随机数,通过取余操作(%6)获得05,再加1得到16之间的随机数。显示函数可以调用程序库内的代码。5、简易电子秒表(难度C)利用单片机学习板上的
9、键盘和数码管显示,设计一款秒表。要求如下:1)四位显示,分辨率0.01秒,即显示SS.XX秒。XX=0099,SS=00602)有2个按键,按键时有“滴”提示音,按键功能如下 按键1按下时,秒表开始计时;再次按时暂停计时;再按恢复计时 当秒表处于暂停状态,按键2按下时,计时值清零。3)计满1分钟(60s)后,点亮1只发光管,2分钟后点亮两只,依此类推。4)其他功能,可自由发挥。6、记忆力测试游戏机(难度A)据科学研究,人类的记忆分为长期记忆与短期记忆两类(有点类似于计算机的ROM和RAM)。短期记忆信息保持的时间很短,通常在520秒,最长不超过1分钟。短期记忆有时也被称为电话号码式记忆,如同人
10、们查到电话号码后立刻拨号,通完了话,号码也就随即忘掉。短期记忆能力反映了大脑信息处理过程中的信息暂存能力。本题将设计一款简单有趣的游戏装置,可以用来测试和提高你的短期记忆能力。原理如下图,按照随机的排列顺序在4位数码管上,随机位置显示数字14,然后要求用按键14重复输入刚才看到的序列。随着序列逐渐变长,记忆的难度也随之加大,直到记忆出错时为止游戏结束,此前的序列长度就代表了记忆能力。游戏过程:1)系统中具有4位数码管显示,4个按键。2)复位后,数码管提示LV-X,X表示难度等级,可以在数字15范围设置;按1键难度等级增加1按2键难度等级减少1按3键确认,游戏正式开始3)蜂鸣器“滴”短鸣后,开始
11、显示数字,数字14在随机位置出现(其他位消隐不显示),停留一段时间后,在下一个随机位置显示。难度等级越高,停留时间越短。4)显示完毕后,数字全部消失,用按键14输入刚才看到的序列。5)若输入序列正确,显示“PASS”1秒钟,序列长度增加1(相当于下一关),跳回步骤3,然后开始下一轮游戏。6)若输入序列错误,在输错的那一次按键时,提示“FAIL”1秒钟,然后显示得分,游戏结束。此后所有按键失效,必须按复位键重新开始游戏。步骤2)中的难度等级定义:LV-1 难度:每个数字显示停留2秒,LV-2 难度:每个数字显示停留1.5秒,LV-3 难度:每个数字显示停留1秒,LV-4 难度:每个数字显示停留0
12、.5秒,LV-5 难度:每个数字显示停留0.3秒,步骤6)中的得分 = 闯关数(失败前一关的序列长度)*10 + 本关(失败那一关)正确的个数*难度等级:设计要求:1)完成上述设计2)对同宿舍同学进行记忆力测试,将宿舍同学得分(最好有不同难度等级的得分)贴在报告中。3)其他功能,可自由发挥。设计提示(仅供参考):随机数的产生方法参考第4题。随机位置也可以用相同的方法产生。在任意位置显示数字和字母的功能可以通过显示程序库来实现。用定时器产生10ms左右的定时节拍,计数产生0.32秒的显示停留时间。键盘输入可以调用程序库实现。所产生的随机数字序列,可以先一次生成整个序列,保存在一个数组中,按照时间
13、间隔依次显示完毕后与输入序列逐一进行对比。7、简易定时提醒器(难度C)利用单片机学习板上的键盘和数码管显示,设计一款定时提醒器。要求如下:1)四位倒计时显示,即显示MM.SS。MM=9900分钟,SS=5900秒2)有4个按键,按键时有“滴”提示音,其中按键1和按键2用来设定倒计时时间,按键3和按键4用来控制。具体按键功能如下: 按键1按下时,调整分钟值加1,最大可设定99分钟 按键1长按不放时,分钟值加10。 按键2按下时,调整分钟值减1,最小可设定01分钟 按键2长按不放时,分钟值减10, 按键3按下时,倒计时开始,秒钟值每秒减1,减到0后分钟减1,同时秒钟值变为59。 倒计时过程中,再按
14、一次按键3,倒计时暂停。再按恢复,依此类推。 按键4按下时,取消本次定时,计时值清零,此后可以用按键1/2重新设定新的定时值。3)倒计时计至00.00时,蜂鸣器响。4)其他功能,可自由发挥。8、自选题目鼓励在上述5个题目之外自由发挥选题,利用51单片机学习板,设计并实现一个小型但完整的单片机系统(允许并鼓励扩展),完成某些特定的功能。以下是可供参考的选题方向。1. 解决生活中实际问题的小电子装置。2. 实用美观的电子礼品、电子装饰品等。3. 出于个人兴趣爱好的开发和研究。4. 尝试一些别人没有过的设计,特别是“看起来”不可思议的事。6. 用单片机自动完成某些实验的测量工作。7. 设计一些有趣的
15、小游戏。8. 为单片机学习板编写一个模块化程序。9. 设计新的人机交互方法、或新的人机交互体验10. 以上未列出的一切富有创意以及能完整实现的作品。五、报告攥写范例XXXX(所选题目名称)设计报告学号_ 班级_ 姓名_一、摘要用几句话简单明了的概述你做了什么东西,比如利用了51单片机的哪些模块,通过什么方法,实现了什么功能,达到了什么指标,做了什么实验,结果如何等信息(并非严格格式,自己发挥,但要简明扼要突出重点)。是报告的“浓缩精髓”,也是作品的第一印象。二、硬件设计简单介绍你所用到的硬件电路的原理,说明他们和单片机之间的连接关系,工作过程等关键问题即可,切忌长篇大论摘抄,应当简洁明了的介绍
16、。附上你所用到的电路原理图(或框图),不要将整个学习板的电路都贴上来(没意义)。如果你只用到了学习板的一部分,可以画框图表示;如果你在学习板的基础上扩展了某些电路,要把你扩展的部分详细画出来。如果不会用绘图软件,可以手绘然后拍照贴图。三、程序设计 简洁扼要地介绍你的软件实现了什么功能,这些功能是怎么实现的(设计思路)。画出主要功能的流程图。关键部分作必要的说明,切忌过多地纠缠于细节问题。四、测试结果拍一张作品的照片放在这一部分,最好它是正在工作时候的照片。必要时可以帖多张对比。简单地描述你是怎么验证题目中所要求的功能?如何进行的测试,步骤和方法是什么?测试结果如何?(通过测试,说明你完成了题目
17、中要求的功能,且功能是正确的)如果有实验部分,附一些典型的实验数据,例如题2和题3、题7可以贴上实验数据,第4题可以附上100次骰子的统计分析,看看16点的概率是不是均等的?第5题可以和一只标准秒表对比,看看计时有没有误差?五、总结可以参考下面的几个方面来写(不要求面面俱到,有针对的选择几个方面,根据实际情况写),但是要简明扼要,总结部分不宜再铺开。1)在设计过程中,遇到哪些困难怎么解决的? 2)总结出哪些经验?(包括成功的和失败的经验)3)你在设计过程中,有什么新方法、新思路值得分享?4)通过实际动手,学到了哪些东西?5)如何进一步改进?有什么思路?6)有没有什么有趣的新发现?(比如第6题,男生和女生的记忆力有区别么?第2题,试试宿舍里哪种开水瓶保温性能最好?)7)其他值得总结的内容。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1