单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx

上传人:b****3 文档编号:27044416 上传时间:2023-06-26 格式:DOCX 页数:114 大小:491.69KB
下载 相关 举报
单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx_第1页
第1页 / 共114页
单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx_第2页
第2页 / 共114页
单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx_第3页
第3页 / 共114页
单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx_第4页
第4页 / 共114页
单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx_第5页
第5页 / 共114页
点击查看更多>>
下载资源
资源描述

单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx

《单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx》由会员分享,可在线阅读,更多相关《单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx(114页珍藏版)》请在冰豆网上搜索。

单片机俄罗斯方块游戏方案大全方案思路大全程序大全.docx

单片机俄罗斯方块游戏方案大全方案思路大全程序大全

游戏机的制作:

俄罗斯方块

摘要………………………………………………………………………1

1方案论证……………………………………………………………………….

1.1开发意义…………………………………………………………………

1.2功能介绍………………………………………………………………….

2设计思路…………………………………………………………………………

.

3硬件电路………………………………………………………………………

2.174HC573驱动芯片电路…………………………………………………….

2.28*8LED点阵的接口电路…………………………………………………..

2.3单片机最小系统电路………………………………………………………..

2.4整体电路图………………………………………………………………….

4系统调试………………………………………………………………………..

3.1硬件调试………………………………………………………………………

3.2软件调试……………………………………………………………………..

5作品展示…………………………………………………………………………

.

6元器件清单……………………………………………………………………..

7结束语……………………………………………………………………………..

致谢……………………………………………………………………………

参考文献………………………………………………………………………….

游戏机的制作:

俄罗斯方块

摘要:

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,应用到各个领域。

在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。

我做的题目是一个用51单片机制作的游戏机,大致分位软件和硬件2大部分,硬件主要通过5按键、1个8*8LED点阵屏、一个单片机系统,实现积木的左、右、下、变化、复位五个模式,完全达到俄罗斯方块所实现的功能。

次项目用专门的PROTUES仿真,而采用KEIL软件程序进行程序调试

关键词:

AT89S52单片机芯片;74HC573驱动芯片;GYXM-1558ASR-LED点阵屏

1方案论证

1.1开发意义:

充分理解点阵显示的原理,已经动态扫描的应用,对生活中的产品有了个全新的认识,不但懂得理论与实际的差距,也时对自己思维的一次强有力的挑战,做出这个东西让我收获良多。

1.2功能介绍:

开始让他显示个积木,在按键没实现控制的时候,每隔1S下移一次,有触底处理功能,当碰到底的时候图形不能下移,判断能否消行,能消行则消行,不能再判断是否到顶,到底则从新开始,没到底产生下个随即数,中间有5个按键控制,一个实现图形左移,一个实现图形右移,一个实现下移,一个实现旋转,一个复位。

2设计思路

图形的上下移动:

根据点阵理论可通过图形数据的左右移动和地址变化来实现。

图形的变化:

可通过地址变化来得到。

即把需要变化的数据送到一固定地址,通过地址变化再送回显示的地址里面。

图形的碰边处理:

可通过各个边上的数据判断是否到边来实现。

与原有图形相遇:

可通过与原有图形数据进行比较处理来实现。

图形的旋转:

在固定地址里面实现旋转比较容易,但是在行进中的图形旋转就比较费脑筋,我是用一个地址计数下移的次数,再用一个地址计数左移右移的次数。

再根据这些次数确定图形的地址,再把这些地址送到图形变化的一个固定的地址中,变化后再送回到显示的地址中去显示。

图形的碰边处理:

如果不对图形进行边框处理,图形就会一直移动,看不到我们想要的效果。

我是用把边框数据与图形数据进行位运算。

再判断这些数据就可以得到图形是否到边。

3硬件电路

2.174HC573驱动芯片电路

此芯片时个锁存器,也可以做驱动芯片驱动LED点阵屏幕,这里面的电源和地系统附加了但是实际中的加上去,不然芯片不能工作。

2.28*8LED点阵的接口电路

上面的是仿真的图上端接数据下端开片选但是实际中引脚很不规则,所有的花时间去测

用一节干电池,或者用指针万用表打到电阻10K档。

2.3单片机最小系统电路

2.4整体电路图以及仿真效果

但是里面的电源、地、晶振、复位、EA等在仿真中系统自动加的要是在实际生活中的加进去。

4系统调试

3.1硬件调试

第一检查单片机的最小系统是否正常,包括检查晶振、单片机2端电压、复位电路已经EA

第二看驱动芯片是否工作正常、接法是否正确,再检查LED点阵是否接的正确,可以用一节干电池测,也可以用指针万用表打到电阻10K档位测。

3.2软件调试

流程图

程序代码

=========================================================

俄罗斯方块,采用移片选的方法.

编译时间:

09年1月15

编译者:

谭华

实现功能:

俄罗斯方块的旋转,左移,右移

消行碰边触底产生随即数等基本实现右移的基本功能

==============初始化自定义========================================

pianxuanequp2

shuchuequp1

bt0equ20h.0

bt1equ20h.1

bt2equ20h.2

bt3equ20h.3

bt4equ20h.4

bt5equ20h.5

bt6equ20h.6

bt8equ21h.0

bt9equ21h.1

bt10equ21h.2

bt11equ21h.3

============================================

org0000h

ajmpstart

org0bh

ljmpintt0

org30h

=============主程序初始化================================

start:

movsp,#60h

movtmod,#21h

movth0,#0b1h

movtl0,#0e0h

movth1,#25

movtl1,#25

movr1,#00

callchushihua

callchuzhi

setbea

setbet0

setbtr0

setbtr1

clrbt0

clrbt1

clrbt2

clrbt3

clrbt4

clrbt5

clrbt8

clrbt9

clrbt10

clrbt11

setbbt6

mov35h,#0feh

movr2,#00

movr4,#00

=====================================================

主程序

======================================================

main:

jnbbt0,main

clrbt0

callsaomiao。

扫描按键

callxianshi0。

调用下移显示画面子程序

callxianshi。

调用触边后静态图形显示的子程序

jbbt10,loop。

判断是否触顶,=1,游戏结束,跳到满屏显示

callchudi。

调用触底子程序

callxiaohang。

调用消行判断子程序

callyanshi_40ms。

调用延时40ms消抖子程序,40ms到,BT5置1

jnbbt5,xia0

clrbt5

callpanduan。

调用按键判断处理子程序

xia0:

jnbbt9,xia。

图形快速下落标志位,=1快速下落

clrbt9

callxialuo。

调用图形下落子程序

ajmpmain

xia:

callyanshi_1s。

延时1s子程序.1s到,BT1=1

jnbbt1,main

clrbt1

callxialuo

ajmpmain

loop:

callyanshi_500ms。

调用延时500ms子程序,500ms到bt11=1

jnbbt11,main

clrbt11

callmanping。

调用满屏全亮子程序

ajmpmain

=====================================================

按键扫描

=====================================================

saomiao:

jbp3.2,qq0

setbbt2

ajmpqq

qq0:

jbp3.1,qq1

setbbt3

ajmpqq

qq1:

jbp3.0,qq2

setbbt4

ajmpqq

qq2:

jbp3.3,qq4

setbbt8

ajmpqq

qq4:

setbbt6

clrbt2

clrbt3

clrbt4

clrbt8

qq:

ret

=====================================================

图形下移子程序

=====================================================

xialuo:

mova,35h

rla

mov35h,a

ret

============================================

判断子程序

=====================================================

panduan:

jnbbt2,ww0

clrbt2

jnbbt6,ww0

clrbt6

callyouyi

ajmpww

ww0:

jnbbt3,ww1

clrbt3

jnbbt6,ww1

clrbt6

callzuoyi

ajmpww

ww1:

jnbbt4,ww2

clrbt4

jnbbt6,ww2

clrbt6

callzhuan

ajmpww

ww2:

jnbbt8,ww

clrbt8

jnbbt6,ww

clrbt6

callkuaixia

ww:

ret

============================================================

快速下落子程序

=============================================================

kuaixia:

setbbt9

ret

============================================================

满屏子程序

============================================================

manping:

mov41h,#0ffh

mov42h,#0ffh

mov43h,#0ffh

mov44h,#0ffh

mov45h,#0ffh

mov46h,#0ffh

mov47h,#0ffh

mov48h,#0ffh

ret

============================================================

清屏子程序

============================================================

qingping:

mov41h,#00h

mov42h,#00h

mov43h,#00h

mov44h,#00h

mov45h,#00h

mov46h,#00h

mov47h,#00h

mov48h,#00h

ret

============================================

下移显示

=====================================================

xianshi0:

mova,35h

movp1,31h

movp2,a

calldelay

rla

movp1,#00

movp1,32h

movp2,a

calldelay

rla

movp1,#00

movp1,33h

movp2,a

calldelay

movp1,#00

ret

=====================================================

图形右移子程序

=====================================================

zuoyi:

mova,31h

jnbacc.0,dd1

ajmpdd

dd1:

mova,32h

jnbacc.0,dd2

ajmpdd

dd2:

mova,33h

jnbacc.0,dd3

ajmpdd

dd3:

mova,35h

cjnea,#0feh,sa0

callsad0

ajmpdd

sa0:

mova,35h

cjnea,#0fdh,sa1

callsad1

ajmpdd

sa1:

mova,35h

cjnea,#0fbh,sa2

callsad2

ajmpdd

sa2:

mova,35h

cjnea,#0f7h,sa3

callsad3

ajmpdd

sa3:

mova,35h

cjnea,#0efh,sa4

callsad4

ajmpdd

sa4:

mova,35h

cjnea,#0bfh,dd

callsad5

ajmpdd

dd:

ret

sad0:

mova,33h

rra

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,dd4

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,42h

cjnea,#00,dd4

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,41h

cjnea,#00,dd4

mov31h,39h

dec51h

dd4:

ret

sad1:

mova,33h

rra

mov39h,#00

mov39h,a

anla,44h

cjnea,#00,dd5

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,dd5

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,42h

cjnea,#00,dd5

mov31h,39h

dec51h

dd5:

ret

sad2:

mova,33h

rra

mov39h,#00

mov39h,a

anla,45h

cjnea,#00,dd6

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,44h

cjnea,#00,dd6

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,dd6

mov31h,39h

dec51h

dd6:

ret

sad3:

mova,33h

rra

mov39h,#00

mov39h,a

anla,46h

cjnea,#00,dd7

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,45h

cjnea,#00,dd7

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,44h

cjnea,#00,dd7

mov31h,39h

dec51h

dd7:

ret

sad4:

mova,33h

rra

mov39h,#00

mov39h,a

anla,47h

cjnea,#00,dd8

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,46h

cjnea,#00,dd8

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,45h

cjnea,#00,dd8

mov31h,39h

dec51h

dd8:

ret

sad5:

mova,33h

rra

mov39h,#00

mov39h,a

anla,48h

cjnea,#00,dd9

mov33h,39h

mova,32h

rra

mov39h,#00

mov39h,a

anla,47h

cjnea,#00,dd9

mov32h,39h

mova,31h

rra

mov39h,#00

mov39h,a

anla,46h

cjnea,#00,dd9

mov31h,39h

dec51h

dd9:

ret

===============图形左移子程序======================================

通过图形移动一位,与静止图形相与,为零则移动,否则原地不动

=====================================================

youyi:

mova,31h

jnbacc.7,cc0

ajmpcc20

cc0:

mova,32h

jnbacc.7,cc1

ajmpcc20

cc1:

mova,33h

jnbacc.7,cc

ajmpcc20

cc:

mova,35h

cjnea,#0feh,zz0

callscd0

ajmpcc20

zz0:

mova,35h

cjnea,#0fdh,zz1

callscd1

ajmpcc20

zz1:

mova,35h

cjnea,#0fbh,zz2

callscd2

ajmpcc20

zz2:

mova,35h

cjnea,#0f7h,zz3

callscd3

ajmpcc20

zz3:

mova,35h

cjnea,#0efh,zz4

callscd4

ajmpcc20

zz4:

mova,35h

cjnea,#0bfh,cc20

callscd5

ajmpcc20

cc20:

ret

scd0:

mova,33h

rla

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,cc2

mov33h,39h

mova,32h

rla

mov39h,#00

mov39h,a

anla,42h

cjnea,#00,cc2

mov32h,39h

mova,31h

rla

mov39h,#00

mov39h,a

anla,41h

cjnea,#00,cc2

mov31h,39h

inc51h

cc2:

ret

scd1:

mova,33h

rla

mov39h,#00

mov39h,a

anla,44h

cjnea,#00,cc3

mov33h,39h

mova,32h

rla

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,cc3

mov32h,39h

mova,31h

rla

mov39h,#00

mov39h,a

anla,42h

cjnea,#00,cc3

mov31h,39h

inc51h

cc3:

ret

scd2:

mova,33h

rla

mov39h,#00

mov39h,a

anla,45h

cjnea,#00,cc4

mov33h,39h

mova,32h

rla

mov39h,#00

mov39h,a

anla,44h

cjnea,#00,cc4

mov32h,39h

mova,31h

rla

mov39h,#00

mov39h,a

anla,43h

cjnea,#00,cc4

mov31h,39h

inc51h

cc4:

ret

scd3:

mova

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1