欢迎来到天天文库
浏览记录
ID:1601840
大小:821.50 KB
页数:6页
时间:2017-11-12
《课题设计-基于51单片机与点阵的贪食蛇游戏机开发》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、物理与电子信息工程学院登峰杯论文07电信本一蘧孝泼基于51单片机与8*8点阵的贪吃蛇游戏机开发物理与电子信息工程学院07电信本一蘧孝泼摘要:设计并实现了一种基于51单片机的贪吃蛇游戏,主要讨论了游戏机的硬件电路与软件编程的设计方案,并介绍了如何使用Proteus进行软件仿真。通过软件测试,可实现贪吃蛇游戏的基本功能。关键词:单片机;贪吃蛇;LED点阵Abstract:Designedandimplementedamicrocomputer-basedSnakegames,mainlydiscus
2、sedtheconsolehardwaredesignandsoftwareprogramming,anddescribeshowtousetheProteustosoftwareemulation.Softwaretesting,canberealizedSnakegame'sbasicfunctions.Keywords:Singlechipmicrocomputer;Snake;LEDlattice引言6物理与电子信息工程学院登峰杯论文07电信本一蘧孝泼贪吃蛇,是一种益智小游戏。其游戏背景
3、:蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征,而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候就有人发明了这么一种游戏,是现在贪吃蛇的前身,后来慢慢地发展成了现有的贪吃蛇游戏。其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的食物,越吃越长,到了一定的长度之后,就可以进入下一关,越到后面的关卡蛇移动的速度越快,只要蛇头碰到四周的墙壁或者碰到自己的身体,小蛇就立即毙命并结束游戏。本文根据贪吃蛇的游戏规则,以ATMELAT89S52单片机为控制核心,使用8*8点阵为显示模块
4、,设计并实现贪吃蛇最基本的功能。一、硬件设计1、8*8LED点阵的原理说明本设计采用的点阵显示模块是ARK-SZ411288K,其原理结构图如图1所示。ARK-SZ411288K显示模块是8*8点阵的显示模块,从图1中可以看出,8*8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的图18*8LED点阵的原理图6物理与电子信息工程学院登峰杯论文07电信本一蘧孝泼二极管就亮。ARK-SZ411288K可与CPU直接连接,根
5、据引脚说明,将其各个引脚与相应的I/O口连接。2、LED阵列驱动电路正向点亮一颗LED,至少也得10~20毫安,若电流不够大,则LED不够亮。而不管是8051的输入/输出口,还是TTL、CMOS的输出端,其高态输出电流都不是很高,不过1~2毫安而已,因此,很难直接高态驱动LED。这时候就需要额外的驱动电路,本设计采用的是74HC595,用74HC595芯片驱动LED有以下特点:速度较快,功耗较小,LED的数目多少随意,既可以控制共阴极的LED显示器,也可以控制共阳极的LED显示器,可以软件控制L
6、ED的亮度,还可以在必要的时候关断显示(数据保留),以减小功耗,并可随时唤醒显示。用它设计的电路,不仅软硬件设计简单,而且功耗低,驱动能力强,占用的I/O口线较少,是一种造价低廉,应用灵活的设计方案。图274HC595管脚图74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器。寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK),都是上升沿有效。当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时,寄存器的数据置入锁存器。清除端(CLR)
7、的低电平只对寄存器复位(QS为低电平),而对锁存器无影响。当输出允许控制(EN)为高电平时,并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响。74HC595最多需要5根控制线,即SDA、SCLK、SLCK、CLR和EN。其中CLR可以直接接到高电平,用软件来实现寄存器清零;如果不需要软件改变亮度,EN可以直接接到低电平,而用硬件来改变亮度。把其余三根线和单片机的I/O口相接,即可实现对LED的控制。数据SDA口送入74HC595,在每个SCLK的上升沿,SDA口上的数据移入寄存器,在S
8、CLK6物理与电子信息工程学院登峰杯论文07电信本一蘧孝泼的第9个上升沿,数据开始从QS移出。如果把第一个74HC595的QS和第二个74HC595的SDA相接,数据即移入第二个74HC595中,照此一个一个接下去,可接任意多个。数据全部送完后,给SLCK一个上升沿,寄存器中的数据即置入锁存器。此时如果EN为低电平,数据即从并口Q0~Q7输出,把Q0~Q7与LED的8段相接,LED就可以实现显示了。要想软件改变LED的亮度,只需改变EN的占空比就行了[1]。二、软件设计1、主程序工作流程主程序工
此文档下载收益归作者所有