ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:242.64KB ,
资源ID:3072310      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3072310.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机简易乒乓球游戏机.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机简易乒乓球游戏机.docx

1、单片机简易乒乓球游戏机单片机课程设计实验报告乒乓球游戏设计题目简单乒乓球游戏所选题意义充分利用51单片机壮大的操纵功能并结合实验室所具有的设备(示波器),设计一个简单的两人乒乓球游戏,使这种生活中游戏也能在电子设备中实现,再次证明实验也并非是枯燥的,乐趣就在其中,关键取决于自己系统所实现的要紧功能(1)利用51单片机输出两路脉冲波到示波器,将示波器设置为X-Y模式(显示乒乓球点),操纵单片机使乒乓球在示波器上两边跳动,途径呈抛物线形式;(2)利用两个按键作为球拍,能够将乒乓球即便击打归去(仍然呈抛物线),假设没有即便击打乒乓球,那么球触边界表示一方击球失败,另一方相应的加1分,分数实时在数码管

2、上显示,同时有代表两边的红、绿LED灯相应闪烁;(3)按键一次,蜂鸣响一下,球走向为一样抛物线,按键两次表示球以高抛球形式返归去;(4)球的球向由LED灯实时显示,同时球过中线时,数码管小数点闪烁一下(5)同实际一样,游戏为11分制,任何一方先达到11分为成功方,同时奏响成功方的音乐(两边有各自不同的音乐),在奏响音乐的时候,数码管归零,音乐终止后,游戏从头开始本人所做工作(1)完成系统设计的构思,依照构思开始编写程序,慢慢实现系统所需要的一些功能(程序中通过挪用子函数实现);(2)程序在keil中编译通事后,将产生的Hex文件加入到Proteus仿真环境下的单片机中,连接电路后仿真;(3)在

3、编写完程序和Proteus仿真取得预期成效后,开始购买元件,焊接硬件电路;(4)焊接完后,在实验室利用示波器和单片机电路联调,以达到最正确成效硬件电路设计及描述本设计用自己焊接的PCB板实现。实际焊接的电路在keil和Proteus联调环境下实现了全数功能。系统硬件电路包括:显示部份、按键部份、蜂鸣奏乐部份。(1)显示部份电路图如下:本设计采纳的是共阳数码管,作为打球两边计分显示。用P0口作为数码管的段选,由于P0口内部没有上拉电阻,在输出1时是悬浮的,状态不确信,因另外接上拉电阻,当输出0时,靠内手下拉电阻输出为低电平,当输出为1时,靠外部上拉电阻输出为高电平。P2口的0、一、二、3端口作为

4、数码管的位选端,由于用的是大号的共阳数码管,因此为了让实际中数码管足够亮,在位选端加入PNP三极管增加驱动。两个红、绿LED发光二极管灯别离接P1_7、P1_6口,得分的一方闪烁一下各自的LED灯;同时LED灯显示球在抛物线的哪一边,球过中线时,数码管小数点亮一下。(2)蜂鸣奏响部份电路图如下:P1_3口作为蜂鸣器的输入端,为了能驱动蜂鸣器,一样增加了PNP。(3)按键部份 两个外部触点按键别离接外中断INTO、INT1作为击球的球拍。总的电路图如下:(1)单片机XATL一、XATL2端口接12M晶振;RST端口接复位按键;(2)对ROM的读操作是始终从单片机的内部程序存储器开始的,因此EA端

5、口一直接高电平;(3)P1_一、P1_2作为两路X轴、Y轴脉冲波的输出端,接入到示波器中显示乒乓球运动单片机上电后,假设不按按键那么乒乓球点开始在示波器上两边来回呈抛物线跳动,乒乓球在一边触底线后,另一方得分,数码管分数加1,同时LED灯闪烁一下;乒乓球过中线后,按键一次乒乓球即便反弹归去,数码管分数不变,同时LED灯不亮;持续按键两次,乒乓球呈高抛球轨迹反弹归去;当一方分数达到11分时,音乐奏响,同时数码管归零。软件设计流程及描述(1)按键扫描程序本设计顶用到了3个按键,其中一个作为复位端,另外两个作为击球球拍,球过中线后,按键一次能及时将这球击打归去,按键两次为高抛球返归去;两个球拍是用I

6、NTO、INT1外中断实现的。 INTO中断程序流程图如下: 否外中断开启INTO是否为0是进外中断,延时10msINT0是否为0否退出外中断是球是否中线和边界之间是建立返回标志位flag;shu1+,shu2=0;判断shu1奇偶数,建立发高抛球标志位数码管显示,发X轴、Y轴波按键是否弹出否是(2)T0中断效劳程序采纳按时器T0计时,采纳模式1每隔进入按时器中断效劳程序中对乒乓球进行处置,包括判定标志位来加减用于查X轴、Y轴表的计数值;判定球是不是触边界了,假设触边界那么让发球方分数加1,点亮发光二极管;判定比分是不是达到11分来决定是不是设定开启音乐子程序的标志位。T0中断效劳程序流程图如

7、下:保护现场设定计数初值到否 是进中断,判断标志位flag重装计数器值0查表计数值+,判断计数值是否为54是设Flag为1, 比分加1,抛物线标志位置1,点亮LED灯判断比分是否为11否恢复现场1查表计数值-,判断计数值是否为0是设Flag为0, 比分加1,抛物线标志位置1,点亮LED灯判断比分是否为11是返回建立响不同音乐标志位flag2,比分置0,关T0中断,设置T1计数初值,设定进入响音乐程序的标志位flag1是否否否否(3)显示部份采纳数码管动态扫描法,能实时显示比分值数码管显示子程序流程图如下:位选设定(高位)查共阳表后送入到P0口位选设定(低位)查共阳表后送入到P0口延时延时返回(

8、4)蜂鸣音乐设计音调由不同频率的方波产生,音调与频率的关系如下表所示(这是其中一个八度)。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时刻。利用计时器计时此半周期时刻,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时刻再对I/O反相,就可在I/O脚取得此频率的方波。在在焊接板中产生方波的I/O脚选用,端口已经与蜂鸣器的驱动电路相连。如此输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音调的节拍是由延时实现的。依照延时的设定和乐谱的节拍数,设定半拍、1拍的时刻。(5)整体设计流程图:中断初始化灭LED灯,发X轴、Y轴波子函数调用,数码管显示

9、子函数调用标志位flag1是否为1是判断flag210查询乐曲“欢乐颂”表(音调、节拍),调用song子函数查询乐曲“卡农”表(音调、节拍),调用song子函数否判断乐曲是否结束对定时器T1、T0开启与否进行设置数码管显示进定时器T0中断服务程序时间中断外中断进外中断服务程序源程序代码及注释#include#define uchar unsigned char /8位无符号数#define int unsigned int /16位无符号数#define ulong unsigned long /32位无符号数/*/sbit speaker = P13; /扬声器输出口定义unsigned c

10、har timer0h, timer0l, time; /音调、节拍变量概念/*频率-半周期数据表 高八位 共保留了四个八度的28个频率数据*/code unsigned char FREQH = 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, /超低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, /低音1,2,3,4,5,6,7 0xFC, 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, /中音 1234567 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE

11、, 0xFF; /高音 1234567/* 频率-半周期数据表 低八位*/code unsigned char FREQL = 0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, /超低音1234567 0x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, /低音1,2,3,4,5,6,7 0x8F, 0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, /中音 1234567 0x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16; /高音 1234567/*一个音符有三个数字。前为第几

12、个音、中为第几个八度、后为时长(以半拍为单位)6, 2, 3代表:, 中音, 个半拍;1, 3, 2代表:, 高音, 个半拍;要想演奏不同的乐曲, 只需要修改下面的数据表 */*欢乐颂*/uchar code hls=3,2,2,3,2,2,4,2,2,5,2,2,5,2,2,4,2,2,3,2,2,2,2,2,1,2,2,1,2,2,2,2,2,3,2,2,3,2,3,2,2,1,2,2,4,3,2,2,3,2,2,4,2,2,5,2,2,5,2,2,4,2,2,3,2,2,2,2,2,1,2,2,1,2,2,2,2,2,3,2,2,2,2,3,1,2,1,1,2,4,2,2,2,2,2,2

13、,3,2,2,1,2,2,2,2,2,3,2,1,4,2,1,3,2,2,1,2,2,2,2,2,3,2,1,4,2,1,3,2,2,2,2,2,1,2,2,2,2,2,5,1,2,3,2,2,3,2,2,3,2,2,4,2,2,5,2,2,5,2,2,4,2,2,3,2,2,4,2,1,2,2,1,1,2,2,1,2,2,2,2,2,3,2,2,2,2,3,1,2,1,1,2,4,0,0,0;/*卡农*/uchar code kan=5,3,2,3,3,1,4,3,1,5,3,2,3,3,1,4,3,1,5,3,1,5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1,4,

14、3,1,3,3,2,1,3,1,2,3,1,3,3,2,3,2,1,4,2,1,5,2,1,6,2,1,5,2,1,4,2,1,5,2,1,3,2,1,4,2,1,5,2,1,4,2,2,6,2,1,5,2,1,4,2,2,3,2,1,2,2,1,3,2,1,2,2,1,1,2,1,2,2,1,3,2,1,4,2,1,5,2,1,6,2,1,4,2,2,6,2,1,5,2,1,6,2,2,7,2,1,1,3,1,5,2,1,6,2,1,7,2,1,1,3,1,2,3,1,3,3,1,4,3,1,5,3,1,3,3,2,1,3,1,2,3,1,3,3,2,2,3,1,1,3,1,2,3,1,7,2,1

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

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