基于51单片机的模拟打地鼠游戏设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.
《现代通信技术》课程设计基于51单片机的模拟打地鼠游戏设计
院系:工学院
专业班级:通信工程10秋2班
姓名:钟丽薇
学号:10032202
小组成员:陆韵
指导教师:徐振、赵兰
完成日期2013年10月
目录
1 设计任务 (1)
1.1设计题目及材料 (1)
1.2设计要求 (1)
1.3设计进度安排 (2)
2 总体方案 (3)
2.1硬件设计 (3)
2.1.1 主控芯片 (3)
2.1.2 数码管模块 (4)
2.1.3 LED模块 (5)
2.1.4 独立按键模块 (5)
2.2软件设计 (6)
3 功能调试 (7)
3.1调试过程 (7)
3.2调试中遇到的问题 (7)
4 设计总结 (8)
5 致谢 (9)
1 设计任务
通过本次课程设计,运用已学的课程知识,自主设定题目及要求,进行软硬件系统的设计和调试,对《现代通信技术》课程中涉及的芯片结构、控制原理、硬件和编程等方面有一定的感性认识和实践操作能力,从而加深对本课程知识点的理解,使应用知识能力、设计能力、调试能力以及报告撰写能力等方面有显著提高。
1.1 设计题目及材料
我们的课程设计选题定为《基于51单片机的模拟打地鼠游戏设计》。
将所掌握的的元器件组合在一起,设计出具有可玩性的实用小制作,不仅巩固了已学习的知识,更能拓展自己的思维能力。
所用到的材料:
表1.1 材料列表
STC89C52单片机开发板1块
4位8段数码管(共阳)1个
LED灯5个
轻触按键5个
100Ω电阻5个
0.5kΩ电阻4个
9013三极管4个
杜邦线若干
1.2 设计要求
要求作品完成后,可以实现简易打地鼠游戏的功能。
具体如下:接通电源后,游戏开始,数码管显示“0”,同时随意点亮一个LED,在2秒时间内按下对应的按键,则数码管示数加一,游戏继续;
反之,则示数归零,游戏结束
1.3 设计进度安排
表1.2 设计进度安排
10月21日(周一) 收集资料,确定选题,大致设计方案10月22日(周二) 设计电路图,采购所需材料
10月23日(周三) 完成具体设计,组装电路板
10月24日(周四) 完成硬件部分,完成部分论文
编写程序;软硬件调试
10月28日(周一) 至
10月29日(周二)
10月30日(周三) 最终调试,完成论文
2 总体方案
2.1 硬件设计
采用AT89S52为主控芯片的单片机开发板,选取共阳四位八段数码管作为计分显示,以及5个LED和5个独立按键分别制作模块,通过杜邦线连接到单片机上,使其成为一个为简易的游戏机。
本游戏硬件部分的电路原理图是自行设计,电路板全部为手工布线与焊接。图2.1为设计的电路图。
图2.1 电路原理图
2.1.1 主控芯片
我们采用STC89C52为主控芯片,具体引脚图如图2.2。
图2.2 STC89C52芯片引脚图
2.1.2 数码管模块
采用共阳的数码管,可使电路的设计变的较为简单,只需要使用4个三极管(9013)以及4个限流电阻(0.5kΩ)即可实现数码管的功能。
图2.3 数码管模块电路图
2.1.3 LED模块
将5个LED分别与5个100Ω的电阻串联,可有效防止LED过热。
图2.4 LED模块电路图
2.1.4 独立按键模块
独立按键需要采用质量较好的轻触按键,使游戏的可玩性增强。
图2.5 LED模块电路图
2.2 软件设计
游戏程序应用C 语言编译,主要使用函数为随机函数和键盘扫描函数。通过随机函数产生一个随机数,并同时使对应的LED 点亮,即可出现随机的“地鼠”。通过键盘扫描函数,使每个按键各对应一个LED 灯,通过按下该键使相应LED 灯熄灭。
开始
产生一个随机数x
点亮编号x 的LED
检测编号x 的按键
是否被按下
编号x 的LED 熄灭数码管示数加1
编号x 的LED 熄灭数码管归零
游戏结束
数码管归零
否
是
图2.6 系统流程图
3 功能调试
3.1 调试过程
1.硬件焊接完成后,首先使用单片机开发板的5V接口和GND接口对元件功能进行简单测试,确保元件焊接无错误,可正常工作。
2.烧录程序,正确连接管脚,测试程序是否顺利执行。
3.2 调试中遇到的问题
对于编程很生疏,所以编好的程序存在着很多问题,比如无法正确显示数码管示数、以及某LED灯点亮后,规定时间内按下对应按键,LED 却不熄灭,分数不累加的问题。
对于第一个数码管示数错误的问题,我们对数码管示数的编码进行核对,发现使用了共阴数码管的编码,导致数码管示数的乱码,修改为共阳数码管的数字编码,解决了示数错的问题。
第二个问题,则查看了按键的循环检测程序,发现程序中的一些逻辑编译错误,改正之后,功能即可实现。
4 设计总结
经过两个星期的设计,经过不懈的调试和修改,作品的设计功能基本实现,通过这两个星期的实践,对于设计一个项目的能力得到了锻炼,同时了解到了自学的重要性。不仅要掌握课堂上所学到的理论知识,更重要是在实践的过程学习更多的新知识。只有自己实际操作过实践过的知识,我们才能真正的理解运用。
课程设计的过程不仅仅是一次对自己专业能力的挑战,也是对团队协作能力的一次锻炼,因为在一个团队里,有明确的分工和职责,每个人都有一致的团队精神才能又快又好高质量的完成任务。另外,这对自己的耐心以及抗压能力也是一次很大的锻炼,因为每一次程序无法工作都给自己心里制造了一份压力。要学会从失败中学习,一次次尝试,不能放弃,才能获得最终的成功。