网站大量收购独家精品文档,联系QQ:2885784924

基于51单片机的打地鼠游戏机1602和led显示模拟(源码齐全).doc

基于51单片机的打地鼠游戏机1602和led显示模拟(源码齐全).doc

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于51单片机的打地鼠游戏机1602和led显示模拟(源码齐全)

PAGE \* MERGEFORMAT PAGE \* MERGEFORMAT 4 目录 一、摘要……………………………3 二、流程图…………………………4 三、电路原理………………………5 四、操作说明………………………7 五、演示图片………………………8 六、程序代码………………………11 一、摘要 本作品采用STC89C52单片机作为主控芯片,选取LCD1602液晶作为显示屏,选用24C02芯片作为外部EEPROM存储得分等数据。 游戏程序应用C语言编译,主要使用函数为显示主界面函数,选择模式函数,随机函数,键盘扫描函数和众多界面函数。 系统配有开机音乐和led短暂特效;以及关闭游戏音乐效果。目前配有三个难度等级,可以随时添加。游戏中可以实时显示得分、时间等数据。能够通过led显示和LCD1602同时显示地鼠的出现。题目要求中所有内容均已完成,且加入了很多额外显示环节。 二、流程图 三、电路原理 1、主控芯片 2、地鼠led和3*3键盘 3、蜂鸣器和buzzer 4、1602环节 5、24C02芯片 四、操作说明 插上电源后,打开作品左下角的自锁开关启动。 系统启动后,会次显示“welcome”字样,以及本队伍的名称,并伴随着短暂的旋律,led闪烁效果。紧接着便进入游戏选择界面,分别是:1.start 2.score 3.exit分别对应着开始游戏,进入历史分数菜单,以及结束的功能。通过button1 和button2键可以进行功能选择的切换和选取,button1用于切换,button2用于确认。 选择start选项之后会有5秒钟的准备时间,之后即可进入游戏,游戏分为3个关卡,难度依次上升,具体表现为地鼠产生的时间间隔依次减少,第一次为3秒间隔,往后依次递减。以9个灯泡作为地鼠,每次随机亮一个灯泡,游戏者需要在另一个3*3的矩阵上在灯泡亮的时间内按下相应的按钮即代表击打相应位置,从而实现打地鼠的模拟功能。 游戏界面的上方有左右两行,分别对应显示剩余时间(每次游戏的时间为30秒),以及所获得的分数。下方也有左右两行,分别对应当前所示洞的序数, 若击中地鼠:正常情况下分数加1,播放提示音1; 每关有(30/地鼠实现时间) 个地鼠(或地雷),击打完成后若分数大于等于 level*10则进入下一关。 游戏失败时,显示“GAME OVER”。 顺利通过3关或游戏失败后均导致游戏结束,此时显示你的得分并检测,若比存储的纪录分数高,则刷新纪录并存储。 显示作者信息及其他相关信息后回到游戏开始的等待画面。 补充说明: 本版本中进入游戏后只能用按键控制,在下一版本中会添加红外遥控控制。 液晶显示屏背光环节设置为接电即启用的状态,可以换增电池模块。 3. LCD1602显示图片上略有难度,下一环节将使用12864或者触屏板进行设计。 4. 蜂鸣器声音过于单调,下一环节将启用PM50100语音芯片进行播报。 五、演示图片 仿真图片 实际图片 六、程序代码 #includereg52.h #includestdlib.h sbit RS=P2^0; sbit EN=P2^1; sbit Speak=P2^2; sbit button1=P2^3; //选择模式键 sbit button2=P2^4; //确认键、返回键、暂停键、下一关开始键 sbit Buzzer=P2^6; sbit hole1=P2^7; //1号洞 sbit SDA=P1^1; //24c02数据线 sbit SCL=P1^0; //24c02时钟线 unsigned char Count; //Play_Song使用 unsigned char i,j; unsigned char temp; //随机数种子 unsigned char result; //随机数临时变量 unsigned char score; //保存临时分数 unsigned char tempname[2];//保存临时分数的名字 unsigned char time; //保存时间(30秒倒计时) unsigned char num; //1秒钟判断变量 unsigned char flag1; //1标识得分,led全灭,不进行scankey操作 unsigned char flag2; //1标识得分Buzzer响方式1 unsigned char flag3; //1标识地鼠出洞时间到,开始下一轮地鼠出洞 unsigned char flag4; //1标识关卡时间到 unsigned char flag5; //1标志暂停 unsigned char level; //关卡等级 unsigned char holenum; /

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档