基于单片机的简易游戏机的设计
基于单片机的简易游戏机的设计[20200410135653]
摘 要
本系统主要是基于单片机的简易游戏机设计,主要以STC89C51单片机作为控制单元,用LCDl2864做显示屏幕,同时用DSl302实时时钟芯片提供实时时钟。其中,此游戏系统可以进行俄罗斯方块游戏和贪吃蛇两个小游戏,并能通过按键对游戏进行控制。为了使游戏机更加丰富,又在此基础上增加了万年历和电子琴。只要通过选择键进行上下选择,按下确认键就能进入你喜欢的选项了。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:STC89C51单片机俄罗斯方块贪吃蛇LCD12864
目 录
1 绪 论 1
1.1 课题背景 1
1.2 课题的研究目的及意义 1
1.3发展现状及趋势 2
2 系统的总体设计方案 2
2.1总体方案设计 2
2.2设计思路及实现功能 3
2.3 主控制器的选择 3
2.4 液晶屏的选择 5
2.5 时钟芯片的选择 6
2.5.1 DS1302的结构 7
2.5.2 引脚 7
3 系统的硬件组成 7
3.1 单片机最小系统说明 7
3.1.1复位电路 8
3.1.2 晶振电路 9
3.2 供电模块 10
3.3显示模块 11
3.4 按键模块 11
3.5声音模块 12
3.6 时钟模块 13
4 软件部分设计 14
4.1 Keil介绍及编程 14
4.2 Proteus介绍及应用 14
4.3 C语言程序设计 15
4.4流程图 16
4.5游戏机中各选项介绍 20
4.5.1俄罗斯方块部分 20
4.5.2贪吃蛇部分 21
4.5.3 万年历部分 21
4.5.4 电子琴部分 21
4.6部分子程序 22
4.6.1液晶屏初始化函数 22
4.6.2液晶屏写指令和写数据函数 22
4.6.3方块生成函数 24
4.6.4移动和旋转函数 24
5系统的调试 26
5.1软件调试 26
5.2硬件调试 29
5.3调试遇到的问题及解决方案 31
总 结 32
参考文献 33
致 谢 34
附录1: 35
附录2: 36
附录3: 37
1 绪 论
1.1 课题背景
小游戏的代码还是比较多的,它要执行许多个指令才能完成一个简单的操作,要进行大量的运算才能运行游戏。所以我们所见到的游戏大多数是在电脑这类能够高速执行指令的平台上运行的。现在人们又非常需要高性能的和便携带的游戏终端,而单片机就是一个非常好的选择。虽然用单片机来来做这么简单小游戏似乎有点多余了,但这只是单片机一个的简单应用。但通过这个设计,我们可以了解到单片机功能和用途以及单片机的重要性。
1.2 课题的研究目的及意义
以51系列单片机为处理器,通过编程实现俄罗斯方块、贪吃蛇等游戏的功能,能够在万年历中准确显示时间,电子琴要能发出比较准确的声音并在屏幕上显示是那个音,并且所有的功能都可以正常使用。而整个系统都要能通过按键进行准确控制。比如在俄罗斯方块游戏中,左、右和下键分别可以控制方块左右移动及加速下降。上键则控制方块的旋转。满行后,能及时消除。在贪吃蛇中,按键功能就简单点了,四个方向键控制蛇头的方向。
这就要求我们对单片机的发展、架构、工作模式等都要有一定的了解。而其中对按键的处理,各子程序的调用等也是比较复杂的。如果能独立地完成整个设计,并且让游戏能稳定运行,会让我们对程序的理解和编程能力有一个很大的提高,对单片机也有一个更深刻的认识。特别是后面程序的编写,要经过大量的查找资料和请教,不但会开拓我们的视野也会提高我们用C语言编程的能力。这次课程设计既能培养我的思维能力,也可以加强我动手操作的能力。是一个非常难得的学习过程,对我们以后的工作也会有很大的帮助。
1.3发展现状及趋势
现如今,单片机在我们周围无处不在,似乎已经无法离开它。大到各种交通工具的导航装置,各种仪表的控制,工厂里大型机器的操作,小到广泛使用的各种IC卡,智能家电的控制,以及电子玩具等等,这些都有单片机的影子。
在以前没有单片机的时候时,就只能用非常复杂的模拟电路来代替,但是这样我们不仅会把它们做的很大,也要花更多的时间和金钱,控制的精度也达不到标准。在单片机出现以后,我们需要做的就简单了,只需要接一些外围电路和编写程序就可以完成了。这样生产的产品的体积就会变小,成本也会低很多,控制精度更是提升了不少。
随着科技的发展单片机的功能也越来越强大,使用单片机做出来的产品其智能化也越来越高。许多智能产品现在都无需当面操作,用手机等终端它就可以进行远程控制了。甚至都不需要动手,直接语音就可控制,让你体会到一种未来科技的感觉。所以说单片机的发展前景是光明的,将会有越来越多的地方需要它。我国现在的单片机年容量高达数亿,并且每年都在增长。所以,现在学习单片机是非常有前途的。而就目前来看,单片机正朝着多功能和扩大存储容量等方向发展。
2 系统的总体设计方案
2.1总体方案设计
我要写的游戏是只是一个简单的小游戏,程序不会太复杂,用一块单片机就能运行了。其次,它的按键也比较少,直接与端口相接就行了。要显示的界面还是很小、很简单的,这些只需要一块能显示图形的液晶屏就足以了,用不着多好多大的显示屏。编写这样一个简单的小游戏程序使用C语言就很好。因为它的编程灵活、可读性强、移植性好。所以本次设计硬件部分是主要由STC89C516RD单片机,独立式按键,LCD12864显示屏以及喇叭来完成。软件部分主要是通过对游戏程序的编写和调试来实现俄罗斯方块、贪吃蛇等游戏的功能。
图 2-1 总体设计方案框图
2.2设计思路及实现功能
先在Proteus仿真平台上设计出系统硬件原理图,然后在Keil软件中编写相应的程序来实现游戏的功能。完成实物的焊接后进行硬件和软件调试,如果出现问题,上网查资料,询问老师和同学都可以。经调试修改后让游戏可以稳正常运行。最后进行总结
2.3 主控制器的选择
STC89C516RD是标准的40引脚,如图2-1所示。STC89C516RD单片机是一种高效微控制器,具有较高的抗干挠能力。与同类型的芯片相比,还具有非常低的功耗和较强的保密性。其体积小、功能多、价格低,可以为本次设计提供了一种高性能低成本的方案。
图2-2 STC89C516RD单片机的引脚图
(1)管脚功能
ALE 地址锁存控制信号
PSEN 外部程序存储器的读选信号
EA 访问程序存储器控制信号
RST 复位信号
Vss 地线
Vcc +5V电源
(2) 常见的第二功能信号
P3的8条口线都定义有第二功能如表2-1所示
表2-1 端口第二功能
口线 第二功能 信号名称
P3.0 RXD 串行数据接收
P3.1 TXD 串行数据发送
P3.2 INT0 外部中断0申请
P3.3 INT1 外部中断1申请
P3.4 T0 定时器/计数器0记数输入
P3.5 T1 定时器/计数器1记数输入
P3.6 WR 外部RAM写选通
P3.7 RD 外部RAM读选通
摘 要
本系统主要是基于单片机的简易游戏机设计,主要以STC89C51单片机作为控制单元,用LCDl2864做显示屏幕,同时用DSl302实时时钟芯片提供实时时钟。其中,此游戏系统可以进行俄罗斯方块游戏和贪吃蛇两个小游戏,并能通过按键对游戏进行控制。为了使游戏机更加丰富,又在此基础上增加了万年历和电子琴。只要通过选择键进行上下选择,按下确认键就能进入你喜欢的选项了。
*查看完整论文请 +Q: 3 5 1 9 1 6 0 7 2
关键字:STC89C51单片机俄罗斯方块贪吃蛇LCD12864
目 录
1 绪 论 1
1.1 课题背景 1
1.2 课题的研究目的及意义 1
1.3发展现状及趋势 2
2 系统的总体设计方案 2
2.1总体方案设计 2
2.2设计思路及实现功能 3
2.3 主控制器的选择 3
2.4 液晶屏的选择 5
2.5 时钟芯片的选择 6
2.5.1 DS1302的结构 7
2.5.2 引脚 7
3 系统的硬件组成 7
3.1 单片机最小系统说明 7
3.1.1复位电路 8
3.1.2 晶振电路 9
3.2 供电模块 10
3.3显示模块 11
3.4 按键模块 11
3.5声音模块 12
3.6 时钟模块 13
4 软件部分设计 14
4.1 Keil介绍及编程 14
4.2 Proteus介绍及应用 14
4.3 C语言程序设计 15
4.4流程图 16
4.5游戏机中各选项介绍 20
4.5.1俄罗斯方块部分 20
4.5.2贪吃蛇部分 21
4.5.3 万年历部分 21
4.5.4 电子琴部分 21
4.6部分子程序 22
4.6.1液晶屏初始化函数 22
4.6.2液晶屏写指令和写数据函数 22
4.6.3方块生成函数 24
4.6.4移动和旋转函数 24
5系统的调试 26
5.1软件调试 26
5.2硬件调试 29
5.3调试遇到的问题及解决方案 31
总 结 32
参考文献 33
致 谢 34
附录1: 35
附录2: 36
附录3: 37
1 绪 论
1.1 课题背景
小游戏的代码还是比较多的,它要执行许多个指令才能完成一个简单的操作,要进行大量的运算才能运行游戏。所以我们所见到的游戏大多数是在电脑这类能够高速执行指令的平台上运行的。现在人们又非常需要高性能的和便携带的游戏终端,而单片机就是一个非常好的选择。虽然用单片机来来做这么简单小游戏似乎有点多余了,但这只是单片机一个的简单应用。但通过这个设计,我们可以了解到单片机功能和用途以及单片机的重要性。
1.2 课题的研究目的及意义
以51系列单片机为处理器,通过编程实现俄罗斯方块、贪吃蛇等游戏的功能,能够在万年历中准确显示时间,电子琴要能发出比较准确的声音并在屏幕上显示是那个音,并且所有的功能都可以正常使用。而整个系统都要能通过按键进行准确控制。比如在俄罗斯方块游戏中,左、右和下键分别可以控制方块左右移动及加速下降。上键则控制方块的旋转。满行后,能及时消除。在贪吃蛇中,按键功能就简单点了,四个方向键控制蛇头的方向。
这就要求我们对单片机的发展、架构、工作模式等都要有一定的了解。而其中对按键的处理,各子程序的调用等也是比较复杂的。如果能独立地完成整个设计,并且让游戏能稳定运行,会让我们对程序的理解和编程能力有一个很大的提高,对单片机也有一个更深刻的认识。特别是后面程序的编写,要经过大量的查找资料和请教,不但会开拓我们的视野也会提高我们用C语言编程的能力。这次课程设计既能培养我的思维能力,也可以加强我动手操作的能力。是一个非常难得的学习过程,对我们以后的工作也会有很大的帮助。
1.3发展现状及趋势
现如今,单片机在我们周围无处不在,似乎已经无法离开它。大到各种交通工具的导航装置,各种仪表的控制,工厂里大型机器的操作,小到广泛使用的各种IC卡,智能家电的控制,以及电子玩具等等,这些都有单片机的影子。
在以前没有单片机的时候时,就只能用非常复杂的模拟电路来代替,但是这样我们不仅会把它们做的很大,也要花更多的时间和金钱,控制的精度也达不到标准。在单片机出现以后,我们需要做的就简单了,只需要接一些外围电路和编写程序就可以完成了。这样生产的产品的体积就会变小,成本也会低很多,控制精度更是提升了不少。
随着科技的发展单片机的功能也越来越强大,使用单片机做出来的产品其智能化也越来越高。许多智能产品现在都无需当面操作,用手机等终端它就可以进行远程控制了。甚至都不需要动手,直接语音就可控制,让你体会到一种未来科技的感觉。所以说单片机的发展前景是光明的,将会有越来越多的地方需要它。我国现在的单片机年容量高达数亿,并且每年都在增长。所以,现在学习单片机是非常有前途的。而就目前来看,单片机正朝着多功能和扩大存储容量等方向发展。
2 系统的总体设计方案
2.1总体方案设计
我要写的游戏是只是一个简单的小游戏,程序不会太复杂,用一块单片机就能运行了。其次,它的按键也比较少,直接与端口相接就行了。要显示的界面还是很小、很简单的,这些只需要一块能显示图形的液晶屏就足以了,用不着多好多大的显示屏。编写这样一个简单的小游戏程序使用C语言就很好。因为它的编程灵活、可读性强、移植性好。所以本次设计硬件部分是主要由STC89C516RD单片机,独立式按键,LCD12864显示屏以及喇叭来完成。软件部分主要是通过对游戏程序的编写和调试来实现俄罗斯方块、贪吃蛇等游戏的功能。
图 2-1 总体设计方案框图
2.2设计思路及实现功能
先在Proteus仿真平台上设计出系统硬件原理图,然后在Keil软件中编写相应的程序来实现游戏的功能。完成实物的焊接后进行硬件和软件调试,如果出现问题,上网查资料,询问老师和同学都可以。经调试修改后让游戏可以稳正常运行。最后进行总结
2.3 主控制器的选择
STC89C516RD是标准的40引脚,如图2-1所示。STC89C516RD单片机是一种高效微控制器,具有较高的抗干挠能力。与同类型的芯片相比,还具有非常低的功耗和较强的保密性。其体积小、功能多、价格低,可以为本次设计提供了一种高性能低成本的方案。
图2-2 STC89C516RD单片机的引脚图
(1)管脚功能
ALE 地址锁存控制信号
PSEN 外部程序存储器的读选信号
EA 访问程序存储器控制信号
RST 复位信号
Vss 地线
Vcc +5V电源
(2) 常见的第二功能信号
P3的8条口线都定义有第二功能如表2-1所示
表2-1 端口第二功能
口线 第二功能 信号名称
P3.0 RXD 串行数据接收
P3.1 TXD 串行数据发送
P3.2 INT0 外部中断0申请
P3.3 INT1 外部中断1申请
P3.4 T0 定时器/计数器0记数输入
P3.5 T1 定时器/计数器1记数输入
P3.6 WR 外部RAM写选通
P3.7 RD 外部RAM读选通
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4207.html