基于51单片机的贪食蛇游戏机开发-精品 - 图文

发布时间 : 星期三 文章基于51单片机的贪食蛇游戏机开发-精品 - 图文更新完毕开始阅读

第ChpNum章 基于51单片机的贪食蛇游戏机开发

1 本设计的特点和目的

本设计以51系列单片机STC89C52为控制核心,以点阵液晶显示模块、键盘为人机接口,实现了一个贪食蛇游戏机。通过本设计,令读者掌握利用单片机开发简单电子产品的基本技能,熟悉原理图绘制、仿真、软件设计、优化以及系统调试的基本方法,为进一步设计开发更为复杂的嵌入式模拟/数字混合系统打下一定的基础。

2产品简介

“贪食蛇”又称为“贪吃蛇”,是一种益智小游戏。其游戏规则比较简单,就是一条小蛇,不停地在屏幕上游走去吃屏幕上出现的蛋,越吃越长,只要蛇头碰到屏幕四周或者碰到自己的身子,小蛇就立即毙命并结束游戏。本作品有上下左右四个按键来控制蛇头的移动方向,另有一个复位按键控制程序的重启,游戏界面采用分辨率为128×64的液晶显示屏。

3 硬件设计

3.1 人机接口电路

本游戏机游戏界面由液晶显示模块呈现。液晶显示模块中,最主要的就是LCD液晶屏。根据LCD液晶屏显示内容的不同,液晶显示模块可以分为数显液晶模块、点阵字符液晶模块和点阵图形液晶模块3种。本设计使用点阵图形液晶模块OCM12864。OCM12864液晶显示模块是128×64点阵型液晶显示模块,可显示各种字符及图形,可与CPU直接连接,具有8位标准数据总线、6条控制线及电源线,各引脚的信号说明参见表ChpNum-1。

表ChpNum-1 OCM12864引脚说明

管脚名称 VSS VDD V0 RS

方向 - - I I

引脚说明 逻辑电源地。 逻辑电源+5V。

LCD调整电压,应用时接10K电位器可调端 数据\\指令选择:高电平:数据D0-D7将送入显示RAM;

低电平:数据D0-D7将送入指令寄存器执行。

R/W E

I I

读\\写选择: 高电平:读数据;低电平:写数据。 读写使能,高电平有效,下降沿锁定数据。

1

DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 CS1 CS2 /RET VEE LEDA LEDK

I/O I/O I/O I/O I/O I/O I/O I/O I I I O - -

数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。 数据输入输出引脚。

片选择信号,高电平时选择左半屏。 片选择信号,高电平时选择右半屏。

复位信号,低电平有效。

LCD驱动,负电压输出,对地接10K电位器

背光电源,LED+(5V)。 背光电源,LED-(0V)。

单片机与液晶显示器的连接电路如图ChpNum-1所示,片选信号CS1与CS2接P2.4和P2.3引脚,RS、R/W、E分别接引脚P2.2、P2.1、P2.0。VEE驱动负电压输出,而V0接10K电位器,对LCD亮度进行调节。51单片机的P0口为了实现准3态,采用了OC输出,也就是集电极悬空输出。这种电路结构,只有下拉能力,高电平输出没有电流。在高电平时表现为高阻态,加上拉电阻,就会失去高阻态,变成 1、0 两态。因此在P0口与OCM12864的I/O口之间接上10K的排阻。

用户通过四个按键控制蛇头的上下左右移动, 接法如图ChpNum-1所示。四个按键尾端均接地,任意按键的按下均会使与门输出由高电平变成低电平,从而触发中断。此时,中断服务程序通过检测P2.6口与P2.7口的电平可以识别是哪个按键被按下。若P2.6和P2.7同时为低电平,表明是UP键按下;若同时为高电平,表明DOWN键按下;若P2.6为高,P2.7为低则表明是LEFT键被按下;若P2.6为低,P2.7为高则表明RIGHT键被按下。

游戏音效由蜂鸣器实现,接法如图ChpNum-1所示。由于单片机输出脚的驱动电流有限,我们用单片机P2.5脚输出信号控制PNP三极管S8550的通断,当P2.5输出高电平时,三极管截止,当P2.5输出低电平时,三极管导通。因此,通过在P2.5脚输出不同频率的方波信号,可使得蜂鸣器发出不同频率的声音。

2

图ChpNum-1 人机接口电路

3.2单片机与PC机通信电路

本设计采用的STC89C52单片机具备ISP下载功能,无需用到编程器,编译好的单片机程序可以通过串口下载到单片机。单片机与PC机串行通信采用RS-232C标准。因为RS-232C接口信号不是标准的TTL电平,单片机与PC机通过RS-232C串口进行通信时,必须进行电平转换。虽然可以用分立元件组成RS-232C与TTL电平之间的转换电路,但是现在更多的是使用集成电路来完成,这里使用MAX232集成电路。如图ChpNum-2所示,MAX232需要外接4只0.1uF电容,或者1uF的电解电容。之所以需要电容,是因为RS-232电平是工作在大约-9V~+9V之间,需要电容将5V电压转换成RS-232电平需要的+10V和-10V。单片机侧安装了DB9物理连接器,可直接通过串口线连接到PC的串口。

3

图ChpNum-2 RS-232信号适配电路

3.3 其他部分电路说明

电源电路、复位和时钟电路比较简单,具体连接请参见电路原理总图。

供电部分采用7805将输入9~12V电压转换为5V输出,输入输出端接220uF电解电容,使整流后的脉动直流电压变成相对比较稳定的直流电压。由于大容量的电解电容一般具有一定的电感,对高频及脉冲干扰信号不能有效地滤除,所以两端并联一只容量为0.1uF的电容,以滤除高频及脉冲干扰。

复位电路含有上电复位和按键复位功能,按键复位用于游戏结束后游戏的重新启动。系统插电瞬间电源通过10K电阻给10uF电容充电电平,充电电流在10K电阻上产生压降,于是电阻上端产生一个维持几百毫秒的高电平输入到RESET对单片机进行复位,电容充电满后经过电阻电流为0,复位失效。类似地,当开关按下时,强制产生一个高电平对单片机进行复位。

时钟电路使用12MHz的晶振,晶振的两引脚处接入两个22pF的瓷片电容来削减谐波对电路稳定性的影响。

4 软件设计

4.1系统程序流程

如图ChpNum-3所示,贪食蛇软件主要分成三个部分:主程序、外部中断服务程序、定时中断服务程序。主程序的作用是一些初始化工作及蛇体动作执行、食物的随机产生、

4

联系合同范文客服:xxxxx#qq.com(#替换为@)