基于51单片机乒乓球游戏设计与制作_第1页
基于51单片机乒乓球游戏设计与制作_第2页
基于51单片机乒乓球游戏设计与制作_第3页
基于51单片机乒乓球游戏设计与制作_第4页
基于51单片机乒乓球游戏设计与制作_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析........................................................................................................1

2设计方案遴选........................................................................................................1

3产品的硬件设计....................................................................................................2

3.1电子原理图.......................................................................................2

3.2AT89S51单片机核心电路设计.........................................................2

3.3按键电路设计...................................................................................7

3.4模拟球台电路的设计.......................................................................8

3.5声音报警电路...................................................................................9

4产品软件设计........................................................................................................9

4.1主程序流程图...................................................................................9

4.2下位机程序设计.............................................................................11

4.3产品程序清单.................................................................................12

5产品使用说明......................................................................................................12

5.1产品装配图.....................................................................................12

5.2产品调试.........................................................................................12

5.3产品使用说明.................................................................................13

6产品设计技术标准..............................................................................................14

7参考资料..............................................................................................................14

8附录......................................................................................................................15

8.1元器件清单.....................................................................................15

8.2电路原理图.....................................................................................15

8.3PCB设计图........................................................................................16

8.4产品实物图.....................................................................................17

8.5主程序代码.....................................................................................18

湖南商务职业技术学院毕业设计

基于51单片机乒乓球游戏设计与制作

1产品功能分析

乒乓球游戏机就像是一扇时空之门,将乒乓球的精髓与现代电子产品完美

结合。通过按键和发光二极管的巧妙运用,模拟出乒乓球的拍子和球,让人们

在舒适的家中也能体验到打乒乓球的乐趣。这一创新设计打破了空间、设施和

环境的局限,让人们在享受运动的同时,感受到了真实的乒乓球体验。

乒乓球游戏机更像是一位多才多艺的朋友,不仅是一种健身工具,更是一

种益智玩具。它激发了人们的反应速度和手眼协调能力,让人们在游戏中锻炼

了大脑。优雅而富有艺术性的设计使乒乓球游戏机成为了家居娱乐的新宠,满

足了人们对于健康、娱乐和益智的多重需求。

总之,乒乓球游戏机的出现为人们提供了一种全新的运动方式。它将传统

乒乓球运动与现代科技完美融合,让人们在享受游戏乐趣的同时,实现了锻炼

身体和智力的目标。这无疑是这个信息化社会中的一份珍贵礼物,带给我们无

尽的欢乐与挑战。

2设计方案

完成本产品之前选择好物美价廉的产品部件,在优惠的价格下能够实现产

品的功能。一个完整的乒乓球游戏机,有优惠的价格优势下,需要对游戏模式

进行选择,产品的基础模式是双人对打,表达形式为一方获得11分后有蜂鸣器

提醒获胜和数码管显示分数。是基于单片机的乒乓游戏机设计,结果用数码管

显示。软件方面,使用KeiluVision4进行编程。在硬件设计方面,涵盖了单片

机电路、LED模拟球台电路、按键电路以及显示电路等复杂电路的精心设计。

而在软件设计领域,则包括主程序、按键组程序(球拍模拟和暂停/开始子程序)、

发球程序(回球程序、数码管显示程序)等核心程序的编写与优化。系统框图

设计系统的组成结构如下

图1系统设计框架图

1

湖南商务职业技术学院毕业设计

3产品的硬件设计

3.1电子原理图

图2电子原理图

3.2AT89S51单片机核心电路设计

乒乓游戏机巧妙地搭载了单片机AT89S51作为其智慧核心。与其他51单

片机相比,AT89S51以其卓越的性价比和出色的性能脱颖而出,更值得一提的

是,它具备在线编程能力,使得在实现各种功能时,无需对硬件进行繁琐的修

改。

AT89S51是一种兼具低功耗和高性能的芯片,其片上闪存允许程序存储器

在系统或常规非易失性存储器中重新编写,这一特性使得该芯片具有极高的灵

活性。结合了8位处理器的系统内可编程闪存的AT89S51,为众多嵌入式控制

应用提供了一个既高度灵活又具有成本效益的解决方案。

2

湖南商务职业技术学院毕业设计

如表1所示,AT89S51的主要功能一目了然。而图2则展示了其DIP封装

图片,使得这个重要的芯片在硬件设计中发挥了更大的作用。

主要功能特性

兼容MCS-51®产品全双工异步串行通道

•4K字节的系统内可编程(ISP)快低功耗空闲和掉电模式

闪记忆体

耐力:1000写/擦除周期从掉电模式下的中断恢复

4.0V至5.5V工作电压范围v看门狗计时器

全静态操作:0Hz至33MHz的双数据指针

三个级别的程序存储器锁定断电标志

128×8位内部RAM快速编程

3.2.1AT89S51引脚介绍

AT89S51是一款基于CMOS技术的8位单片机,具有卓越的性能和可靠性。其

引脚设计使得它能够灵活地扩展外部存储器、I/O口以及其他外设,从而实现

复杂的控制和数据处理功能。

PO口是AT89S51的核心引脚之一,它是一个32位的双向口线,位于引脚的

39-32号端子和1-8号端子。在扩展外部存储器时,PO口作为数据总线使用,

传输数据和地址信息。同时,它也可以作为一般的I/0口使用,用于输入和输

出信号。但是需要注意的是,在作为输入或输出使用时,PO口内部没有上拉

电阻,因此需要在外部连接上拉电阻以实现电平拉高或提供电流源。

P1口是另一个重要的I/0口,它是一个8位的双向口线,位于引脚的1-8号端

子。与PO口不同,P1口专门作为I/0口使用,其内部有上拉电阻。这个引脚

可以用于简单的输入输出操作,或者连接到其他外设进行控制和数据传输。

P2口同样也是一个8位的双向口线,位于引脚的21-28号端子。与P1口类似,

P2口也可以作为I/0口使用或者扩展外部存储器时的地址总线。它具有双重功

能:一是作为地址总线使用,在扩展外部存储器时传输地址信息;二是作为一

般的I/0口使用,用于输入和输出信号。

P3口与PO、P1和P2口有所不同,除了作为I/0口使用外,还具有一些特殊功

能。这些特殊功能由特殊寄存器来设置和控制,可以实现诸如定时器、中断控

制器、串行通信接口等多种功能。当作为输入时,P3口的上拉电阻将其电位拉

高;如果输入为低电平,则可以提供电流源。

ALE/PROG是一个复合引脚,用于地址锁存控制和编程脉冲输入。在系统扩展

时,ALE引脚用于控制将PO口的输出低8位地址送锁存器锁存起来,以实现

低位地址和数据的隔离。PROG引脚则是编程脉冲的输入端,AT89S51单片机

3

湖南商务职业技术学院毕业设计

内部有一个4KB的程序存储器(ROM),需要通过编程脉冲输入才能写入程序

代码。

PSEN是一个外部程序存储器读选通信号引脚,低电平有效。当PSEN引脚输

入低电平时,外部程序存储器被选中并开始读取操作。这个引脚在从外部ROM

中读取程序代码时起到选通和读取的作用。

EA/VPP是一个访问程序存储器控制信号引脚。当接高电平时,CPU读取内部

程序存储器(ROM)中的程序代码;当接低电平时,CPU读取外部程序存储器

(ROM)中的程序代码。这个引脚用于控制程序代码的来源和读取方式。

RST是复位信号引脚,用于完成单片机的复位初始化操作。当输入信号连续两

个机器周期以上高电平时即为有效,复位操作会将单片机恢复到初始状态,所

有的寄存器和内存都被清零,程序计数器回到初始位置。

XTAL1和XTAL2是外接晶振引脚。当使用芯片内部时钟时,这两个引脚用于

外接石英晶体和微调电容;当使用外部时钟时,它们用于接收外部时钟脉冲信

号以驱动单片机的操作。

VCC是电源端接+5V电压输入引脚。这个引脚用于接入电源,为单片机提供工

作所需的能量。

GND是接地端引脚。它用于将单片机连接到地线,从而形成一个参考电平。所

有的信号和电压都是相对于地线进行定义的,因此接地端对于保证单片机的稳

定性和可靠性至关重要。

图3AT89S51DIP封装图

最小系统是一个精巧而高效的平台,它集成了单片机及其关键的电源、时

钟和复位组件,确保了单片机始终处于正常运行状态。电源和时钟等电路是单

片机正常运行所必需的核心组件,它们为单片机提供了运行的动力和时序。

4

湖南商务职业技术学院毕业设计

AT89S51单片机是一种独特的芯片,内部集成了ROM/EPROM存储器,

使得使用这种芯片构成的最小系统具有简洁性和可靠性。构建基于AT89S51

的最小应用系统时,只需将单片机与时钟电路和复位电路进行连接,如图2-3

所示。尽管由于集成度的限制,这个最小应用系统主要适用于一些规模较小的

控制应用,但它却能够以其简洁的结构和高可靠性,成为许多复杂应用系统的

坚实基础。

图4单片机最小系统原理框图

(1)晶振电路

AT89C51芯片的内部搭载了一个高性能的反相放大器,其输入端口与芯片引

脚XTAL1相连,而输出端口则与引脚XTAL2相接。在芯片的内部,XTAL1

和XTAL2之间跨接了晶体振荡器和微调电容,犹如一个稳定的自激振荡器之

桥梁。

时钟电路孕育出振荡脉冲,这些脉冲经过触发器的二分频处理,最终化作单片

机的时钟脉冲信号。为了构建单片机的电路,我们将单片机的XTAL1和XTAL2

引脚分别接入33pF的电容,两者之间再并联一个11.0592MHZ的晶振。

这样的组合为单片机提供了稳定的时钟节拍,从而为其正常运行注入生命力。

5

湖南商务职业技术学院毕业设计

图5AT89S51内部时钟电路

(2)复位电路

在AT89C51单片机的设计中,实现上电复位电路的方式颇具简洁之美。只需

将一个电容与RST复位输入引脚相连接并延伸至Vcc端,同时再连接一个电阻

到地线。对于CMOS型的单片机,外部电阻被巧妙省略,电容值缩小至仅1微

法拉。

当电源上电时,复位电路借助电容向RST端输送一个短暂的高电平信号。随

着电源电压的逐步上升,这个高电平信号逐渐回落。因此,RST端的高电平持

续时间取决于电源电压的上升过程。为确保系统能够稳定复位,RST端的高电

平信号必须保持足够长的时间。

电源电压上电时的上升时间约为10毫秒,而振荡器的启动时间则取决于振荡

频率。例如,如果晶振频率为10兆赫兹,那么启动时间仅需1毫秒;如果晶振

频率为1兆赫兹,那么启动时间则为10毫秒。在图3-2的复位电路中,当电源

电压掉电时,RST端的电压会迅速下降到零伏以下。然而,由于内部电路的自

我保护机制,这个负电压不会对器件造成任何损害。

另外,值得注意的是,在复位期间,单片机所有端口引脚处于未确定状态。

只有当复位完成后,系统才会将各端口设置为全“1”状态。若系统在上电时未

能顺利复位,程序计数器PC将无法获得合适的初始值。由此,CPU可能会从

一处未知的位置开始执行程序。

6

湖南商务职业技术学院毕业设计

图6AT89S51复位电路

3.3按键电路设计

在本设计中,我们让按键连接单片机的某个端口,初始时端口是高电平,当按

键按下时,端口变为低电平,释放后又变为高电平。这样单片机只需检测端口

的电平,就能判断是否有按键动作。

我们选择了独立式键盘接法,每个按键只连接一个I/O端口。程序简单且运行

稳定。

具体实现是:当按键按下时,端口与地短路,电平变为低;按键释放后,单片

机内部的上拉电阻又把端口拉回到高电平。我们只需在程序中检查端口的电平

状态就能知道是否有按键动作。

不过,按键按下和释放之间会有一个短暂的抖动时间,电平会不稳定。这种抖

动虽然对人来说很快,但对单片机来说却是慢的。为了消除抖动的影响,我们

选择了软件去抖动的方法。当检测到低电平时,程序会延时一段时间再检测一

次。如果这次检测还是低电平,那就说明有按键按下。

这样,通过独立式键盘接法和软件去抖动的方法,我们就能准确可靠地读

取按键输入了。

7

湖南商务职业技术学院毕业设计

图7按键电路

3.4模拟球台电路的设计

本设计采用了由发光二极管组成的模拟球台电路,LED是英文单词的缩写,能

够直接将电能转化为光能。它运用电场发光原理,具有寿命长、光效高、辐射

低、功耗低等显著特点,被视为21世纪最具发展前景的绿色照明光源。

经过近40年的发展,我国的LED产业取得了广泛的应用。其产品广泛应用于

景观照明和普通照明领域,使我国已成为世界第一大照明电器生产国和第二大

照明电器出口国。随着半导体发光材料研究的不断深入以及新材料的开发和应

用,各种颜色的超高亮度LED取得了突破性进展,其发光效率提高了近1000

倍,色度方面已实现了可见光波段的所有颜色。最重要的是,超高亮度白光LED

的出现,使得LED应用领域扩展至高效率照明光源市场成为可能。

本设计利用不同颜色的LED来指示不同的烟雾浓度报警。

图8模拟球台电路

8

湖南商务职业技术学院毕业设计

3.5声音报警电路

在这个设计中,我们将运用一个三极管、一个蜂鸣器以及一个限流电阻来

构建一个精巧的蜂鸣器驱动电路。

三极管Q1在这个电路中起着开关的作用。当它的基极收到低电平时,三

极管会进入饱和导通状态,从而使蜂鸣器发声。而当基极收到高电平时,三极

管则会关闭,使得蜂鸣器停止发声。

图9声音报警电路

4产品软件设计

4.1主程序流程图

9

湖南商务职业技术学院毕业设计

开始

初始化定时器

中断系统

NO

开始按键按下

YES

开始比赛

置位变量

打开外部中段

调速按键按下NO

YES

速度等级加

NO

速度等级大于8

YES

回到1级

指示灯显示等级

调用显示函数

图10主程序流程图

10

湖南商务职业技术学院毕业设计

4.2下位机程序设计

在完成产品程序的编写后,我们使用Keil5进行测试和编译。程序的主要

定义函数和引脚定义如下:

主程序:初始化乒乓游戏机,设置定时器,为LED数码管输入数据,以及

定时扫描按键。

按键程序:在回球和发球时,通过按键输入数据,单片机进行处理。这个

程序包括暂停/开始子程序,控制系统的暂停和开始。

回球程序:当球在A边时,A可以在相应的delay_1(t)程序中感应A按键

组的数据并作出相应处理;当球在B边时,处理方式类似。

显示程序:显示游戏比分,当A或B到达11分时进入相应子程序。

图11下位机程序设计图片截图

11

湖南商务职业技术学院毕业设计

4.3产品程序清单

图12产品程序清单

5产品使用说明

5.1产品装配图

数码管显

51单片机

蜂鸣器模块

Led显示模块图13产品装配图按键设置

5.2产品调试

在调试过程中,我们首先需要验证硬件电路的设计原理是否正确、能否达

12

湖南商务职业技术学院毕业设计

到预期效果以及实现方法是否简便等。其次,在完成线路板的焊接后,我

们需要仔细检查电路的焊接情况。本次采用的方法是分块调试,从简单到复杂

的调试顺序,最后再将各个模块整合成一个整体。

在调试过程中,我们遇到了一些问题。首先,由于在焊接电路之前没有认

真查看AT89S51的管脚,使得管脚的顺序全部焊错了,最后只好重新购买器件

并重新进行焊接。其次,在编写解码程序的过程中,随着理解的深入我们也进

行了相应的修改。

5.3产品使用说明

一、产品简介

本乒乓球比赛模拟机是一种电子游戏机,采用发光二极管模拟乒乓球运动,

可容纳三人玩耍。通过调节移动速度,真实再现乒乓球比赛场景。本产品旨在

提供一种趣味性和竞技性兼备的娱乐方式。

二、产品特点

8个LED灯排成一条直线,模拟乒乓球运动轨迹。LED灯以中点为界,代

表双方参赛者的位置。当球(点亮的那只LED)移动到某一方时,参赛者需按

下位于自己一方的按钮开关,模拟击球动作。

电路自动响铃3s,庆祝每局比赛的胜利。在这期间,发球无效,需等待铃

声停止后方能继续比赛。

自动计分电路确保公正公平。甲乙双方各用两位数码管进行计分显示,每

记满11分为1局。双方各10分之后,领先2分者为胜。

发光二极管表示拥有发球权。每得2分,自动交换发球权,确保比赛的连

续性和趣味性。拥有发球权的一方发球才能有效。

三、操作说明

启动游戏机,调整速度以适应不同水平。球移至某一方时,迅速按下己方

按钮。击中则球反方向移,未击中对方得一分。每次得分,电路自动响铃三秒。

一局满11分。双方各10分后,领先2分者胜。发光二极管显示发球权,每得

2分自动交换。拥有发球权方可发球。

四、注意事项

请在成人监护下进行游戏;

请勿在湿润环境下使用;

若发现任何异常情况,请立即停止使用并联系售后;

保持产品清洁,避免灰尘和污垢影响游戏体验;

13

湖南商务职业技术学院毕业设计

请勿将本产品用于商业用途或非法用途

6产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语;

[5]GB/T8566-2007信息技术软件生存周期过程标准;

[6]GB/T8567-2006计算机软件文档编制规范。

7参考资料

[1]陈权昌,李兴富.单片机原理及应用[M].广州:华南理工大学出版社,2007.8

[2]李庆亮.C语言程序设计实用教程[M].北京:机械工业出版社,2005.3

[3]杨志忠.数字电子技术[M].北京:高等教育出版社,2003.12.

[4]及力.Protel99SE原理图与PCB设计教程[M].北京:电子工业出版社,2007.8.

[5]徐江海.单片机实用教程[M].北京:机械工业出版社,2006.12

[6]胡宴如.模拟电子技术[M].北京:高等教育出版社,2008.6

[7]刘宁.单片机多功能时钟的设计[M].浙江:浙江海洋学院,2009.

[8]汪文,陈林.单片机原理及应用[M].湖北:华中科技大学出版社,2007.

[9]康华光.电子技术基础数字部分[M].北京:高等教育出版社,2008.

14

湖南商务职业技术学院毕业设计

8附录

8.1元器件清单图

8.2电路原理图

15

湖南商务职业技术学院毕业设计

8.3PCB设计图

图17PCB设计图

16

湖南商务职业技术学院毕业设计

8.4产品实物图

产品实物图正面

产品实物图反面

17

湖南商务职业技术学院毕业设计

8.5主程序代码

#include<reg51.h>

#include<intrins.h>

#defineuintunsignedint

#defineucharunsignedchar//宏定义

sbitstart=P3^5;//开始

//sbitL=P3^2;//左方

//sbitR=P3^3;//右方

sbitALAM=P3^7;//报警

bitL_R=0;//左、右标志位,=0左边,=1右边

bitrun=0;//运行、停止标志位,=0停止,=1运行

//ucharcode

LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

ucharcode

LEDData[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数字0-9

的编码

ucharcodePPQdata[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,};

ucharscoreL,scoreR;//左右方得分

ucharflag_1miao;

ucharcount_1miao;

ucharflag_sudu;//速度标志位

ucharcountt0n,countt0,countt1;//T0,T1中断计数

sbitKEY=P3^4;

ucharzongjiqiushu;

ucharjiqiu_l;

ucharjiqiu_r;

/*****延时子程序*****/

voidDelay(uintnum)

{

18

湖南商务职业技术学院毕业设计

while(--num);

}

/*****初始化定时器0*****/

voidInitTimer(void)

{

TMOD=0x11;

TH0=0x3c;

TL0=0xb0;//50ms(晶振12M)

}

/*****显示分数子程序*****/

voidDisp_score(void)//显示温度

{

P0=LEDData[scoreL/10];

P2=0x7F;

Delay(200);

P2=0xFF;

P0=LEDData[scoreL%10];

P2=0xBF;

Delay(200);

P2=0xFF;

P0=LEDData[scoreR/10];

P2=0xDF;

Delay(200);

P2=0xFF;

P0=LEDData[scoreR%10];

P2=0xEF;

Delay(200);

19

湖南商务职业技术学院毕业设计

P2=0xFF;

}

/*****主函数*****/

voidmain(void)

{

InitTimer();//初始化定时器

EA=1;//全局中断开关

TR0=0;

TR1=0;

ET0=1;//开启定时器0

ET1=1;

EX0=0;

EX1=0;

flag_1miao=1;

flag_sudu=2;

while(1)

{

if((start==0)&&(run==0)&&flag_1miao==1)//停止状态下,

控下start键

{

Disp_score();//调用数码管显示

{

if(start==0)//开始按键按下

{

if(((scoreL==11)&&(scoreR<10))||((scoreR==11)&&(scoreL<10))||((scoreL>11)

&&(scoreL-scoreR==2))||((scoreR>11)&(scoreR-scoreL==2)))

{

TR1=0;

ALAM=1;

20

湖南商务职业技术学院毕业设计

scoreL=0;

scoreR=0;

}

run=1;//运行标志位置1

jiqiu_l=0;

jiqiu_r=7;

zongjiqiushu=0;

if((scoreL+scoreR)%4<=1)

L_R=0;

else

L_R=1;

if(L_R==0)

{

countt0=0;

P1=PPQdata[0];

EX0=1;

EX1=0;

}

else

{

countt0=7;

P1=PPQdata[7];

EX0=0;

EX1=1;

}

}

}

}

if(KEY==0&&run==0)

{

Delay(2200);

if(KEY==0)

{

21

湖南商务职业技术学院毕业设计

flag_sudu++;

if(flag_sudu>8)

{

flag_sudu=1;

}

while(KEY==0)

{

Disp_score();

switch(flag_sudu)

{

case1:P1=0xfe;break;

case2:P1=0xfd;break;

case3:P1=0xfb;break;

case4:P1=0xf7;break;

case5:P1=0xef;break;

case6:P1=0xdf;break;

case7:P1=0xbf;break;

case8:P1=0x7f;break;

}

}

P1=0xff;

}

}

Disp_score();

}

}

//==========定时器0中断服务程序=========

voidtimer0(void)interrupt1//用于乒乓球的运行速度控制

{

TH0=0x3c;//T0重赋初值

TL0=0xb0;

TR0=1;//开启计数器0

22

湖南商务职业技术学院毕业设计

countt0n++;

if(countt0n==flag_sudu)

{

countt0n=0;

if(L_R==0)

{

countt0++;//中断计数加1

if(countt0>=4)

{

EX1=1;//开启外部中断1,便于选手击

}

else

{

EX0=0;

EX1=0;

}

}

else

温馨提示

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

评论

0/150

提交评论