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

news2024/10/4 23:11:00
  • 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.coloradmin.cn/o/1883922.html

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

相关文章

Java案例抢红包

目录 一:题目要求: 二:思路分析:(遇见问题先想出完整的思路逻辑再去动手事半功倍) 三:具体代码: 一:题目要求: 二:思路分析:&#x…

[无广告!纯干货]免费用CodeFlying自动化生成一个专属的AI机器人

前言: 真心话,花3分钟看文章,再花5分钟体验,你会回来给我点赞的。 随着AIGC(人工智能生成内容)行业的迅猛发展,人工智能正在以前所未有的速度和方式改变我们的生活。 它不仅在娱乐、教育、医疗…

Nomad Web 1.0.12还能这样

大家好,才是真的好。 前几天讲代码和开发,忽略了大家的真实感受,那就是不爱开。我也记起来我们很久没有讲Notes/Domino产品的更新,因为除了补丁程序外,确实没多少更新。 不过就在前两天,有一项产品得到了…

惠海100V 15A HC070N10L TO-252封装 N沟道MOS管 打火机/BMS电源板应用

MOS管的工作原理是基于在P型半导体与N型半导体之间形成的PN结,通过改变栅极电压来调整沟道内载流子的数量,从而改变沟道电阻和源极与漏极之间的电流大小。由于MOS管具有输入电阻高、噪声小、功耗低等优点,它们在大规模和超大规模集成电路中得…

【技术追踪】SegGuidedDiff:基于分割引导扩散模型实现解剖学可控的医学图像生成(MICCAI-2024)

它来了它来了,它带着 mask 做生成了~ SegGuidedDiff:提出一种用于解剖学可控医学图像生成的扩散模型,在每个采样步骤都遵循多类解剖分割掩码并结合了随机掩码消融训练算法,可助力乳房 MRI 和 腹部/颈部到骨盆 CT 等任务涨点。 论文…

基于pycharm对每个工程配置python环境

目录 1 生成环境2 配置pycharm 1 生成环境 设定一个存放虚拟环境的目录,比如可以放在如下目录下: /Users/Name/PycharmProjects/env 然后生成虚拟环境,执行如下操作: python3 -m venv /Users/Name/PycharmProjects/env/agent_pr…

AI基本概念(人工智能、机器学习、深度学习)

人工智能 、 机器学习、 深度学习的概念和关系 人工智能 (Artificial Intelligence)AI- 机器展现出人类智慧机器学习 (Machine Learning) ML, 达到人工智能的方法深度学习 (Deep Learning)DL,执行机器学习的技术 从范围…

视频转音频:怎样提取视频中的音频?6个提取音频的小技巧(建议收藏)

怎样提取视频中的音频?当我们想从视频中提取出声音时,通常会遇到很多问题。无论是想单独提取出视频里的音频,还是把它转成方便储存或者分享的音频格式,这都会涉及到视频转音频的一个需求。因此,在这篇指南里&#xff0…

网络变压器和RJ45接线的方法

网络变压器在以太网硬件电路设计中扮演着重要的角色,它主要用于信号电平耦合、隔离外部干扰、实现阻抗匹配以及增加传输距离。而RJ45接口则是以太网连接的标准化接口,它提供了与网络电缆的连接点。 网络变压器与RJ45的接线方法通常遵循以下步骤&#xf…

Android- Framework 非Root权限实现修改hosts

一、背景 修改system/etc/hosts,需要具备root权限,而且remount后,才能修改,本文介绍非root状态下修改system/etc/hosts方案。 环境:高通 Android 13 二、方案 非root,system/etc/hosts只有只读权限&…

Linux源码阅读笔记08-进程调度API系统调用案例分析

kthread_create_on_node kthread_create_on_node函数功能&#xff1a;指定存储节点创建新内核线程。源码如下&#xff1a; 操作实战 #include <linux/module.h> #include <linux/pid.h> #include <linux/sched.h> #include <linux/kthread.h> #inclu…

Docker 镜像导出和导入

docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output&#xff1a;指定导出文件的路径和名称[镜像名称[:标签]]&#xff1a;导出镜像名称以及可选的标签 dock…

一招解决 | IP地址访问怎么实现https

没有域名的情况下&#xff0c;使用IP地址实现HTTPS访问是可以的&#xff0c;但相比使用域名会有些许限制&#xff0c;需要通过部署专用于IP地址的SSL/TLS证书来实现。 IP地址实现HTTPS访问的过程与使用域名类似&#xff0c;但有几个关键的区别。以下是使用IP地址实现HTTPS访问…

CrimsonEDR:一款恶意软件模式识别与EDR策略评估工具

关于CrimsonEDR CrimsonEDR是一个功能强大的开源项目&#xff0c;该项目旨在帮助广大研究人员识别特定的恶意软件模式&#xff0c;以此来优化终端检测与响应&#xff08;EDR&#xff09;的策略方案。通过使用各种不同的检测方案&#xff0c;可以加深开发人员与研究人员加深对安…

Nginx 配置文件

Nginx的配置文件的组成部分&#xff1a; 主配置文件&#xff1a;nginx.conf子配置文件&#xff1a;include conf.d/*.conf 全局配置 nginx 有多种模块 核心模块&#xff1a;是 Nginx 服务器正常运行必不可少的模块&#xff0c;提供错误日志记录 、配置文件解析 、事件驱动机…

python基础语法 004-2流程控制- for遍历

1 遍历 1.1 什么是遍历&#xff1f; 可以遍历的元素&#xff1a;字符串、列表、元组、字典、集合字符串是可以进行for 循环。&#xff08;容器对象&#xff0c;序列&#xff09;可迭代对象iterable 例子&#xff1a; 1 &#xff09;、for遍历字符串&#xff1a; name xiao…

Ubuntu20.04 安装 cudatookit 12.2 + cudnn 安装

最简约的部署Ubuntu20.04深度学习环境的教程 1. 安装Ubuntu20.04 系统 B站详细的安装教程 简约安装版 2. 安装Nvidia显卡驱动 我参考了各种资料&#xff0c;重装系统&#xff0c;完美解决开机显示器黑屏无法进入桌面的情况 黑屏问题主要是由linux内核更新导致&#xff0c;…

携程礼品卡能转出去吗?

携程的卡好像只能在旅游的时候用 像买车票啊&#xff0c;机票啊&#xff0c;酒店&#xff0c;景点门票啥的&#xff0c;但是如果我没有出游计划的话 这个卡是不是就要被闲置下来&#xff1f; 这个问题一直让我感到很苦恼&#xff0c;还好有收卡云&#xff0c;不然我的携程卡…

你还搞不懂串口的格式转换问题吗?

相信大多数人在使用串口传输不同单片机之间的数据时都会运到数据格式怎么对应起来的问题&#xff0c;今天我们就来聊聊&#xff01; 在开始之前我插一个内容&#xff0c;就是不同的单片机之间的电平可能不相同&#xff0c;是不能直接使用杜邦线连接通信的&#xff0c;需要进行电…

centos7搭建zookeeper 集群 1主2从

centos7搭建zookeeper 集群 准备前提规划防火墙开始搭建集群192.168.83.144上传安装包添加环境变量修改zookeeper 的配置 192.168.83.145 和 192.168.83.146 配置 启动 集群 准备 vm 虚拟机centos7系统zookeeper 安装包FinalShell或者其他shell工具 前提 虚拟机安装好3台cen…