【仿真与实物设计】基于51单片机设计的打地鼠游戏机——程序源码原理图proteus仿真图PCB设计文档演示视频元件清单等(文末工程资料下载)
基于51单片机设计的打地鼠游戏机
演示视频:
基于51单片机设计的打地鼠游戏机
功能描述:使用 51单片机为核心制作一个打地鼠游戏机。按下启动开关,8盏LED流水点亮并闪烁2次,随即开始播放游戏音乐,直到开始选择模式。选择的模式在数码管上显示,该游戏机共有两个模式,分别是闯关模式和无尽模式。闯关模式共3关,每通过一关,蜂鸣器就播放一小段音乐以示鼓励,完成闯关后继续播放游戏音乐;无尽模式,顾名思义没有尽头,但显示的最高分为999分。单片机随机生成一个0~6的随机整数到 LED,以表示地鼠冒头。在1秒内按下对应的按钮,即可得1分,蜂鸣器响一声提示;若超时或按错则扣2分,蜂鸣器响两声提示。初始分数为 10分,若分数低于0分则游戏结束。当前分数显示在数码管的后2位,第一位显示的是当前模式。
摘 要
本设计使用AT89S51单片机为核心,设计并实现了一款经典的打地鼠游戏机。系统主要由LED显示模块、蜂鸣器音效模块、按键输入模块、数码管显示模块等硬件组成,并通过单片机的程序控制,实现了游戏的启动、模式选择、随机地鼠生成、按键响应和分数显示等功能。通过此次设计,学生不仅掌握了单片机的基础知识,还深入理解了电子电路的设计与调试。系统通过仿真与实物测试,验证了设计的有效性与稳定性。
关键词: AT89S51,打地鼠游戏机,单片机,LED显示,数码管
目录
摘 要
第一章 绪论
1.1 课题背景
1.2 研究现状
1.3 设计目标
1.4 论文结构
第二章 系统总体设计
2.1 设计思路
2.2 功能模块划分
第三章 硬件设计
3.1 系统硬件结构
3.2 关键元件选型
3.3 硬件电路设计
3.3.1 主控电路设计
3.3.2 LED显示电路设计
第四章 软件设计
4.1 软件功能描述
4.2 主程序流程设计
4.2.1 主程序代码框架
4.3 各子程序模块设计
4.3.1 系统初始化
4.3.2 随机数生成与地鼠位置控制
4.3.3 按键输入检测
4.3.4 分数计算与显示
4.4 游戏模式设计
4.4.1 闯关模式
4.4.2 无尽模式
4.5 按键消抖处理
第五章 仿真与调试
5.1 仿真环境搭建
5.2 功能模块仿真测试
5.2.1 LED显示仿真测试
5.2.2 数码管显示仿真测试
5.2.3 按键输入仿真测试
第六章 总结与展望
6.1 总结
6.2 展望
程序源码&原理图&proteus仿真图&PCB&设计文档&演示视频&元件清单等
资料下载链接:
第一章 绪论
1.1 课题背景
随着单片机技术的迅速发展,基于单片机的电子产品在日常生活中得到了广泛应用,特别是在智能家居、自动化控制以及娱乐设备中,单片机技术的应用越来越普及。本项目基于AT89S51单片机,设计并实现了一款打地鼠游戏机,旨在通过简易的硬件与软件设计,完成一款具备娱乐功能的电子产品。
打地鼠游戏机是一款经典的娱乐设备,玩家通过快速按下按键,模拟捕捉从随机位置冒出的地鼠。此类游戏不仅能够考验玩家的反应速度和手眼协调能力,还能够作为单片机开发的实践项目,帮助初学者掌握单片机的基本原理和应用技能。
1.2 研究现状
在现今的市场上,基于单片机的娱乐设备越来越多,其中打地鼠类游戏因其简单有趣的特点,在各类娱乐设备中占有一席之地。尽管市场上已有一些成熟的打地鼠产品,但它们大多采用复杂的集成电路或专用控制芯片,而本项目则通过较为简易的AT89S51单片机来实现该游戏的基本功能,以便于学习与实践。
1.3 设计目标
本次课程设计的主要目标是利用AT89S51单片机作为核心控制器,设计一个具备闯关模式和无尽模式的打地鼠游戏机。游戏机需具备以下功能:
- 启动与模式选择:按下启动开关,LED灯流水点亮并闪烁2次,播放游戏音乐并开始模式选择。
- 闯关模式:共有3关,每通过一关,蜂鸣器播放提示音。完成闯关后继续播放游戏音乐。
- 无尽模式:无限次游戏,最高分为999分。
- 随机生成地鼠:单片机随机生成0~6的整数,表示LED灯对应的地鼠冒头。玩家需在1秒内按下对应按钮。
- 分数计算:按对加分,按错或超时扣分,初始分数为10分,分数低于0分时游戏结束。
- 分数显示与模式指示:当前分数和游戏模式显示在数码管上。
1.4 论文结构
论文将按照以下结构进行详细讨论:
- 第一章 绪论:介绍课题背景、研究现状以及设计目标。
- 第二章 系统总体设计:概述系统的整体设计思路和功能模块划分。
- 第三章 硬件设计:详细介绍系统的硬件组成部分,包括各个模块的电路设计。
- 第四章 软件设计:描述系统的软件实现,包括主程序、子程序以及各功能模块的逻辑设计。
- 第五章 仿真与调试:进行系统的仿真测试与调试,验证设计的有效性。
- 第六章 总结与展望:总结设计的成果,并对未来的改进方向进行展望。
第二章 系统总体设计
2.1 设计思路
打地鼠游戏机系统的设计主要分为硬件和软件两大部分。硬件部分包括单片机主控电路、LED显示模块、蜂鸣器音效模块、按键输入模块及电源管理模块。软件部分则负责系统的整体逻辑控制,包括游戏的启动、模式选择、随机数生成、按键响应及分数管理。
本系统的设计以模块化为原则,硬件与软件各模块之间通过接口进行连接,方便日后扩展和维护。系统的核心控制器采用AT89S51单片机,通过编程实现对硬件的控制。
2.2 功能模块划分
整个系统按照功能划分为以下几个模块:
-
主控模块:由AT89S51单片机构成,负责控制整个游戏的流程,包括模式选择、分数计算、时间控制等功能。
-
显示模块:包括LED显示和数码管显示。LED用于显示地鼠的位置,数码管用于显示当前得分和游戏模式。
-
按键输入模块:提供玩家的输入接口,玩家通过按键捕捉地鼠,按键输入通过单片机的I/O端口进行检测。
-
蜂鸣器音效模块:用于在玩家按键成功或失败时提供音效提示,增强游戏的趣味性。
-
电源管理模块:为系统提供稳定的工作电压,确保各模块的正常运行。
第三章 硬件设计
原理图如下
PCB如下
3.1 系统硬件结构
本系统的硬件部分由以下几个主要模块组成:
- AT89S51单片机:作为系统的核心控制单元,负责控制整个游戏的流程。
- LED显示模块:由8个LED灯组成,显示地鼠的位置。
- 数码管显示模块:用于显示游戏分数和当前模式。
- 按键模块:包括7个按键,对应地鼠的7个位置,用于玩家输入。
- 蜂鸣器模块:用于播放音效,提示玩家当前操作的成功或失败。
- 电源模块:提供稳定的电源电压,保障系统正常运行。
3.2 关键元件选型
根据元件清单,本系统的关键元件选型如下:
- AT89S51单片机:选择AT89S51单片机作为主控芯片,因其成本低廉,性能稳定,适合于本项目的需求。
- LED灯:选用常规的5mm红色LED灯,用于地鼠位置的显示。
- 数码管:采用共阳极数码管,用于显示当前的游戏分数和模式。
- 按键:使用标准轻触开关,方便用户操作。
- 蜂鸣器:选择小型有源蜂鸣器,方便安装且音效清晰。
- 电源模块:选用7805稳压电源模块,提供5V稳定电压供给系统。
3.3 硬件电路设计
硬件电路设计包括主控电路、显示电路、按键电路和音效电路。各部分电路通过接口连接在一起,形成完整的系统硬件结构。
3.3.1 主控电路设计
主控电路以AT89S51单片机为核心,包括晶振电路、复位电路、I/O接口等。
+--------------------+| AT89S51 || +---------------+ || | P1.0-P1.7 | || +---------------+ || | XTAL1, XTAL2 | || +---------------+ || | RST | |+--------------------+
3.3.2 LED显示电路设计
LED显示电路由8个LED灯组成,每个LED灯通过一个限流电阻连接到单片机的I/O端口。
+--------+| LED1 || |+--------+| R = 330Ω || |+--------+ | P1.0 | +--------+ -> AT89S51| |
第四章 软件设计
4.1 软件功能描述
本系统的软件设计包括游戏启动、模式选择、随机地鼠生成、按键响应和分数计算等功能。软件部分的核心在于如何通过程序控制各个硬件模块
4.2 主程序流程设计
主程序的设计思路是通过一个主循环来不断监控按键输入、随机生成地鼠位置、控制LED显示、检测玩家的按键响应,并根据玩家的操作进行分数计算和游戏状态的切换。
主程序的基本流程如下:
- 初始化系统:包括单片机初始化、LED和数码管显示初始化、蜂鸣器初始化等。通过初始化使各个模块准备就绪。
- 游戏启动:按下启动按键后,LED流水点亮2次,并播放启动音乐,同时进入模式选择界面。
- 模式选择:通过按键选择闯关模式或无尽模式,数码管显示当前模式。
- 游戏循环:
- 随机生成地鼠位置并点亮相应的LED。
- 检测玩家的按键输入,判断是否按对地鼠位置。
- 计算得分或扣分,更新数码管显示。
- 在闯关模式下,根据分数判断是否通过当前关卡;在无尽模式下持续游戏。
- 游戏结束:当分数低于0时,游戏结束,蜂鸣器播放结束音效,数码管显示“End”。
4.2.1 主程序代码框架
#include <reg51.h>void main() {SystemInit(); // 系统初始化while (1) {GameStart(); // 游戏启动及模式选择while (GameRunning()) { // 游戏主循环GenerateRandomMole(); // 生成随机地鼠位置CheckInput(); // 检测玩家按键UpdateScore(); // 更新分数}GameOver(); // 游戏结束处理}
}
4.3 各子程序模块设计
4.3.1 系统初始化
系统初始化函数负责配置单片机的工作状态,初始化LED、数码管、按键、蜂鸣器等模块,为游戏运行做好准备。
void SystemInit() {P1 = 0x00; // LED初始化P2 = 0xFF; // 按键初始化InitBuzzer(); // 蜂鸣器初始化InitTimer(); // 定时器初始化
}
4.3.2 随机数生成与地鼠位置控制
单片机通过定时器和随机数生成算法,生成一个0到6之间的随机数,表示地鼠的位置。根据随机数点亮对应的LED,提示玩家该地鼠的位置。
void GenerateRandomMole() {unsigned char rand_num = GetRandomNumber() % 7;LightUpLED(rand_num); // 点亮对应的LED
}
4.3.3 按键输入检测
在游戏过程中,玩家通过按键输入来捕捉地鼠。按键检测模块会定时扫描各个按键的状态,并与当前地鼠的位置进行对比,判断玩家是否按对。
void CheckInput() {if (P2 == 0xFE) { // 假设按键0被按下if (current_mole == 0) {score++; // 按对加分Beep(1); // 蜂鸣器提示} else {score -= 2; // 按错扣分Beep(2); // 蜂鸣器提示两声}}// 其他按键检测逻辑
}
4.3.4 分数计算与显示
分数由初始的10分开始,按对加1分,按错或超时扣2分。当分数低于0时,游戏结束。分数通过数码管实时显示。
void UpdateScore() {DisplayScoreOn7Seg(score); // 数码管显示当前分数
}
4.4 游戏模式设计
本游戏设计有两种模式:闯关模式和无尽模式。玩家在启动游戏时可以通过按键选择模式,系统根据选择的模式切换相应的游戏逻辑。
4.4.1 闯关模式
闯关模式包含3个关卡,每关都有不同的时间限制或难度。玩家通过每一关时,蜂鸣器播放提示音,并进入下一关。通过所有关卡后,游戏结束并显示“胜利”。
void PlayStageMode() {for (int stage = 1; stage <= 3; stage++) {while (current_stage_score < target_score[stage]) {GenerateRandomMole();CheckInput();UpdateScore();}Beep(1); // 通过关卡提示音}
}
4.4.2 无尽模式
无尽模式没有关卡限制,玩家可以持续游戏,直到分数低于0。最高分为999分,当分数达到上限时,游戏会自动提示并停止计分。
void PlayEndlessMode() {while (score >= 0 && score <= 999) {GenerateRandomMole();CheckInput();UpdateScore();}
}
4.5 按键消抖处理
为了避免按键抖动造成的误操作,程序加入了按键消抖处理,确保每次按键输入的稳定性。
void KeyDebounce() {static unsigned char key_state = 0xFF;static unsigned char key_last_state = 0xFF;key_state = P2; // 读取按键状态if (key_state != key_last_state) {delay_ms(10); // 延时消抖key_last_state = key_state;}
}
第五章 仿真与调试
5.1 仿真环境搭建
本系统的仿真在Proteus仿真软件中完成。Proteus是一款强大的电路设计与仿真工具,通过Proteus可以对设计的电路进行虚拟测试,验证电路功能的正确性。
- 创建电路仿真模型:使用Proteus软件将设计好的电路图搭建在仿真平台上,包含AT89S51单片机、LED、数码管、蜂鸣器、按键等模块。
- 载入程序代码:将Keil编译后的程序代码(.hex文件)加载到Proteus中运行,通过仿真器观察系统的运行情况。
- 测试输入输出:通过Proteus的虚拟按键模拟玩家输入,观察LED和数码管的显示效果,并测试蜂鸣器音效。
5.2 功能模块仿真测试
在仿真测试过程中,首先对各个功能模块进行单独测试,确保每个模块都能够按照设计正常工作。
5.2.1 LED显示仿真测试
测试LED显示模块,生成随机数点亮对应的LED灯,并通过Proteus观察LED灯的亮灭情况。
5.2.2 数码管显示仿真测试
测试数码管的分数显示功能,观察玩家按下按键后分数的实时变化,确保数码管能够正确显示分数。
5.2.3 按键输入仿真测试
通过Proteus的虚拟按键模拟玩家输入,观察按键输入是否能够触发游戏操作,测试按键响应速度和准确性。
第六章 总结与展望
6.1 总结
本设计基于AT89S51单片机,成功实现了一款打地鼠游戏机。通过系统的硬件电路设计和软件逻辑控制,完成了游戏的启动、模式选择、随机生成地鼠、按键响应和分数显示等功能。系统在Proteus仿真平台上经过了严格的测试,结果表明设计具有较高的稳定性和可靠性。
6.2 展望
虽然本系统已具备了基本的游戏功能,但在后续的改进中,仍然有进一步的优化空间。可以考虑增加以下功能:
- 增加更多游戏模式:如计时模式或多人对战模式,丰富游戏玩法。
- 改进音效处理:使用更加复杂的音效提示,提高玩家的游戏体验。
- 优化硬件设计:使用更高效的LED驱动电路,提升显示效果,降低功耗。
未来可以将该设计应用于更多娱乐设备中,结合其他传感器和通信模块,扩展其功能范围。
程序源码&原理图&proteus仿真图&PCB&设计文档&演示视频&元件清单等
资料下载链接:
仿真与实物设计-基于51单片机设计的打地鼠游戏机-程序源码&原理图&proteus仿真图&PCB&设计文档&演示视频&元件清单等资源-CSDN文库https://download.csdn.net/download/m0_61712829/89662269
相关文章:

【仿真与实物设计】基于51单片机设计的打地鼠游戏机——程序源码原理图proteus仿真图PCB设计文档演示视频元件清单等(文末工程资料下载)
基于51单片机设计的打地鼠游戏机 演示视频: 基于51单片机设计的打地鼠游戏机 功能描述:使用 51单片机为核心制作一个打地鼠游戏机。按下启动开关,8盏LED流水点亮并闪烁2次,随即开始播放游戏音乐,直到开始选择模式。选…...

iPhone设备使用技巧:忘记密码的情况下如何解除iOS 18/17屏幕时间
我们给了儿子一部新手机。在尝试擦除旧手机上的所有内容并恢复出厂设置时,它要求提供 4 位屏幕时间密码。我已经尝试了我们会使用的所有可能性,但无法弄清楚。我们如何绕过这个问题或将手机恢复出厂设置以便我们可以出售它? Apple 社区 对于…...

内网渗透的风行者—Yasso
Yasso : Yasso,让内网渗透变得简单而高效。- 精选真开源,释放新价值。 概览 Yasso是由sairson精心打造的内网渗透辅助工具集,它为网络安全专家和渗透测试人员提供了一个功能强大的工作平台。在面对错综复杂的网络环境时ÿ…...

Android13 app后台无法启动Abort background activity starts from
总纲 android13 rom 开发总纲说明 目录 1.前言 2.log分析 3.代码查找分析 4.修改方法 5.编译测试 6彩蛋 1.前言 Android13 用户app后台无法启动,提示Abort background activity starts from 10111 2.log分析 08-07 21:37:36.703: W/ActivityTaskManager(440): Back…...

Day45 | 99.岛屿数量 深搜 广搜 100.岛屿的最大面积
语言 Java 99.岛屿数量 深搜 广搜 99. 岛屿数量 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可…...

css之grid布局(网格布局)
简述: 网格布局顾名思义就是将元素呈现为网状的整齐布局 简单使用: <div><div class"test"><div class"item">1</div><div class"item">2</div><div class"item">…...

数据可视化大屏模板-美化图表
Axure作为一款强大的原型设计软件,不仅擅长构建交互式界面,更在数据可视化方面展现出了非凡的创意与实用性。今天,就让我们一起探索Axure设计的几款精美数据可视化大屏模板,感受数据之美。 立体图表的视觉冲击力 Axure的数据可视…...

【与C++的邂逅】--- 类和对象(中)
Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 与C的邂逅 本篇博客我们将学习类和对象中,认识类的六个默认成员函数以及实现日期类。下图为本节思维导图。 🏠 类的6个默认成员函…...

[数据集][目标检测]瞳孔虹膜检测数据集VOC+YOLO格式8768张2类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):8768 标注数量(xml文件个数):8768 标注数量(txt文件个数):8768 标注…...

Day42 | 739. 每日温度 496.下一个更大元素 I 503.下一个更大元素II
语言 Java 739. 每日温度 每日温度 题目 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该…...
运维大规模K8S集群注意事项
序言 闲来无事,一片混沌,想不清思不断,改变好像来自于各个方面,有的时候是内部的冲突,有的时候是外部的竞争,然而,大部分情况下,一旦错过,就已经没得选了。 尴尬的处境&a…...

供应链系统源码的关键技术是什么?
供应链管理是企业运营中的重要环节,而高效的供应链系统能够大幅提升企业的竞争力。在数字化转型的过程中,越来越多的企业选择使用开源供应链系统源码来定制开发适合自身需求的解决方案。那么,供应链系统源码的关键技术有哪些?本文…...
git 修改远程仓库的 URL
git remote set-url origin 修改远程仓库的 URL。 old:ssh://wangzhijun192.168.10.48:29418/kapok new:http://wangzhijun172.31.178.243:90/kapok git remote set-url origin ssh://wangzhijun172.31.178.243:29418/kapok old:https://120.79.152.225/wuzeyuan/flymap_app n…...
使用图数据库 Neo4j 处理对象之间的关系
使用 Neo4j 图数据库来处理明星之间的关系涉及以下主要步骤:数据建模、数据导入、查询和关系修改。下面是详细的操作步骤: 1. 安装 Neo4j 下载和安装: 从 Neo4j 官方网站 下载 Neo4j Community Edition 或者 Enterprise Edition,安装并启动…...
使用C#的异步和依赖注入实现网络数据存储
详细解释 依赖注入(Dependency Injection): ConfigureServices 方法配置了服务的依赖注入。IDataProcessor 接口与 DataProcessor 类绑定,IDbConnectionFactory 接口与 DbConnectionFactory 类绑定。这样在程序运行时,依赖注入容器…...
tomcat日志文件切割
文章目录 引言I 使用用crontab工具,定时执行任务II 通过Linux系统自带的切割工具logrotate来进行切割logrotate 简介用法结合crontab进行自定义的定时轮转操作III 基于其他日志框架进行分隔引言 tomcat 的 catalina.out 文件不会进行日志切割,当这个文件大于2G 时,会影响to…...
Python将Word文档转为PDF
使用python将word转pdf_py work转pdf-CSDN博客 掌握Python技巧:PDF文件的加密和水印处理-CSDN博客...

深入浅出链表
目录 1.链表的基本概念及结构 1.1基本概念 1.2结构 2.链表的分类 3.链表的实现(循环链表增删查改实现) 1.动态申请节点(结点)编辑 2.单链表打印 3.单链表尾插 4.单链表头插 5.单链表尾删 6.单链表头删 7.单链表查找 …...
Linux核心命令入门
Linux常用命令 文件管理文件目录管理文件查看编辑 系统管理网络管理hostnamehost/nslookuptraceroutenetstat列出所有端口 (包括监听和未监听的)列出所有处于监听状态的 Sockets显示每个协议的统计信息 硬件管理df(Disk Free)du(Disk Usage&a…...

腾讯无界微前端框架介绍
一、无界微前端框架概述 无界微前端框架是由腾讯团队推出的,旨在解决现有微前端方案中存在的问题,如适配成本高、样式隔离困难、运行性能不佳、页面白屏、子应用通信复杂、子应用保活机制缺乏等。 技术实现 无界微前端的核心技术是基于Web Component…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...
MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用
文章目录 一、背景知识:什么是 B-Tree 和 BTree? B-Tree(平衡多路查找树) BTree(B-Tree 的变种) 二、结构对比:一张图看懂 三、为什么 MySQL InnoDB 选择 BTree? 1. 范围查询更快 2…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
十九、【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建
【用户管理与权限 - 篇一】后端基础:用户列表与角色模型的初步构建 前言准备工作第一部分:回顾 Django 内置的 `User` 模型第二部分:设计并创建 `Role` 和 `UserProfile` 模型第三部分:创建 Serializers第四部分:创建 ViewSets第五部分:注册 API 路由第六部分:后端初步测…...