【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

  • 11个按键+LCD1602显示器+9个灯+蜂鸣器
  • 打地鼠小游戏
  • 就是九个灯泡,对应九个按键,灯泡有红黄蓝,每间隔一会儿就会亮一个灯,代表地鼠冒出来,按一下按键让灯泡灭掉代表打地鼠,红的三分,黄的两分,蓝的一分,
  • 液晶显示屏显示得分,显示出剩余游戏时间
  • 第10个按键 游戏开始按键,按下后,进入1分钟倒计时。
  • 第11个按键 游戏复位,复位到游戏没开始之前的状态
  • 倒计时没结束的时候,打地鼠游戏。
  • 倒计时结束后,蜂鸣器响,屏幕闪烁得分内容

04 atmega16打地鼠游戏 打地鼠游戏仿真:
在这里插入图片描述

仿真和c代码:
在这里插入图片描述

ATmega16打地鼠小游戏

项目背景

打地鼠是一款经典的街机游戏,通过模拟地鼠的随机出现和玩家的快速反应来获得乐趣和挑战。这种游戏不仅能够锻炼玩家的反应速度和手眼协调能力,还能够通过电子制作的过程,让学习者深入了解单片机的应用和编程。本项目通过使用ATmega16单片机,结合矩阵键盘、LED灯、蜂鸣器和LCD1602显示屏,制作了一个简易的打地鼠小游戏。

系统原理

整个系统主要分为以下几个部分:

  1. 按键输入:使用矩阵键盘进行按键输入检测,其中9个按键用于打击地鼠,1个按键用于开始游戏,1个按键用于复位游戏。
  2. LED灯控制:通过单片机控制9个LED灯,模拟地鼠的随机出现。不同颜色的LED灯对应不同的得分。
  3. 蜂鸣器提示:当游戏时间结束时,通过蜂鸣器发出声音提示,增强游戏的互动性。
  4. LCD显示:使用LCD1602显示屏实时显示当前得分和剩余时间,使玩家能够直观地看到自己的游戏进展和剩余时间。
主要功能
  1. 游戏开始:按下第10个按键,游戏开始,进入1分钟倒计时。
  2. 随机出现地鼠:每隔一段时间随机点亮一个LED灯,表示地鼠出现,玩家需要在限定时间内按下对应按键。
  3. 得分显示:根据玩家按下的按键判断是否击中地鼠,并根据LED灯的颜色给予不同的分数,实时更新在LCD显示屏上。
    • 红色灯:3分
    • 黄色灯:2分
    • 蓝色灯:1分
  4. 时间倒计时:LCD显示屏实时显示剩余时间,当时间结束时,游戏自动结束。
  5. 游戏结束提示:倒计时结束后,蜂鸣器响起,并且LCD显示屏闪烁显示最终得分。
  6. 游戏复位:按下第11个按键,游戏复位,清空当前分数和时间,恢复到游戏开始前的状态。
详细功能实现
  1. 硬件初始化

    • 配置ATmega16的I/O口,用于连接LED灯、矩阵键盘、蜂鸣器和LCD显示屏。
    • 初始化LCD显示屏,设置初始显示内容。
  2. 按键检测

    • 使用轮询方法检测矩阵键盘的按键输入,通过特定函数返回当前按下的按键值。
    • 不同的按键值对应不同的操作,如开始游戏、复位游戏和打击地鼠。
  3. LED控制

    • 使用特定函数控制9个LED灯的点亮和熄灭。
    • 系统根据随机数种子生成随机数,点亮相应的LED灯,模拟地鼠的随机出现。
  4. 游戏逻辑

    • 游戏开始后,每隔一段时间随机点亮一个LED灯,玩家需要在限定时间内按下对应的按键。
    • 根据玩家按下的按键判断是否击中地鼠,并给予相应的分数。
    • 实时更新LCD显示屏上的当前得分和剩余时间。
  5. 时间控制

    • 使用定时器实现1分钟倒计时,每秒钟刷新一次剩余时间。
    • 当时间结束时,蜂鸣器响起,提示游戏结束。
  6. 复位功能

    • 按下复位键,清空当前游戏参数,恢复到游戏初始状态,等待玩家再次开始游戏。
总结

通过本项目,学习者可以深入了解如何使用ATmega16单片机实现一个交互式的打地鼠小游戏。这不仅涉及单片机的基础知识,还包括按键输入检测、LED灯控制、蜂鸣器提示、LCD显示等多种外围设备的使用。通过实际动手制作,能够更好地掌握单片机的应用和编程技巧,同时享受电子制作的乐趣。

资源
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?u=bdf8eeb84961492ba2b62f7bfee641ea&tab=BB08J2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/864344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一句话介绍什么是AI智能体?

什么是AI智能体? 一句话说就是利用各种AI的功能的api组合,完成你想要的结果。 例如你希望完成一个关于主题为啤酒主题的小红书文案图片,那么它就可以完成 前面几个步骤类似automa的组件,最后生成一个结果。

面试突击指南:Java基础面试题4

1. HTTP响应码有哪些 HTTP响应码分为以下几类: 1xx(临时响应):表示请求已被接收,继续处理。2xx(成功):表示请求已成功被服务器接收、理解、并接受。3xx(重定向):表示需要进一步的操作以完成请求。4xx(客户端错误):表示请求包含错误或无法被服务器处理。5xx(服务…

RIP 路由 3 个定时器的工作流程和 4 种防环方法

RIP 路由 3 个定时器的工作流程 根据 RFC2453, RIP 协议一共定义了 3 种定时器,分别是: ・更新定时器 (Update Timer) ・老化定时器 (Age Timer) ・垃圾收集定时器 (Garbage-collectTimer) RIP 的更新信息发布是由更新定时器控制的,默认…

IT专业入门——高考假期预习指南,我来做你的引路人

目录 认识IT知识体系 什么是计算机 按规模、速度和功能分类 按照其工作模式分类 硬件 操作系统 编程语言 对学习语言的一点建议 对于学python的一点看法 网络 数据结构与算法 数据库 Web开发 Web前端 Web后端 基础预习指南 技术路线学习一览 学习资源推荐 刷…

spring interceptor失效

适用方式 增加interceptor,implements HandlerInterceptor,实例如下 Slf4j public class AccessInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object han…

开放式耳机哪个品牌最好?2024精选5款热门品牌,新手必看的开放式耳机指南!

最近想买开放式耳机,但面对众多品牌和型号,真的太难挑选了?别担心,作为耳机发烧友和测评专家,我为大家带来了几款热门开放式耳机的横向对比。从6个方面告诉大家怎么样去挑选开放式耳机,并且推荐了几款我觉得…

在C++中什么是异常处理以及如何使用try-catch块

在C中,异常处理是一种处理运行时错误(如内存分配失败、无效的用户输入等)的机制。它允许程序在出现错误时优雅地处理,而不是简单地崩溃。异常处理的核心组件是try、catch和throw。 throw:这是用来抛出异常的语句。当某…

深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)

6,dropout 6,1 线性分类器中的正则化 在线性分类器中,我们提到过正则化,其目的就是为了防止过度拟合。例如,当我们要用一条curve去拟合一些散点的数据时,常常是不希望训练出来的curve过所有的点&#xff0c…

<电力行业> - 《第1课:电力行业的五大四小》

1 什么是电力行业的五大四小? 我们常说的电力行业的五大四小,指的是电力行业有实力的公司,分为:较强梯队的五大集团、较弱梯队的四小豪门。 五个实力雄厚的集团,分别是: 中国华能集团公司中国大唐集团公…

文件操作~

目录 1.为什么使用文件? 2.什么是文件? 2.1 程序文件 2.2 数据文件 2.3 文件名 3.⼆进制文件和文本文件? 4.文件的打开和关闭 4.1 流和标准流 4.1.1 流 4.1.2 标准流 4.2 文件指针 4.3 ⽂件的打开和关闭 5.文件的顺序读写 5.1 …

QT+winodow 代码适配调试总结(二)

已经好多年了, linux环境下不同版本的QT程序开发和部署,突然需要适配window环境程序调试,一堆大坑,还真是一个艰巨的任务,可是kpi下的任务计划,开始吧!! 1、首先我们自定义的动态库…

【PYTORCH,TENSORFLOW环境配置,安装,自用代码】

conda -V(查看版本,这步不要也罢) conda create -n test python3.7(创建环境) conda activate test(激活) conda env list(查看自己的环境) nvidia-smi(查…

以太网电缆专家手册:掌握RJ45连接器压接的艺术与科学

在这个日新月异的数字时代,正确的连接方式至关重要,而RJ45连接器正是实现这一点的关键工具之一。无论您是在家中布置办公网络,还是在公司部署复杂的IT基础架构,或是进行任何需要设备间高效数据传输的活动,掌握如何正确…

【Android面试八股文】你说你使用Leakcanary进行内存泄漏检测,那你能说一说Leakcanary的原理吗?

文章目录 一、 Java四大引用二、 LeakCanary示例工作机制注意事项三、 Leakcanary的原理四、 Leakcanary的源码分析LeakCanary#Install创建RefWatcherAndroidRefWatcherBuilder#buildAndInstall监听Activity的引用 : ActivityRefWatcher检查引用Dump Heap解析hprof定位泄露的引…

Spring Boot 自动配置:化繁为简的魔法

在 Java 世界里,Spring 框架以其强大的功能和灵活的设计著称,但繁琐的配置也常常让开发者望而却步。Spring Boot 应运而生,它采用"约定大于配置"的理念,通过自动配置机制,极大地简化了 Spring 应用的开发和部…

使用 ChatGLM3 实现知识图谱的抽取与智能问答

使用 ChatGLM3 实现知识图谱的抽取与智能问答 1. 获取查询问题的最近似段落2. 对文本进行知识图谱的抽取3. 完成智能问答 1. 获取查询问题的最近似段落 代码如下, import jsonfrom langchain_openai import ChatOpenAIfile_name "./files/2022-03-31__中国工…

promise.all()静态方法说明和使用

promise.all()静态方法创建的期约会在一组期约全部解决后,再解决;意思就是参数内的期约全部解决完后,再解决自己的resolve()期约; 如果所有的期约都是解决状态,那么把所有值返回进一个数组; 如果参数期约中…

【深度学习】调整加/减模型用于体育运动评估

摘要 一种基于因果关系的创新模型,名为调整加/减模型,用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑,将个体运动员的价值定义为:在假设情景下,用一名价值为零的球员替换该球员后,预期比赛…

《妃梦千年》第二十章:风雨欲来

第二十章:风雨欲来 战斗的胜利让林清婉和皇上的关系更加亲密,但宫中的阴谋却并未因此而停止。一天,林清婉正在寝宫中思考未来的对策,忽然接到一个紧急消息。小翠匆匆跑来,神色紧张:“娘娘,太后…

代码随想录算法训练营第十五天| 513.找树左下角的值 | 112. 路径总和 | 106.从中序与后序遍历序列构造二叉树

513.找树左下角的值 文档讲解:代码随想录 视频讲解:怎么找二叉树的左下角? 递归中又带回溯了,怎么办?| LeetCode:513.找二叉树左下角的值_哔哩哔哩_bilibili 1. 层序遍历可以做,不知道用递归咋做…