# 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物联网,一个物联网专业学生的持续更新的学习记录*
[](https://github.com/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 版本、晶振、编码、预期现象与实际现象。