登峰杯范文。基于51单片机与点阵的贪食蛇游戏机开发

合集下载

基于单片机的贪吃蛇设计

基于单片机的贪吃蛇设计

基于单片机的贪吃蛇设计本篇论文主要是设计并且着手致力于实现一种基于51单片机的经典的贪吃蛇游戏,主要是研究该游戏的硬件电路和软件编程的设计,同时也简单介绍了应该如何使用Proteus软件进行仿真。

借助仿真软件进行实验测试,可以基本实现游戏一些简单的基本功能。

直至现在,大家都知道且明白了51系列的单片机技术相对而言比较成熟,功能也十分强大,应用较为广泛。

将单片机作为本设计的控制核心,能够使硬件电路大大地简化,用软件来编程控制单片机,来加以实现硬件电路的功能,可以降低能耗,同时也节约成本。

选用C语言编程,比较方便灵活,极大地加快了软件开发的速度,使开发周期缩短了,同时方便移植。

本篇论文比较详细的的介绍了各种硬件的基本特性,贪吃蛇游戏实现的基本功能与详细设计,软件设计的具体说明,每一个模块的细节要求,还有一些功能模块的程序流程图和关键部分代码的详细讲解等。

关键词:Proteus软件仿真;51单片机;Keil;贪吃蛇;LED点阵屏目录1 绪论 (1)1.1研究背景及意义 (1)1.2单片机发展状况 (1)1.3 LED发展状况 (2)1.4 设计特点 (3)2 系统总体设计 (3)2.1设计要求 (3)2.2 系统设计方案 (4)2.2.1硬件设计 (4)2.2.2软件设计 (4)3系统硬件设计 (4)3.18*8LED点阵的原理说明 (4)3.2 LED阵列驱动电路 (4)4系统软件设计 (5)4.1系统主要模块介绍 (5)4.1.1 主函数模块 (6)4.1.2 按键模块 (6)4.1.3 蛇运动控制模块 (6)4.2主程序工作流程 (6)4.3 游戏设计思想 (7)4.4 LED点阵初始化 (8)4.5 贪吃蛇的移动 (9)4.6 食物的随机出现 (9)5联调与测试 (9)5.1软件调试 (9)5.2硬件调试 (10)结论与展望 (13)附录A:系统原理图 (14)附录B:系统PCB图 (15)附录C:系统仿真图 (16)附录D:系统实物图 (16)附录E:系统源程序 (18)1 绪论1.1研究背景及意义时代在不断的进步,人们的生活节奏也因此不断加快,越来越多的人加入了经济化全球化的世界。

毕业设计(论文)基于单片机的微型游戏机贪吃的蛇

毕业设计(论文)基于单片机的微型游戏机贪吃的蛇

基于单片机的微型游戏机—贪吃的蛇摘要单片微型机简称单片机,它是在一片芯片上集成了中央处理部件,存储器、定时器/计数器和各种输入输出设备等接口部件。

单片机是微机发展的一个重要的分支,自问世以来,性能不断地改善和提高,加之单片机具有集成度高、功能强、速度快、体积小、功耗小、使用方便、性能可靠、价格便宜等优点,故在工业控制、数据采集和处理、通信系统、家用电器等领域的应用日益广泛。

国内虽然起步较晚,但单片机的潜力越来越被人们所重视,尤其在工业控制、自动化仪器仪表、计算机系统接口、智能化外设等应用领域发展很快。

它的应用对于产品升级换代、机电一体化都具有重要的意义,在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数,被用于各种不同产品的生产。

在通信行业更为广泛利用,手机从只能基本通话,到现在一台手机拥有各种不同的功能,单片机得到了广泛的应用。

手机可以听音乐,听收音机,玩游戏,照相片等等,比较流行的手机游戏贪吃蛇就能用单片机实现。

关键词:51单片机贪吃蛇游戏Based on single chip micro-game - greedy snakeABSTRACTSingle-chip microprocessor referred to as microcontrollers, which is integrated on a chip, a central processing unit, memory, timer / counters and a variety of input and output devices such as Interface Unit. SCM is a microprocessor development, an important branch, since its inception, performance, continuous improvement and increase, coupled with microcontroller with an integrated high, strong function, high speed, small size, power consumption, easy to use, reliable, cheap, etc. advantages, so in the industrial control, data acquisition and processing, communication systems, home appliances and other fields increasingly wide range of applications. Although the domestic late start, but the potential of SCM has been growing attention, especially in industrial control, automation instruments and meters, computer system interface, intelligent peripherals and other applications developed rapidly. Its application for the upgrading of products, mechanical and electrical integration, have important significance in industrial production, current, voltage, temperature, pressure, flow, flow rate and switching capacity are commonly used parameters of the main accused, was used for a variety production of different products. More extensive use of the communications industry, cell phone calls from can only be basic to the present, mobile phones have a variety of functions, single-chip has been widely used. Phone can listen to music, listening to the radio, play games, according to photos, etc., the more popular cell phone game Snake will be able to use SCM.Keyword:51singlechip snake game目录1 第一章绪论 (1)1.1概述 (1)1.2选题背景 (1)1.3课题分析 (1)1.4思路设计 (1)2第二章系统的基本组成和工作原理 (2)2.1系统的基本组成 (2)2.2系统的工作原理 (2)3第三章显示电路的选取和设计 (2)3.1游戏显示的器件选择 (2)3.2显示功能的硬件电路 (3)4第四章键盘扫描的电路设计 (4)4.1键盘扫描思路设计 (4)4.2键盘硬件电路设计 (4)5第五章系统程序设计 (5)5.1编译软件 (5)5.2软件设计工具 (5)5.3C51 优化的 C 语言交叉编译器 (10)5.4系统设计流程图 (11)参考文献 (15)附录 (16)谢辞 (43)1 第一章绪论1.1概述本设计采用80C51核心的单片机最小系统,80C51是MCS—51系列单片机钟CHMOS工艺的一个典型品种。

基于51单片机实现的贪吃蛇游戏机开题报告

基于51单片机实现的贪吃蛇游戏机开题报告
以51单片机开发板为核心,通过操控“上”、“下”、 “左”、“右”按键来操控LCD12864显示屏上的贪吃蛇 行进的方向,获取食物,每获得一个食物,贪吃蛇的长 度将增大,达到一定长度时会进行晋级,同时贪吃蛇运 动速度加快。一旦在贪吃蛇的运动过程中碰到屏幕边缘、 障碍物或是蛇身,贪吃蛇死亡,游戏结束。
• 硬
按键开关
方向按键
单片机 扬声器 LCD12864 LCD1602
• 成员分工
软件程序调试: PCB画图与制版: 焊接电路与调试:
• 时间规划(第一周)
谢谢观看
• 预期实现目标
我们希望能够在单片机设计的贪吃蛇的游戏机中设置游 戏等级,通过LCD1604来显示游戏的等级信息以及游戏 得分等信息,在用户进入欢迎界面后,可以进行自由选 择等级,比如:简单,中等,困难。同时,希望能够在 游戏的开始、暂停和结束环节增加一些背景音乐增加趣 味性。
• 初期产品基本效果图
• 设计意义
贪吃蛇是一款简单的益智游戏,我们可以以51单片机为 核心来设计一个简单的贪吃蛇游戏机,这只是单片机应 用的一个点,由点及面,希望可以更好的将理性与感性 相结合,深入了解和应用相关的专业技术,将之前理论 学习的知识运用到实际中,提高实践动手能力,为将来 科研道路打下坚实基础。
• 预期实现目标
电子工艺实习
基于51单片机实现的贪吃蛇游戏机 Greedy Snake Game Based on 51 MCU
• 设想
在课程设计期间,我们学习了以MPS430单片机为核心的 DC/DC降压器的设计,因而想要进一步了解单片机的使 用,而单片机的基础入门必备的就是51单片机,所以我 们就设想通过51单片机来实现一些有意思的功能。于是 我们就想到了用51单片机来实现小时候的益智游戏—— 贪吃蛇。

基于51单片机贪吃蛇游戏设计

基于51单片机贪吃蛇游戏设计

基于51单片机贪吃蛇游戏设计贪吃蛇游戏是一种经典的游戏,也是很多人小时候玩过的游戏,其玩法简单,但却能够让人沉迷其中。

本文将介绍如何基于51单片机设计贪吃蛇游戏。

一、功能需求1. 界面设计贪吃蛇游戏的界面应简洁美观,可以利用点阵或LCD显示屏来呈现。

应包括游戏画面、分数、游戏难度等。

2. 操作方式游戏的操作主要包括上下左右移动贪吃蛇头部,进行输入、开始游戏、结束游戏等操作。

游戏可以使用按键、遥控器或者手柄等方式进行控制。

3. 游戏规则游戏正常进行时,贪吃蛇必须不断吃到食物,同时不能碰到墙壁或自己的身体。

每吃到一个食物,分数就会增加一点。

当贪吃蛇碰到墙壁或自己的身体时,游戏结束。

4. 难度等级游戏可以设置不同的难度等级,难度等级越高,贪吃蛇的速度就会越快,游戏难度也会相应提高。

二、设计思路本设计采用51单片机作为控制器,通过点阵或者LCD显示屏实现游戏界面的显示,通过按键、遥控器或手柄等方式进行游戏的操作。

具体设计思路如下:LCD显示屏:同样可以实现游戏画面的显示,但是可以显示更丰富的内容,如文字、动画等。

2. 游戏逻辑处理游戏逻辑处理主要包括游戏规则的实现和贪吃蛇的移动控制。

在实现游戏规则时,需要判断贪吃蛇是否碰到墙壁或自己的身体,同时需要计算分数;在实现贪吃蛇的移动控制时,需要通过按键、遥控器或者手柄等方式实现上下左右的移动。

可以通过按键或者遥控器等方式设置游戏难度等级,从而实现游戏难度的调整。

4. 硬件设计硬件设计包括主控芯片的选择、显示屏的选择、按键、遥控器或手柄等外设的选择。

主控芯片可以选择51单片机,同时可以选择点阵或LCD显示屏,按键、遥控器和手柄等外设可以根据需要进行选择。

三、实现步骤1. 硬件搭建搭建硬件时需要将主控芯片、显示屏、按键、遥控器或手柄等外设连接起来,并进行电路调试。

2. 程序设计程序设计包括游戏界面的设计、游戏逻辑的实现和难度等级的设置。

其中游戏界面的设计可以根据实际需要进行调整,游戏逻辑的实现需要考虑到游戏规则和贪吃蛇的移动控制,难度等级的设置可以通过按键或遥控器等方式实现。

基于51单片机与点阵的贪食蛇游戏机开发

基于51单片机与点阵的贪食蛇游戏机开发

基于51单片机与8*8点阵的贪吃蛇游戏机开发目录一、硬件设计1、8*8LED点阵的原理说明本设计采用的点阵显示模块是ARK-SZ411288K,其原理结构图如图1所示。

ARK-SZ411288K显示模块是8*8点阵的显示模块,从图1中可以看出,8*8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一列置1电平,某一行置0电平,则相应的图1 8*8LED点阵的原理图二极管就亮。

ARK-SZ411288K可与CPU直接连接,根据引脚说明,将其各个引脚与相应的I/O 口连接。

2、LED阵列驱动电路正向点亮一颗LED,至少也得10~20毫安,若电流不够大,则LED不够亮。

而不管是8051的输入/输出口,还是TTL、CMOS的输出端,其高态输出电流都不是很高,不过1~2毫安而已,因此,很难直接高态驱动LED。

这时候就需要额外的驱动电路,本设计采用的是74HC595,用74HC595芯片驱动LED有以下特点:速度较快,功耗较小,LED的数目多少随意,既可以控制共阴极的LED显示器,也可以控制共阳极的LED显示器,可以软件控制LED的亮度,还可以在必要的时候关断显示(数据保留),以减小功耗,并可随时唤醒显示。

用它设计的电路,不仅软硬件设计简单,而且功耗低,驱动能力强,占用的I/O口线较少,是一种造价低廉,应用灵活的设计方案。

图2 74HC595管脚图74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器。

寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK),都是上升沿有效。

当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时,寄存器的数据置入锁存器。

清除端(CLR) 的低电平只对寄存器复位(QS为低电平),而对锁存器无影响。

当输出允许控制(EN)为高电平时, 并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响。

基于单片机的贪吃蛇游戏设计

基于单片机的贪吃蛇游戏设计

基于单片机的贪吃蛇游戏设计学生姓名:学生学号:院(系):电气信息工程学院年级专业:指导教师:二〇一五年五月摘要摘要在21世纪的今天,人们的生活开始变得更加丰富多彩。

在繁忙的工作之余,娱乐成为人们生活不可或缺的一份子,而游戏作为近年来逐渐兴起的一种娱乐方式,已经越来越受到人们的青睐。

在工作学习之余,通过玩游戏来放松、调节紧张的学习工作压力是不错的选择;然而大型的网络游戏玩起来比较耗费时间,且不能随时随地的玩。

那么如果这时候拥有一款简单易携带,并且能够缓解压力的小游戏将是个不错的选择,所以,我就设计了这样一款简单易携带的经典小游戏——贪吃蛇。

具体实现上,硬件系统平台采用STC89C52R单片机,搭载LCD12864显示屏,构成一个轻巧简单的游戏机系统。

软件系统采用C语言编程,Protues软件设计电路并仿真,KEIL软件进行程序的调试。

最终实现贪吃蛇游戏系统。

本次设计的贪吃蛇游戏,实现了传统意义上的贪吃蛇游戏的特点:蛇吃掉豆子后,得分增加并且蛇身变长;分数到达一定数目进行升级以后,蛇运动速度加快。

而玩家只需利用方向按钮“上↑、下↓、左←、右→”来改变蛇的运行方向,就能达到娱乐的目的,操作非常简单。

关键词:贪吃蛇游戏,STC89C52R单片机,LCD12864,C语言ABSTRACTIn the 21st century today, people's life become more colorful, In the outside of busy work, entertainment become an integral part of people's life, And the game as emerging in recent years, a kind of entertainment, already more and more get the popular of people, In the outside of work and study, through the play games to relax, adjust the pressure of learning is a good choice; However large network game play more time-consuming,And can't play anywhere, anytime. So if this time has a simple is easy to carry, and can ease the pressure of small game will be a good choice. So, I would design such a simple and easy to carry small classic game –the snake game.On the concrete implementation, with STC89C52RCSingle chip microcomputer system platform, with a LCD display, constitute a lightweight simple game system. Software use C language programming, use Protues software Circuit design and simulation, KEIL Software program debugging, Finally realizes the snake game system.The design of the snake game, Achieved in the traditional sense of the snake game features: after the snake to eat beans, scores and snake-body variable length; Score to reach a certain number after the upgrade, the snake's movement speed. Players need to use the direction key "↑,up, down, left, right , to change the running direction of snake, and can achieve the purpose of entertainment ,the operation is very simple.Key words:Greedy Snake Game, STC89C52RCSingle chip microcomputer, LCD12864,C language目录摘要 (I)ABSTRACT (2)1绪论 (6)1.1本课题研究的背景及意义 (6)1.2 国内外研究现状、水平 (6)1.3 本课题的发展趋势 (1)1.4本课题的研究内容和达到的要求 (1)2 方案分析与选择 (2)2.1 系统方案设计 (2)2.2显示器模块设计方案 (2)2.3 按键输入模块设计方案 (3)2.4 本课题的技术指标 (3)2.5 本课题的创新 (3)3 系统硬件设计 (4)3.1单片机的选择与其性能分析 (4)3.1.1 单片机概述 (4)3.1.2 单片机STC89C52RC的介绍 (4)3.1.3 单片机最小系统的介绍 (5)3.2 LCD12864简介 (6)3.2.1 LCD12864概述 (6)3.2.2 LCD128*64的基本特性 (6)3.2.3 模块接口说明 (7)3.2.4 指令说明 (9)3.3 键盘电路的设计 (11)3.4 蜂鸣器电路的设计 (11)3.4.1蜂鸣器简介 (11)3.4.2 蜂鸣器的设计 (12)4 软件系统设计 (13)4.1 游戏设计思想 (13)4.2 主要模块介绍及其功能 (14)4.3 编程语言介绍 (15)4.3.1 C语言简介 (15)4.3.2 C源程序结构特点 (15)4.4 程序设计流程图 (16)5 仿真设计与结果分析 (17)5.1 仿真软件的简介 (17)5.1.1 仿真软件Proteus的简介 (17)5.1.2 keiluVision4编程开发工具的简介 (17)5.2本系统的Proteus仿真设计 (18)5.2.1仿真设计的预期目标 (18)6 PCB设计 (19)6.1 PCB设计软件 (19)6.1.1 PCB原理图设计 (19)6.1.2 PCB板制作方法 (19)6.2 PCB的EMC设计 (1)6.2.1 元器件布局的基本原则 (1)6.2.2 布线设计原则 (1)6.3 印制电路板 (1)6.3.1 印制电路板的结构 (1)6.3.2 印制电路板的种类 (1)6.3.3 印制电路板制作流程 (1)7 系统调试 (2)7.1 硬件调试 (2)7.2 软件调试 (3)7.3 硬件软件联合调试 (3)7.4 调试结果 (3)结论 (7)参考文献 (8)附录一:系统PCB原理图 (9)附录二:系统仿真图 (10)附录三:PCB图 (11)附录四:程序主函数 (1)附录五:原器件清单 (6)致谢 ............................................................................................. 错误!未定义书签。

基于单片机的贪食蛇设计

基于单片机的贪食蛇设计

基于单片机的贪食蛇设计一、引言贪食蛇是一款经典的电子游戏,也是很多人童年的回忆。

在这个项目中,我们将使用单片机设计并实现一个基于单片机的贪食蛇游戏。

通过这个项目,我们可以学习并理解单片机的使用、游戏的逻辑设计和开发过程。

二、设计原理1.单片机选择和引脚配置我们选择使用ATmega16单片机作为主控芯片。

ATmega16是一款8位的RISC微控制器,具有很强的处理能力和丰富的外设资源。

我们将连接LCD显示屏、按键、LED等外设,以实现游戏的显示和交互功能。

2.游戏逻辑设计贪食蛇游戏的逻辑设计包括蛇的移动、食物的生成和判断是否吃到食物等功能。

(1)蛇的移动蛇的移动是游戏的核心逻辑之一、在每一个游戏周期内,蛇的位置将根据用户的输入进行更新。

当蛇吃到食物后,蛇将会增加身体长度,移动的方式则是在蛇头的位置插入新的节点,同时删除蛇尾的节点。

(2)食物的生成食物的生成是贪食蛇游戏的另一个重要功能。

食物的生成应该遵循一定的规则,例如不能生成在蛇身上。

当蛇吃到食物后,游戏分数将增加,并且在一个合适的位置生成新的食物,继续进行游戏。

(3)判断是否吃到食物判断蛇是否吃到食物是游戏进行的关键判断。

当蛇的头部位置与食物位置重合时,就表示蛇吃到了食物,游戏的分数将增加。

3.外设的接口设计我们将使用LCD显示屏、按键和LED等外设与单片机进行交互。

(1)LCD显示屏我们将使用LCD显示屏来显示游戏的界面和分数。

单片机通过并行或者串行接口与LCD进行通讯,将游戏界面和分数进行显示。

(2)按键按键用于控制蛇的移动方向,例如上、下、左、右。

通过检测按键的状态,单片机可以识别用户的输入,并根据输入来更新蛇的位置。

(3)LEDLED用于显示游戏的状态,例如游戏是否开始、是否结束等。

通过控制LED的亮灭,我们可以通过外设来反馈游戏的状态。

三、系统实现1.硬件连接将ATmega16单片机与LCD显示屏、按键和LED进行连接。

根据单片机和外设的引脚映射关系,正确地连接到单片机的对应引脚。

基于51单片机的贪吃蛇游戏设计

基于51单片机的贪吃蛇游戏设计

基于51单⽚机的贪吃蛇游戏设计本科时候做的⼀个课程作业,⾃⼰搭⼀个很简易的电路,⽐较有意思且易上⼿,故将之记录下来。

(全套的仿真及代码,演⽰视频,课程报告以及PPT展⽰上传在。

)⼀. 实验⽬的(1)通过对C51语⾔的理解,编写程序实现对贪吃蛇的有效控制;(2)通过对51单⽚机硬件的学习,学会运⽤⾯包板,独⽴按键、点阵屏等,完成对完整电路的搭建过程;(3)通过对Proteus仿真软件的学习,实现基于STC89C52单⽚机的8*8点阵贪吃蛇的硬件电路仿真。

⼆. 实验介绍贪吃蛇是⼀款经典⼩游戏,其游戏的规则是:玩家通过四个⽅向键来控制蛇的移动,控制其在地图上吃⾖⼦。

吃掉⾖⼦后蛇⾝相应加长,蛇⾝速度加快。

蛇运动过程中撞到墙壁或蛇⾝,则⽴即结束本轮游戏。

三. 实现功能(1)制作⼀个8*8点阵的贪吃蛇游戏;(2)通过LED点阵屏为载体显⽰数据;(3)外接4个独⽴按键作为输⼊端,分别控制蛇的移动⽅向(上、下、左、右);(4)蛇头与墙壁或蛇⾝相撞,随即结束游戏并复位。

四. ⽅案设计在该系统中,硬件部分包括STC89C52单⽚机,8*8点阵屏,4个按键;软件部分是在keil环境下⽤C51语⾔编写,设置蛇的初始段数为2点,并设置有障碍墙壁,游戏结束后⾃动复位。

(1)贪吃蛇的移动在贪吃蛇的移动过程中,每次需要将蛇头要到的下⼀个LED灯点亮,对应蛇尾的LED灯熄灭。

在程序中即是先把蛇尾位置的值传给蛇头的下⼀个位置,然后改变蛇尾的值即可。

蛇头下⼀个位置的确定由蛇头和偏移量来确定,每次通过操作四个独⽴按键来控制蛇步进的偏移量。

因⽽只要将蛇头的位置加上其偏移量的值,即可得到新的蛇头位置。

(2)⾷物的出现在市场上所流⾏的贪吃蛇游戏中,⾷物的出现是⼀种随机⾏为,这在程序中需要做⼀个随机数来⽀撑该过程。

我们组在实验过程中也尝试了该过程,最终选择让⾷物出现在蛇尾的后⼀步,来执⾏整个程序。

与此同时,⾷物出现的位置不能与蛇的位置重合,也不能超出墙外,否则需要重置⾷物。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于51单片机与8*8点阵的贪吃蛇游戏机开发
物理与电子信息工程学院 07电信本一蘧孝泼
摘要:设计并实现了一种基于51单片机的贪吃蛇游戏,主要讨论了游戏机的硬件电路与软件编程的设计方案,并介绍了如何使用Proteus进行软件仿真。

通过软件测试,可实现贪吃蛇游戏的基本功能。

关键词:单片机;贪吃蛇;LED点阵
Abstract:Designed and implemented a microcomputer-based Snake games, mainly discussed the console hardware design and software programming, and describes how to use the Proteus to software emulation. Software testing, can be realized Snake game's basic functions.
Key words:Single chip microcomputer;Snake;LED lattice
引言
贪吃蛇,是一种益智小游戏。

其游戏背景:蛇引诱夏娃吃了苹果之后,就被贬为毒虫,阴险的象征,而蛇吃东西是整只动物吞进去的,大概在文艺复兴的时候就有人发明了这么一种游戏,是现在贪吃蛇的前身,后来慢慢地发展成了现有的贪吃蛇游戏。

其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的食物,越吃越长,到了一定的长度之后,就可以进入下一关,越到后面的关卡蛇移动的速度越快,只要蛇头碰到四周的墙壁或者碰到自己的身体,小蛇就立即毙命并结束游戏。

本文根据贪吃蛇的游戏规则,以ATMEL AT89S52单片机为控制核心,使用8*8点阵为显示模块,设计并实现贪吃蛇最基本的功能。

一、硬件设计
1、8*8LED点阵的原理说明
本设计采用的点阵显示模块是ARK-SZ411288K,其原理
结构图如图1所示。

ARK-SZ411288K显示模块是8*8点阵的
显示模块,从图1中可以看出,8*8点阵共需要64个发光二
极管组成,且每个发光二极管是放置在行线和列线的交叉点
上,当对应的某一列置1电平,某一行置0电平,则相应的图18*8LED点阵的原理图
二极管就亮。

ARK-SZ411288K可与CPU直接连接,根据引脚说明,将其各个引脚与相应的I/O 口连接。

2、LED阵列驱动电路
正向点亮一颗LED,至少也得10~20毫安,若电流不够大,则LED不够亮。

而不管是8051的输入/输出口,还是TTL、CMOS的输出端,其高态输出电流都不是很高,不过1~2毫安而已,因此,很难直接高态驱动LED。

这时候就需要额外的驱动电路,本设计采用的是74HC595,用74HC595芯片驱动LED有以下特点:速度较快,功耗较小,LED的数目多少随意,既可以控制共阴极的LED显示器,也可以控制共阳极的LED显示器,可以软件控制LED的亮度,还可以在必要的时候关断显示 (数据保留),以减小功耗,并可随时唤醒显示。

用它设计的电路,不仅软硬件设计简单,而且功耗低,驱动能力强,占用的I/O口线较少,是一种造价低廉,应用灵活的设计方案。

图274HC595管脚图
74HC595内含8位串入、串/并出移位寄存器和8位三态输出锁存器。

寄存器和锁存器分别有各自的时钟输入(SCLK和SLCK),都是上升沿有效。

当SCLK从低到高电平跳变时,串行输入数据(SDA)移入寄存器;当SLCK从低到高电平跳变时,寄存器的数据置入锁存器。

清除端(CLR)的低电平只对寄存器复位(QS为低电平),而对锁存器无影响。

当输出允许控制(EN)为高电平时, 并行输出(Q0~Q7)为高阻态,而串行输出(QS)不受影响。

74HC595最多需要5根控制线,即SDA、SCLK、SLCK、CLR和EN。

其中CLR可以直接接到高电平,用软件来实现寄存器清零;如果不需要软件改变亮度,EN可以直接接到低电平,而用硬件来改变亮度。

把其余三根线和单片机的I/O口相接,即可实现对LED的控制。

数据SDA口送入74HC595,在每个SCLK的上升沿,SDA口上的数据移入寄存器,在SCLK
的第9个上升沿,数据开始从QS移出。

如果把第一个74HC595的QS和第二个74HC595的SDA 相接,数据即移入第二个74HC595中,照此一个一个接下去,可接任意多个。

数据全部送完后,给SLCK一个上升沿,寄存器中的数据即置入锁存器。

此时如果EN为低电平,数据即从并口Q0~Q7输出,把Q0~Q7与LED的8段相接,LED就可以实现显示了。

要想软件改变LED的亮度,只需改变EN的占空比就行了[1]。

二、软件设计
1、主程序工作流程
主程序工作流程如图3所示,系统上电后首先对LED进行初始化,接着对定时器初始化,并启动定时器,接着执行程序主体逻辑,程序主体逻辑执行一遍后检查是否有中断发生。

中断源有两个,一个是驱动贪吃蛇自动前行的定时中断,另一个是用户控制贪吃蛇移动方向的键盘中断,任意中断的到来都将改变贪吃蛇的当前状态。

若当前没有中断发生,主程序继续判断蛇头是否碰壁或头尾相撞,若是,结束游戏,否则继续执行程序主体循环。

图3主程序工作流程
2、LED点阵初始化
对点阵初始化,先把点阵所有的信息清空,让其不显示任何信息,再在指定的位置显示蛇所处的最初位置和第一个果实的位置。

初始化程序如下:
void Init()
{
for (i = 3; i < SNAKE + 1; i++) //SNAKE是蛇的最大长度
x[i] = 100;
for (i = 3; i < SNAKE + 1; i++)
y[i] = 100; //初始化
x[0] = 4; y[0] = 4; //果子
n = 3; //蛇长n=-1
x[1] = 1; y[1] = 0; //蛇头
x[2] = 0; y[2] = 0; //蛇尾1
addx = 0; addy = 0; //位移偏移
}
3、贪吃蛇的移动
当蛇没有吃到任何食物时,每次步进蛇头的将要到的下一个LED灯点亮,而蛇尾那个LED 灯会灭掉,程序设计时只要将蛇尾那点位置的值传给蛇头下一个位置的值,再改变蛇尾的值即可。

而蛇头下一个位置根据蛇头和偏移量来确定,每次上下左右按键决定了蛇步进的偏移量,只要将蛇头的位置加上偏移量的值即得到新的蛇头位置。

当蛇头碰到四周的墙壁或者碰到自己的身体,小蛇就立即毙命并结束游戏。

4、食物的随机出现
食物的出现是一种随机行为,所以必须做一个随机数,而且食物出现的位置不能与蛇的位置相同,也不能超出墙外,否则就要重置食物。

这里使用程序中的定时计数器的低八位TL0的数值,由于TL0不断变化,不同的时间点数值不同,我这里使用的是C++语言里的stdlib.h文件库,使用里面的随机函数srand(),先利用srand(TL0)获得TL0的数值,再利用两次rand()%8分别得到食物出现的横纵坐标的位置。

三、调试及仿真
程序软件编译器使用uVision3。

在用uVision3编写单片机程序时,因uVision3往往只能修改语法上的错误,对于算法上的问题不好检查,而直接下到单片机里又受电路板的限制而不方便调试,因此这里使用Proteus进行电路仿真。

该软件具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真
的功能,同时有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

先在Proteus上绘制硬件电路(并未画出驱动电路),电路设计完成后就可以进行仿真。

先双击单片机,把用uVision3编译生成的HEX文件指定为下载文件,点击PLAY键即可进行仿真。

当出现ANAL YSER ERRORS时,表示电路有错误,列表中说明了具体的错误,必须要先排错才可以进行仿真。

本设计仿真效果如图4所示。

图4系统测试效果图
软件调试及Proteus仿真完成后就进行硬件的安装。

本设计按照原先设计好的电路图进行总体上的布置,采用人工搭电路的方法进行硬件的安装。

安装时要考虑受热、稳固等多方面的影响使用电烙铁时要控制好焊接的时间,电烙铁停留的时间太短,焊锡不易完全熔化,形成“虚焊”,而焊接时间太长又容易损坏元器件,每一两秒内要焊好一个焊点,若没完成,宁愿等一会儿再焊一次。

其次芯片的摆置要方便连线,焊接时要先把芯片拔出,等线接好了再插上去。

在焊接时要考虑电路的抗干扰能力同时要充分考虑电源对单片机的影响。

每焊接完一个模块,要用万能表根据电路图检查有没有接错、短路等现象,确认正确后再继续下一个模块[2]。

参考文献
[1]翟震,张春玲. 用74HC595芯片驱动LED的电路设计[J]. 机床与液压,2004,NO.12:151-152
[2]刘云,罗永能. 基于51单片机的贪食蛇游戏机开发[J]. 福建电脑,2009,第七期:147-148
附件(实物成果展示):
初始位置:
食物随机出现,用右边的键盘控制蛇的方向:。

相关文档
最新文档