《基于8052单片机和8X16点阵屏俄罗斯方块游戏板》开发介绍.ppt_第1页
《基于8052单片机和8X16点阵屏俄罗斯方块游戏板》开发介绍.ppt_第2页
《基于8052单片机和8X16点阵屏俄罗斯方块游戏板》开发介绍.ppt_第3页
《基于8052单片机和8X16点阵屏俄罗斯方块游戏板》开发介绍.ppt_第4页
《基于8052单片机和8X16点阵屏俄罗斯方块游戏板》开发介绍.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于8052816点阵屏,电子1003班,俄罗斯方块游戏板,Step1.硬件构成介绍游戏板所用主要器件及其要实现的功能1.1核心处理器-STC80C52RC1.28x8单色点阵-LG12088BH-W1.34-to-16LineDecoder-MM74HC1541.4四位八段共阳数码管-LG5641BH1.5同向锁存器-SN74HC573AN1.6开关按键1.7焊接实物图:Step2.仿真软件辅助设计Proteus7.10仿真模块展示Step3.C程序模块简要说明,开发概览,Step1.硬件构成及功能简介,1.核心处理器STC80C52RC8051-basedFulllyStatic24MHzCMOScontrollerwith32I/OLines3Timers/Counters8Interrupts/2PriorityLevelsUARTThree-LevelProgramMemoryLock8KBytesFlashMemory128BytesOn-chipRAM功能:整个游戏板的控制中心,1.核心处理器最小系统电路12MHz晶振RC复位电路5V直流电源,Step1.硬件构成及功能简介,2.8x8单色点阵LG12088BH-W主要参数驱动电流:205mA颜色:红色规格:88黑底数量:2信号源:由译码器提供16行扫描信号,由锁存器提供8位显示信号和驱动电流。功能:提供816个像素点的显示屏,为游戏提供必要的图形显示模块。,Step1.硬件构成及功能简介,3.4-to-16LineDecoderMM74HC154关键参数真值表引脚图,Step1.硬件构成及功能简介,3.4-to-16LineDecoder信号源:P2低四位(P1.0至P1.3),使能E1接P2.7,E2接地功能:为816点阵提供16行低电平扫描信号。,Step1.硬件构成及功能简介,4.四位八段共阳数码管LG5641BH主要参数:驱动电流:10mA左右信号源:用两块锁存器分别控制位选信号和段选信号。功能:为游戏板提供必要的分数显示模块。,Step1.硬件构成及功能简介,5.同向锁存器SN74HC573AN关键参数真值表:引脚图:驱动性:可驱动数码管和点阵正常点亮数量:3块,Step1.硬件构成及功能简介,5.同向锁存器.作为点阵显示信号输送和驱动的锁存器(一块)信号源:单片机P3I/O功能:给点阵送显示信号并提供驱动电流。(LE接地),Step1.硬件构成及功能简介,5.同向锁存器.作为P0口拓展和数码管位选、段选信号输送以及驱动电流提供锁存器(两块)。信号源:单片机P0口(已上拉10K电阻)。两个锁存控制端接在单片机P2口。功能:为数码管送入段选信号和位选信号,提供电流驱动,Step1.硬件构成及功能简介,6.开关按键一个自锁开关:用作整个游戏板的开关(带发光二极管)。六个按键:一个用作复位键,其余五个用作人为控制输入。信号源:人为击按。功能:Start/Suspend键:游戏开始和暂停控制Up键:控制形状逆时针旋转Left和Right键:控制形状左右移动一格Down键:控制形状快速下降,Step1.硬件构成及功能简介,焊接实物图:,Step1.硬件构成及功能简介,点阵和单片机正面,点阵和单片机反面,焊接实物图:,Step1.硬件构成及功能简介,数码管正面,数码管反面,焊接实物图:,Step1.硬件构成及功能简介,程序运行时状态,Proteus7.10仿真模块展示单片机最小系统模块按键模块,Step2.仿真软件辅助设计,Proteus7.10仿真模块展示点阵显示模块,Step2.仿真软件辅助设计,Proteus7.10仿真模块展示四位数字显示模块,Step2.仿真软件辅助设计,Proteus7.10仿真模块展示仿真运行时Proteus设计文件视频文件,Step2.仿真软件辅助设计,视频文件资料简单的操作示意.avi,Proteus设计文件俄罗斯方块-高度仿真版.DSN,详细内容见附件,Step3.C程序模块简要说明,附件1:Keil工程文件夹俄罗斯方块keil文件,附件2:C51程序文件elsfk.c,附件3:C51程序文件word版俄罗斯方块C程序.doc,/*名称:基于8052单片机和8X16点阵屏俄罗斯方块游戏板时间:2012年05月23日17时单位:武汉理工大学信息学院电子1003班作者:颜百千*/#include#include#include#defineucharunsignedcharsbitslock=P27;/译码器输出使能端sbitupkey=P23;/“旋转图形/向上”按键sbitleftkey=P21;/“左移/向左”按键sbitrightkey=P22;/“右移/向右”按键sbitdownkey=P20;/“快速下移/向下”按键sbitduan=P25;/数码管段选信号所用锁存器的锁存允许端sbitwei=P26;/数码管位选信号所用锁存器的锁存允许端sbitstartsuspendkey=P24;/“开始/暂停/继续”多功能切换按键,Step3.C程序模块简要说明,/*图形编码机制介绍*1.由于俄罗斯方块图形的宽度和高度最多只有四位,所以要以4X4为基本单元。2.硬件采用16行扫描、8位送显示信号3.各个图形的宽度不一致,所以要人为给图形设定居中位置。若图形宽度为偶数可直接将其居中,若为奇数则靠左居中。4.由于图形需要旋转,所以由基本的图形会衍生出另外3种图形。5.因此每个图形应该给定4个8位的二进制码,并放入一个二维数组里。6.经典俄罗斯方块游戏里有19种不同形状的方块,包括旋转得到的。7.数组的第一个下标为该图形的编号*/ucharcodeallshape194=0 x00,0 x00,0 x18,0 x18,0 x10,0 x10,0 x10,0 x10,0 x00,0 x00,0 x00,0 x3c,0 x00,0 x08,0 x18,0 x10,0 x00,0 x00,0 x30,0 x18,0 x00,0 x10,0 x18,0 x08,0 x00,0 x00,0 x18,0 x30,0 x00,0 x08,0 x08,0 x18,0 x00,0 x00,0 x38,0 x08,0 x00,0 x18,0 x10,0 x10,0 x00,0 x00,0 x20,0 x38,0 x00,0 x10,0 x10,0 x18,0 x00,0 x00,0 x08,0 x38,0 x00,0 x18,0 x08,0 x08,0 x00,0 x00,0 x38,0 x20,0 x00,0 x00,0 x10,0 x38,0 x00,0 x08,0 x18,0 x08,0 x00,0 x00,0 x38,0 x10,0 x00,0 x10,0 x18,0 x10;/*/,Step3.C程序模块简要说明,/数码管数形显示编码ucharcodenumber10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;/位选信号编码,方便写循环使用ucharcodeweima4=0 x01,0 x02,0 x04,0 x08;/各个图形的宽度属性,用于判断左移和右移的步格数上限charshapewidth19=2,1,4,2,3,2,3,2,3,2,3,2,3,2,3,3,2,3,2;/旋转图形时,用于改变图形的编号以实现图形的切换charshaperotate19=0,2,1,4,3,6,5,8,9,10,7,12,13,14,11,16,17,18,15;/用于存储方块降落后固定显示的图形信息ucharstaticdata20=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 xff;/规定一次性消掉的行数的分数奖励机制ucharrate5=0,1,3,6,10;/*/,Step3.C程序模块简要说明,/*全局变量声明*/chary;/方块位置属性:底部下落的高度,y=0时:刚刚出现,y=15时:下落到屏幕最底部charshapenum;/方块形状属性:从0到18intleft;/方块位置属性:方块偏离居中位置的格数,不同的方块left值的上限不同intmark;/玩家分数变量intspeed;/方块下落速度变量intinitialspeed;/方块下落的初始速度intsystemspeed;/系统下落速度,此值会随着玩家分数的增加而减小,相应的下落速度会增大intfastspeed;/当用户按下down键时,方块下落速度为此值intk;/一个全局循环变量,“帧数”变量intstartcontrol=1;/开始画面状态指示变量,为1时说明程序进入开机欢迎界面intsuspendcontrol=0;/游戏暂停与游戏继续画面状态指示变量,为1说明处在暂停界面。intrandnum;/随机数变量,用于产生随机方块/*/,Step3.C程序模块简要说明,/*函数声明*/voiddelayms(int);/粗略延时函数ucharmove(uchar,int);/对二进制码实行移位,可为负值voidshapedisplay();/对点阵扫描一场,对数码管扫描一场,用于显示图形和数字voidkeyscan();/对所有键盘扫描一次,并执行相应运算和操作ucharcheck(char,int);/用于检查方块将要下落的位置或是将要旋转的位置是否有障碍ucharshapedisappear();/用于消行,返回一次性消掉的行数numberdisplay(intamark);/用于四位数字显示voidstartimage();/游戏等待开始画面函数voidoverimage();/游戏结束后的画面voiddataset();/对数据初始化,为游戏重新开始做准备/*/,Step3.C程序模块简要说明,/*主函数*/voidmain()charj;startimage();/进入开机,函数内有键盘扫描,只有按下“开始”键会退出函数,否则不退出dataset();/对数据进行初始化while(1)/进入大循环k=speed;/确定显示的帧数while(k-)keyscan();/扫描键盘,放入高速循环语句中提高键盘的响应速度,并检测此时用户是否有相应请求shapedisplay();/显示图形和数字y+;/图形下落一格,Step3.C程序模块简要说明,if(check(shapenum,left)/在没有显示之前判断将要下落的位置是否有障碍物,如果有障碍就进入到if语句中if(y=1)/如果y=1;说明方块刚出现就遇到障碍物了,这时游戏需结束overimage();/进入游戏结束画面,此函数内没有键盘扫描,运行一段时间会自动退出startimage();/又进入开机画面dataset();/对数据进行初始化,将前一用户数据清零else/遇到障碍物,但还不至于图形不能出现for(j=0;j0;i-)for(j=110;j0;j-);/*/ucharmove(ucharaa,intanum)/移位函数if(anum=0)aa=(-anum);returnaa;/*/,Step3.C程序模块简要说明,voidshapedisplay()/显示函数ucharj;for(j=y3?3-y:0;j4;j+)/显示动态方块slock=1;P1=j+y-3;P3=move(allshapeshapenumj,left);slock=0;delayms(1);P3=0 x00;for(j=0;j16;j+)/显示静态方块slock=1;P1=j;P3=staticdataj+3;slock=0;delayms(1);P3=0 x00;numberdisplay(mark);/分数显示/*/,Step3.C程序模块简要说明,numberdisplay(intamark)/大数拆分并显示,带去无效零功能chari;ucharnum4;num0=amark/1000%10;num1=amark/100%10;num2=amark/10%10;num3=amark%10;if(amark10)/显示一位数for(i=3;i4;i+)P0=0 xff;duan=1;P0=numbernumi;duan=0;P0=0 x00;wei=1;P0=weimai;wei=0;delayms(1);wei=1;P0=0 x00;wei=0;,Step3.C程序模块简要说明,elseif(amark100)/显示两位数for(i=2;i4;i+)P0=0 xff;duan=1;P0=numbernumi;duan=0;P0=0 x00;wei=1;P0=weimai;wei=0;delayms(1);wei=1;P0=0 x00;wei=0;,Step3.C程序模块简要说明,elseif(amark1000)/显示三位数for(i=1;i4;i+)P0=0 xff;duan=1;P0=numbernumi;duan=0;P0=0 x00;wei=1;P0=weimai;wei=0;delayms(1);wei=1;P0=0 x00;wei=0;,Step3.C程序模块简要说明,else/显示四位数for(i=0;i0;i-)for(j=0;j16;j+=2)slock=1;P1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论