ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

51单片机入门

2026/9/8 16:31:51 拓冰建站 浏览量
51单片机入门 一、单片机及开发板介绍一型号和参数MCUMicrocontroller Unit是内部集成了CPUCentral Processing Unit、RAMRandom Access Memory、ROMRead Only Memory、定时器、中断系统、通讯接口等一系列功能的单片机。1. 三大基本任务信息采集传感器信号处理cpu运行程序硬件设备控制如LED、电机等2. STC89C52单片机与51单片机stc98c52属于51系列。51单片机是所有兼容英特尔8051内核单片机的统称与具体型号结尾数字无关。3. 命名规则STC89C52STC公司名89系列C工作电压范围52具体型号。52结尾程序空间8K和RAM512字节。35I/C型号后缀工作频率最大可达35MHz与 温度范围标识Industrial工业级工作温度-40 ~85℃commercial商业级工作温度0 ~70℃DIP40与PDIP两者一样是双列直插封装后面数字代表引脚数。三结构与系统1. 内部结构8051内核与外围设备8051内核是整个51系列单片机的心脏外设集成在同一芯片中。外设Flash ROM存储程序、看门狗防止程序跑飞类似看家狗、复位电路、串口等通讯接口、IO口引出到外部的引脚Input/Output、SRAMwatchdog是一种RAM静态随机存取存储器、Flash闪存注意和Flash ROM概念上相关这里老师将FLASH用作非易失性存储。整个芯片内核和外设看起来只是黑色方块内部却有完整的计算机系统。2. 管脚图引脚排列与分组IO口按P0~P3分组每组8个引脚对应8位数据宽度。电源引脚正极VCCVoltage Common Collector和负极GNDGround电源地负极0V参考点外部晶振输入XTAL1和XTAL23. 最小系统1电源供电与滤波电路电源电路给单片机提供能量电容滤波保障稳定。4. 最小系统2晶振电路高电平复位RSTreset引脚复位电路利用电容上电瞬间短路使RST短暂为高电平实现可靠复位。5. 最小系统3复位电路RC电路上电VCC→电容→RSTRST与地之间接电阻。三开发板功能介绍1. LED灯LED灯发光二极管单片机可以通过IO口控制LED亮灭做出流水灯实验。2. 按键下方有黑色按键分为独立按键和矩阵按键用来接收用户输入按不同键触发不同功能后续课程会具体讲解按键检测、消抖等内容。3. 红外与无线电左侧有红外接收头配合板子第二层的红外遥控器可以接收遥控信号例如自己DIY万能遥控器去控制空调电视学习单片机后很实用。无线模块支持2.4G无线通信像无线鼠标一样。二、完整项目流程一选模板、创项目点击 EIDE → 新建项目 → 选择“8051 Empty Project (SDCC)” → 选芯片型号如 STC89C52RC→ 选保存位置 → 点击创建。二配置工具链假设要把编译器改成 Keil C51打开.eide/eide.json→ 把toolchain: SDCC改成toolchain: Keil_C51→ 保存。文件用途.eide/eide.json这是项目的核心配置文件。里面定义了toolchain用哪个编译器SDCC / Keil_C51,srcDirs源代码放在哪个文件夹 ,outDir编译后的 .hex 输出到哪个文件夹 ,uploadConfig烧录时执行的命令三添加头文件src/main.c文件里有一行#include reg52.h。文件用途inc/reg52.h这是 51 单片机的 “寄存器地址字典”。它告诉编译器P2对应的物理地址是0xA0,P1对应的物理地址是0x90。没有它你写的 P2 0xFE 编译器根本不认识。四写代码在src/main.c里写代码保存五编译vscode左下角有Build编译按钮会产生一个.hex文件六烧录方式一EIDE自带的stcflash烧录——vscode左下角有Flash烧录按钮方式二stcgal工具命令行烧录——cmd命令stcgal -P stc89 -p COM5 -b 2400 你的项目路径/build/Debug/项目名.hex第二步冷启动——看到Waiting for MCU, please cycle power时给开发板断电再上电等待烧录完成。附文件结构你的项目文件夹/│ ├──.eide/← EIDE 的工作区编译中间产物放这里不用管 │ ├──.vscode/← VS Code 的编辑器设置不用管 │ ├── inc/← 头文件目录放.h 文件 │ └── reg52.h ← 寄存器地址定义编译器靠它认识 P0、P1... │ ├── src/← 源代码目录放.c 文件 │ └── main.c ← ★★★★★ 你写代码的地方 ★★★★★ │ ├── tools/← 辅助工具脚本可选 │ └── stcflash.py ← 另一种烧录脚本用 stcgal 可忽略 │ ├── build/← 编译后自动生成所有产物都在这 │ └── Debug/← 编译产物文件夹 │ ├── 项目名.hex ← ★★★★★ 烧录到芯片的文件 ★★★★★ │ ├── 项目名.map ← 内存地址映射表调试用 │ └──...← 其他临时文件不用管 │ ├──.gitignore ← Git 忽略列表告诉 Git 别备份 build/ ├── eide.json ← ★★★★★ 项目核心配置 ★★★★★ │ ← 编译器型号、烧录命令都写在这 ├── README.md ← 项目说明可写可不写 └── xxx.code-workspace ← 工作区快照双击打开项目三、点亮LED1. 观察原理图分析二极管左边已接正极要想LED亮右边则接低电平为0要LED不亮右边则接高电平为1.所以P2端点应为1111 1110换算成十六进制0xFE#includereg52.h// 硬件寄存器映射头文件--51 单片机硬件地址的查表手册voidmain(){P20xFE;}