一、嵌入式核心概念定义
嵌入式系统是一种以应用为中心、以计算机技术为基础的专用计算机系统,其软硬件可根据具体需求进行裁剪。核心特点包括:
- 针对性强:针对特定应用场景设计,如工业控制、家电控制等。
- 可定制化:支持软硬件模块化配置,以适应不同性能要求。
二、51单片机基础
51单片机是嵌入式领域的入门级微控制器,起源于Intel的MCS-51系列(1980年推出),核心型号为8051。下面分点介绍其发展、概念和硬件。
(一)发展与型号起源
- 起源:1980年Intel推出MCS-51系列,标志着从MCU向CPU市场的转型。
- 主流衍生型号 :
- Atmel:AT89C51(经典基础型号)。
- Philip:P89V51(增强型,支持ISP在线编程)。
- STC(宏晶半导体):STC89C51、STC89C52、STC89C52RC(常用主流型号)。
(二)核心相关概念缩写
以下是嵌入式系统中常见缩写及其定义:
| 缩写 | 全称 | 核心定义与特性 | 应用场景 |
|---|---|---|---|
| MCU | Micro Controller Unit(微控制器) | 集成度高,单芯片集成 CPU、RAM、ROM、IO 控制器、UART 控制器、定时器、中断系统;成本低 | 简单控制场景,如家电控制 |
| CPU | Central Processing Unit(中央处理器) | 核心功能是数据运算、指令处理;性能决定运算速度 | 所有需要数据处理的电子设备核心,如PC |
| MPU | Micro Processing Unit(微处理器) | 集成度低,仅含 CPU 模块;需外接存储、外设;成本高 | 复杂应用,如可运行 Linux 系统的设备 |
| GPU | Graphics Processing Unit(图像处理单元) | 专注图形数据处理、图像渲染;性能决定图像处理质量 | 图像显示、渲染相关设备,如游戏机 |
| NPU | Neural Processing Unit(神经网络处理单元) | 负责 AI 推理、硬件加速、神经网络处理 | AI 相关设备,如华为达芬奇 NPU 用于照片优化 |
| FPU | Float Point Unit(浮点数单元) | 专门完成浮点数运算(遵循 IEEE754 标准),集成在 CPU 内部 | 需浮点数计算的场景,如科学计算 |
| SOC | System On Chip(片上系统) | 将多个功能芯片集成到单块芯片中,集成度极高 | 高端嵌入式设备、智能手机等 |
| ROM | Read-Only Memory(只读存储器) | 存放单片机程序和指令,掉电后数据不丢失 | 存储固定程序、固件 |
| RAM | Random Access Memory(随机访问存储器) | 存放程序运行过程中的变量,掉电后数据丢失;51单片机片内RAM为256byte | 程序运行时的数据临时存储 |
(三)51单片机芯片与开发板
- 常见开发板型号:HC6800-MS、普中51-MS(配套PDF原理图)。
- 核心芯片参数(以STC89C52RC为例) :
- 封装形式:DIP40(双列直插式)。
- 引脚分组:4组8位引脚(P0_0-P0_7、P1_0-P1_7、P2_0-P2_7、P3_0-P3_7)。
- 引脚特性:相同网络编号的引脚在实际电路中互通,简化连线设计。
三、核心硬件模块
硬件模块是51单片机系统的物理基础,下面介绍常见模块的工作原理。
(一)发光二极管(LED)
- 二极管基础:具有阳极和阴极,遵循单向导通性(电流从阳极流向阴极)。
- 共阳极二极管原理:所有LED阳极连接VCC(高电平),阴极接单片机引脚;当单片机引脚输出低电平时,满足导通条件,LED点亮。
- 硬件形态:常见"水灯"模块(含D1-D7等多个LED),用于视觉指示。
(二)数码管
- 硬件规格:51单片机常用4位共阴极数码管,每位可独立显示0-9等数值,同一时刻仅能点亮1位。
- 显示原理 :
- 位选:通过NPN三极管基极(P10-P13引脚)输出高电平,选中目标数码管。
- 段选:给对应段引脚输出高电平,点亮数码管对应段(显示特定数值)。
- 动态显示技术:利用人眼视觉暂留效应(余晖效应),快速刷新不同位数码管的显示内容,实现"同时亮"的视觉效果。
- NPN三极管导通条件:基极输入高电平(如P10引脚输出高电平)。
(三)逻辑分析仪
- 功能:以方波形式采集单片机引脚的电平变化,用于调试信号时序。
- 关键参数:24MHz采样率,8通道(CH0-CH7)。
- 连接方式 :
- 通道连接:通过杜邦线将CH0-CH7与单片机目标引脚连接。
- 共地连接:逻辑分析仪GND与单片机GND通过杜邦线连接。
- 操作流程 :
- 连接成功标识:显示"Logic 2 [Logic - Connected] [Session 0]"。
- 核心操作:新建调试窗口(Session按钮)、设置通道和速率(Device Setting)、抓取波形(开始按钮)。
四、核心软件知识
软件知识包括位运算和开发流程,是51单片机编程的核心。
(一)位运算(51单片机编程核心)
位运算用于直接操作寄存器位,提高效率。以下是常用运算符:
| 运算符 | 名称 | 核心特性 | 应用场景 | 示例代码 |
|---|---|---|---|---|
| | | 按位或 | 对应位有1则结果为1,全0则0 | 指定位置1,其余位不变 | 将t的bit0置1:`t |
| & | 按位与 | 对应位全1则结果为1,有0则0 | 指定位清0,其余位不变 | 将t的bit2清0:t &= ~(1 << 2); |
| ^ | 按位异或 | 对应位相同则0,不同则1 | 电平翻转 | - |
| ~ | 按位取反 | 对应位bit翻转(0变1,1变0) | - | - |
位运算练习:
-
已知
unsigned char t = 0x64(二进制:01100100_2),将bit0和bit7置1:ct |= (1 << 0) | (1 << 7); // 结果:$11100101_2$ -
已知
unsigned char t = 0xFF(二进制:11111111_2),将bit2和bit6清0:ct &= ~(1 << 2); t &= ~(1 << 6); // 结果:$10111011_2$
(二)51单片机程序开发流程(Keil4+ISP)
开发流程包括环境搭建、工程创建、程序编写、编译和下载。
-
开发环境搭建:
- 安装软件:Keil4(C51V901版本)。
- 核心设置:安装完成后启动uVision4。
-
新建工程:
- 点击 Project → New uVision Project,选择存储目录并命名。
- 选择芯片型号:Atmel → AT89C51。
- 弹出启动代码提示时,选择"否"(不添加标准8051启动代码)。
- 新建.c文件(如main.c),添加到Source Group1目录下。
-
程序编写与编译:
- 编写C语言程序:核心逻辑控制引脚电平,实现硬件功能。
- 编译设置:点击 Options for Target → Output → 勾选"Create Hex File"(生成可下载文件)。
- 点击左上角Build按钮,完成编译(无错误则生成.hex文件)。
-
程序下载(ISP下载):
- 硬件连接:连接串口线(USB-SERIAL CH340等)。
- 串口确认:在设备管理器中查看串口编号(如COM3)。
- ISP软件操作:
- 打开ISP软件,选择芯片型号(如STC89C52RC)。
- 选择串口端口(如COM3),扫描确认连接。
- 打开编译生成的.hex文件。
- 点击"下载/编程",同时将开发板复位。
- 验证:观察开发板硬件现象(如LED点亮、数码管显示)。
五、重点考点与核心要求
- 概念区分:CPU、MCU、MPU、GPU、NPU、FPU、SOC的定义与差异(参考第二部分)。
- 硬件核心 :
- 51单片机片内资源:256byte RAM、ROM功能等。
- 共阳极LED导通原理:输出低电平点亮。
- 4位共阴极数码管的显示原理与动态显示技术。
- NPN三极管导通条件:基极输入高电平。