【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.mfbz.cn/a/762856.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

开发自动发送国际短信的工具需要用到哪些源代码?

在当今数字化、全球化的时代,国际短信作为一种高效、便捷的沟通方式,在各个领域发挥着越来越重要的作用。 开发一款能够自动发送国际短信的工具,不仅能够帮助企业实现精准营销、客户服务,还能为个人提供便捷的跨国交流方式。 本…

手把手教你搭建PyTorch环境:MindStudio中PyTorch模型开发实战

本次实验的视频链接如下:​https://www.bilibili.com/video/BV1iA4y1f7o1/ 本次实验在MindStudio上进行,请先按照 教程 配置环境,安装MindStudio。 ​ MindStudio的是一套基于华为自研昇腾AI处理器开发的AI全栈开发工具平台,该IDE上功能很多…

Leetcode.1735 生成乘积数组的方案数

题目链接 Leetcode.1735 生成乘积数组的方案数 rating : 2500 题目描述 给你一个二维整数数组 q u e r i e s queries queries ,其中 q u e r i e s [ i ] [ n i , k i ] queries[i] [n_i, k_i] queries[i][ni​,ki​] 。第 i i i 个查询 q u e r i e s [ i …

AI绘画工具Midjourney:和Discord互相成就

前言 提到文生图,很多人都会想到植根于根植于Discord社区的Midjourney,本篇文章就基于作者的使用体验思考,并结合了Discord来对Midjourney进行探讨,感兴趣的朋友一起来看看吧。 如果要说现在最火的文生图,不得不说到Mi…

深入理解 “androidx.databinding.DataBindingUtil“ 细节和使用

介绍 数据绑定(Data Binding)是 Android 中的一个强大功能,它允许你使用声明性格式而不是编程方式将布局中的 UI 组件绑定到应用中的数据源。androidx.databinding.DataBindingUtil 类是一个工具类,它提供了用于处理数据绑定的方…

单片机语音识别控制蓝牙通信

基于单片机语音识别控制&蓝牙控制 1、Arduino单片机语音控制1.1 直连1.2 蓝牙无线连接1.3 部分核心程序1.4 实物演示 2、51单片机语音控制2.1 直连2.2 蓝牙无线连接2.3 部分核心程序2.4 实物演示 3、STM32单片机语音控制3.1 直连3.2 蓝牙无线连接3.3 部分核心程序3.4 实物演…

数据结构之“刷链表题”

🌹个人主页🌹:喜欢草莓熊的bear 🌹专栏🌹:数据结构 目录 前言 一、相交链表 题目链接 大致思路 代码实现 二、环形链表1 题目链接 大致思路 代码实现 三、环形链表2 题目链接 大致思路 代码实…

RANSAC空间圆拟合实现

由初中的几何知识我们可以知道,确定一个三角形至少需要三个不共线的点,因此确定一个三角形的外接圆至少可用三个点。我们不妨假设三个点坐标为P1(x1,y1,z1),P2(x2,y2,z2),P3(x3,y3,z3)。 圆方程的标准形式为: (xi-x)2(yi-y)2R2 (1…

8605 删数问题

这是一个典型的贪心算法问题。我们可以从高位开始,找到第一个比后面数字大的数字,删除它,然后继续这个过程,直到删除k个数字。如果我们已经删除了k个数字,但是还没有找到一个比后面数字大的数字,那么我们就…

专题六:Spring源码之初始化容器BeanFactory

上一篇咱们通过一个例子介绍初始化容器上下文相关内容,并通过两个示例代码看到了Spring在设计阶段为我预留的扩展点,和我们应该如何利用这两个扩展点在Spring初始化容器上下文阶段为我们提供服务。这一篇咱们接着往下看。 老这样子下回到refresh方法上来…

首款内置电源的迷你主机,不到千元的办公神器 | 零刻EQ13评测报告

零刻首款内置电源的迷你主机,不到千元的办公神器 | 零刻EQ13评测报告 哈喽小伙伴们好,我是Stark-C~ 众所周知,零刻作为目前国产迷你主机第一品牌,旗下系列众多,产线丰富,比如说它有针对游戏玩家的性能主机…

Transformer动画讲解 - 工作原理

Transformer模型在多模态数据处理中扮演着重要角色,其能够高效、准确地处理包含不同类型(如图像、文本、音频、视频等)的多模态数据。 Transformer工作原理四部曲:Embedding(向量化)、Attention(注意力机制)、MLPs(多层感知机)和Unembedding(模型输出)。 阶段一:…

JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)

1.需要处理成的数据格式 [{ mpptNumber: 1, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 2,}] }, { mpptNumber: 2, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvE…

Cosine 余弦相似度并行计算的数学原理与Python实现

背景 Cosine 我在LLM与RAG系列课程已经讲了很多次了,这里不在熬述,它在LLM分析中,尤其是在语义相似度的计算中至关重要,在dot attention机制中,也会看到他的身影。这里讲的是纯数学上的运算与python是如何运用相关库进…

Ubuntu机器安装rdkit指定版本,通过conda安装不需要make,有手就行。

阿里云购买Ubuntu 22.0机器 IP没错,访问外网没问题 图片中的命令放在下面了。 useradd test-user -s /bin/bash mkdir /home/test-user chown -R test-user: /home/test-user passwd test-uservi /etc/sudoers wget -c https://repo.anaconda.com/archive/Anacon…

全同态加密在大模型应用中应用

密码学简介 上文的图例基本展示了常见加密体系。加密体系,如果用比较正式的描述方法,无疑是做了三件事: 首先,通过一个生成算法 𝐾𝑒𝑦𝐺𝑒𝑛(1&#x1d70…

小白学习手册:轻松理解MQ消息队列

目录 # 开篇 RabbitMQ介绍 通讯概念 1. 初始MQ及类型 2. MQ的架构 2.1 RabbitMQ的结构和概念 2.2 RabbitMQ消息流示意图 3. MQ下载使用 3.1 Docker下载MQ参考 3.2 进入RabbitMQ # 开篇 MessagesQueue 是一个抽象概念,用于描述消息队列系统的一般特性和功能…

计算机视觉 | 基于 PointNet 网络的飞机零件 3D 点云分割

目录 一、简要介绍二、环境设置2.1 实验配置2.2 必要库安装 三、数据集解析3.1 数据集加载3.2 数据文件夹结构3.3 点云数据可视化3.4 数据获取与预处理3.5 数据集定义 四、模型组网4.1 PointNet 介绍4.2 Paddle模型组网4.3 模型概要 五、模型训练六、模型预测七、总结 Hi&#…

亚马逊广告如何设置关键词竞价获取最优广告投入产出比 (ACOS)

在投放亚马逊商品广告的时候,从我们通常的理解来说,关键词竞价CPC设置的越高,广告投入产出比 (ACOS)越高,所以我们通常希望CPC越低越好,但是从我们实际投放广告来看,CPC与ACOS并不是线性相关。有时候CPC设定…

外卖点餐二合一小程序源码系统 单店多店都可使用 自由下单 带完整的安装代码包以及搭建部署教程

系统概述 外卖点餐二合一小程序源码系统是一款集外卖点餐和店铺管理功能于一体的综合性系统。它不仅适用于单店模式,也能满足多店连锁经营的需求。无论是小型餐厅还是大型餐饮企业,都可以通过该系统轻松实现线上业务的拓展和管理。 该系统基于先进的技…