# mcu-archive **Repository Path**: readant/mcu-archive ## Basic Information - **Project Name**: mcu-archive - **Description**: No description available - **Primary Language**: C - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-09-25 - **Last Updated**: 2026-09-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 
# 🌱 我的嵌入式学习档案 *从51单片机到ESP32物联网,一个物联网专业学生的持续更新的学习记录* [![GitHub last commit](https://img.shields.io/github/last-commit/readant/mcu-archive)](https://github.com/readant/mcu-archive) [![GitHub repo size](https://img.shields.io/github/repo-size/readant/mcu-archive)](https://github.com/readant/mcu-archive) **[🚀 快速开始](#-从哪开始)** · **[🧰 环境与编码](#-环境与编码约定)** · **[📖 精选项目](#-精选项目)** · **[📺 视频与动态](#-视频与动态)** · **[⚖️ 版权说明](#️-来源与版权分层)**
--- ## 🧰 环境与编码约定 > 克隆后请先按本表对齐环境。跑不起来时,优先对照本表排查——这些坑我自己都踩过;还不行就开 Issue,把现象发我一起看。 > **C51/C52 仿真与开发环境统一为:Keil uVision4(Keil4)+ Proteus 7.8**(便于资源传播与版本兼容)。 | 项目 | 约定 | 说明 | | :--- | :--- | :--- | | 芯片 | AT89C51 / STC89C52RC | C51 仿真常用 AT89C51;C52 实物为普中板 STC89C52 | | 工具链 | **Keil uVision4(C51 / Keil4)** | 为方便资源传播与多环境兼容,不采用 uVision5;本仓库只提供源码,请自行新建工程 | | 仿真 | **Proteus 7.8** | 综合项目 / 实战训练 / 课本实验含 `.DSN`;`学习_实例` 为纯源码。优先用 7.8 打开 | | 晶振 | 以各项目 README 元数据表为准 | 常见 11.0592MHz 或 12MHz,写错会导致延时/串口波特率偏差 | | 源码编码 | **C51/C52:GBK(ANSI)** | 中文 Windows + Keil 场景;GitHub 网页可能显示乱码,属预期 | | 文档编码 | UTF-8 | 所有 `.md` 为 UTF-8 | | 本地编辑器 | 已提供 `.vscode/settings.json` | VS Code 打开 `.c` 会自动按 GBK 解码 | | ESP32 阶段 | **UTF-8** | 与 C51 分轨,勿混用 | > **为什么是 Keil4 + Proteus 7.8?** > 教程、例程、论坛资源大量基于这两款旧版环境;它们更易获取,也更能打开各种历史工程/电路,利于学习资源的传播与复用。后续 C51/C52 文档中的工具链约定均以此为准。 ### 10 分钟跑通第一颗 LED(推荐入口) 1. 安装 **Keil uVision4** + **Proteus 7.8** 2. 打开 [C51/学习_实例/01-LED控制/01-LED单灯闪烁](./C51/学习_实例/01-LED控制/01-LED单灯闪烁) 3. 新建 Keil4 工程(芯片选 AT89C51),把 `c/main.c` 加入工程并编译 4. 用 Proteus 7.8 搭最小系统 + LED(或直接从综合项目里挑一个现成 `.DSN`),加载生成的 `.hex` 仿真 > 详细图文见各精选项目 README 的「快速上手」。请用 **Keil4** 按下方步骤自行新建工程后再编译。 --- ## 🗺️ 三阶段学习路径 | 阶段 | 芯片 | 硬件 | 状态 | 适合谁 | | :--- | :--- | :--- | :--- | :--- | | [一阶 · 仿真](./C51) | AT89C51 | Proteus 7.8 虚拟仿真 · Keil4 | ✅ 已归档 | 刚入门,想理解底层原理 | | [二阶 · 实物](./C52) | STC89C52 | 普中开发板(真机) | 🚧 进行中 | 有51基础,想上手实物 | | [三阶 · 物联网](./ESP32-S3) | ESP32-S3 | 正点原子开发板 | 🚧 跟着例程学习中 | 想做IoT项目,连接云平台 | --- ## 🧭 从哪开始? **我是新手,刚接触单片机** → [C51/](./C51) — 从仿真开始,零成本入门;[156 个整理实例](./C51/学习_实例)(纯源码 + 分类索引,需自建 Keil 工程) **我学过51,想动手做实物** → [C52/](./C52) — 普中开发板,真实硬件体验,从 Hello World 到万年历 **我想学物联网/WiFi/MQTT** → [ESP32-S3/](./ESP32-S3) — 仓库里收集了正点原子的例程:FreeRTOS、WiFi、摄像头、LVGL、Arduino(LED/OLED/TFT)。其中 TFT 彩屏是我自己调通的,其余跟着例程跑过、还在消化,不敢说都搞懂了 --- ## 📌 精选项目 > 这些是文档最完整的项目。每个 README 顶部有**统一元数据表**(芯片 / 工具链 / 仿真 / 晶振 / 编码 / 验证状态 / 预期现象)。
### 🔢 C51 · 16路抢答器 **含 7 步分阶段拆解,仿真电路与截图齐全** **你将学到:** - 矩阵键盘扫描原理 - 数码管动态显示 - 状态跳转逻辑 - 中断与定时器配合 📂 [查看项目](./C51/综合项目/综合项目二16路抢答器) ### 📅 C52 · LCD1602万年历 **普中开发板上的完整实物项目(另有 Proteus 仿真)** **你将学到:** - LCD1602驱动与显示控制 - DS1302实时时钟读写 - DS18B20温度采集(状态机非阻塞设计) - 按键消抖与时间设置逻辑 📂 [查看项目](./C52/1602/02-万年历)
### 🔒 C51 · 简易密码锁 **LCD1602 + 矩阵键盘,含仿真电路** 📂 [查看项目](./C51/综合项目/综合项目四简易密码锁) ### 📚 C51 · 课本 12 实验 **教材配套实验,含 `.DSN`,快速上手步骤已写清** 📂 [查看项目](./C51/课本案例_实验)
--- ## 📺 视频与动态 **📱 抖音(已更新,日常调试片段)** —— 平时会把"终于点亮了""终于调通了"这种瞬间剪成十几二十秒的小视频发上去,最近在调 ESP32-S3 的 TFT 彩屏。 👉 抖音主页:[**点我看调试日常**](https://v.douyin.com/naZN-Sqf5OU/) **📺 B 站(长视频教程,计划中,尚未开始)** —— 打算把主要项目完整录一遍,但目前一个都还没录。先留个位置,真做出来再补;万一鸽了,就当这段不存在。 | 项目 | 状态 | | :--- | :--- | | LCD1602 万年历(从仿真到实物) | 📋 计划中 | | ESP32-S3 环境搭建 | 📋 计划中 | | 16 路抢答器仿真设计 | 📋 计划中 | 👉 [我的 B 站主页](https://space.bilibili.com/3493112567564832) · 现在基本还是空的,发了视频会回来更新链接 --- ## 🛠️ 工具清单 | 干什么 | 用什么 | 备注 | | :--- | :--- | :--- | | 写51代码 | **Keil uVision4(Keil4)** | 资源兼容性好,教程多 | | 烧录51 | STC-ISP | **冷启动**:先点下载,再给板子上电 | | 仿真验证 | **Proteus 7.8** | 不用买硬件也能学;优先用 7.8 打开仓库 `.DSN` | | 写ESP32 | Arduino IDE / VS Code + ESP-IDF | 入门用Arduino,进阶用ESP-IDF;源码请用 UTF-8 | | 电路设计 | NI Multisim / 嘉立创EDA | 画原理图和PCB;C51 仿真以 **Proteus 7.8** 为准 | --- ## 📚 学习资源速查 ### C51 阶段 · 学习实例库 > 📂 **完整实例库 → [C51/学习_实例](./C51/学习_实例)** > 19 个分类、**156 个实例**。每个分类有索引 README;**部分标杆实例**另有独立说明(功能 / 接线 / 要点)。 > 实例为**纯 `.c` 源码**(目录 `c/`),**不附带** Proteus 电路与 Keil 工程,需自建工程编译。 | 分类 | 实例数 | 分类 | 实例数 | | :--- | :--- | :--- | :--- | | [LED控制](./C51/学习_实例/01-LED控制) | 12 | [电机与控制](./C51/学习_实例/11-电机与控制) | 10 | | [数码管显示](./C51/学习_实例/02-数码管显示) | 13 | [综合应用](./C51/学习_实例/12-综合应用) | 10 | | [LCD液晶显示](./C51/学习_实例/03-LCD液晶显示) | 10 | [LED点阵](./C51/学习_实例/13-LED点阵) | 6 | | [按键输入](./C51/学习_实例/04-按键输入) | 10 | [红外遥控](./C51/学习_实例/14-红外遥控) | 4 | | [定时器与中断](./C51/学习_实例/05-定时器与中断) | 12 | [C语言基础](./C51/学习_实例/15-C语言基础) | 7 | | [串口通信](./C51/学习_实例/06-串口通信) | 8 | [基础工具函数](./C51/学习_实例/16-基础工具函数) | 3 | | [传感器应用](./C51/学习_实例/07-传感器应用) | 11 | [IO扩展与接口芯片](./C51/学习_实例/17-IO扩展与接口芯片) | 6 | | [AD与DA转换](./C51/学习_实例/08-AD与DA转换) | 8 | [通信协议与总线](./C51/学习_实例/18-通信协议与总线) | 6 | | [存储器与时钟](./C51/学习_实例/09-存储器与时钟) | 8 | [无线通信与RFID](./C51/学习_实例/19-无线通信与RFID) | 4 | | [声音与音乐](./C51/学习_实例/10-声音与音乐) | 8 | **合计** | **156** | > **关于仿真工程**:仓库提供 **42 个 Proteus 仿真电路**(`.DSN`),按目录分布: > [课本案例_实验](./C51/课本案例_实验) 19 · [综合项目](./C51/综合项目) 10 · [实战训练](./C51/实战训练) 6 · > [todo51](./C51/todo51) 4 · 课本案例章节 2 · [C52 万年历](./C52/1602/02-万年历) 1 —— 均可直接用 Proteus 打开。 > (`C51/学习_实例` 是**纯源码**,没有附带电路图,需要自己搭,我也会逐渐完善。) > > **关于第三方资料**:另收集的 350+ 份论坛/随书例程因版权**未包含在本仓库中**。 > 上面的 156 个实例是在自学资料基础上整理、加注的版本,详见 [来源与版权分层](#️-来源与版权分层)。 ### C52 阶段(实物项目) | 项目 | 外设 | 难度 | 验证状态 | | :--- | :--- | :--- | :--- | | LCD1602基础测试 | LCD1602 | ⭐ | 已实物点亮 | | [万年历](./C52/1602/02-万年历) | LCD1602 + DS1302 + DS18B20 | ⭐⭐⭐ | 已实物验证 | ### ESP32-S3 阶段(物联网) | 模块 | 内容 | 状态 | | :--- | :--- | :--- | | [FreeRTOS](./ESP32-S3/ESP-IDF-v5.3.x/02-扩展例程-IDF版/FreeRTOS) | 任务 / 队列 / 信号量 / 事件组 / 任务通知(18 个实验) | 📚 跟着例程跑过,学习中 | | [WiFi 与网络](./ESP32-S3/ESP-IDF-v5.3.x/02-扩展例程-IDF版/WiFi) | STA / AP / SmartConfig / TCP / UDP / MQTT 上云 / 网络摄像头(9 个实验) | 📚 跟着例程跑过,学习中 | | [摄像头与显示](./ESP32-S3/ESP-IDF-v5.3.x/01-基础例程-camera) | OV 摄像头采集 + SPI LCD 显示 | 📚 跟着例程跑过 | | [LVGL](./ESP32-S3/ESP-IDF-v5.3.x/02-扩展例程-IDF版/LVGL) | RGB 屏驱动 + LVGL 移植 + 触摸 | 📚 跟着例程跑过 | | [Arduino 入门](./ESP32-S3/Arduino) | 串口 / LED / 按键 → OLED → TFT 彩屏(11 个 sketch) | ✅ 已跑通(TFT 彩屏自己调通) | | [TFT 坦克大战](./ESP32-S3/Arduino/alientek-dnesp32s3/03-tft/TFT_TankBattle) | 红外遥控器 + TFT 像素游戏:坦克移动/开火、敌方 AI、砖墙、爆炸特效 | ✅ 自己写的第一个游戏 | | [AI 应用](./ESP32-S3/ESP-IDF-v5.3.x/02-扩展例程-IDF版/AI) · [小智 AI](./ESP32-S3/ESP-IDF-v5.3.x/03-xiaozhi-ai) | esp-who 人脸识别、小智 AI 语音助手 | 🚧 学习中 | | 物联网项目 | 智能环境监测、远程控制、数据看板 | 📋 计划中 | --- ## ⚖️ 来源与版权分层 本仓库内容来源不同,**不能一概用同一许可证理解**: | 层级 | 范围(示例) | 说明 | | :--- | :--- | :--- | | **以自写为主** | C52 万年历、综合项目拆解笔记、阶段 README、踩坑整理 | 作者原创整理,整体采用根目录 [MIT License](./LICENSE) | | **整理 / 注释版** | `C51/学习_实例` 等 | 基于论坛、教材、公开例程学习后重写注释与结构,**仅供学习参考**;原始版权归原作者 | 部分第三方原始资料因版权未收录进本仓库;若你是原作者且认为整理版仍需下架或补充署名,请开 [Issue](https://github.com/readant/mcu-archive/issues) 联系。 --- ## 💭 写在最后 > 学单片机最大的成就感,不是代码编译通过了,而是—— > 你对着代码和电路图debug了两小时,突然发现是杜邦线松了。 > > 然后你笑了,因为你终于知道什么叫"硬件工程师的日常"。 这个仓库会一直更新下去。如果哪天你看到ESP32-S3下面堆满了项目,说明我又熬夜了。 --- ## ⭐ 如果这个仓库对你有帮助 - **Star** ⭐ — 让更多人看到这份学习档案 - **Fork** 🍴 — 拿去做你自己的学习模板 - **Watch** 👀 — 订阅更新,见证一个菜鸟的成长 也欢迎提 [Issue](https://github.com/readant/mcu-archive/issues) 交流 — 技术问题、学习困惑、甚至只是想吐槽,都可以。反馈跑不起来时,请尽量附上:芯片型号、Keil/Proteus 版本、晶振、编码、预期现象与实际现象。