嵌入式与51单片机学习
一、嵌入式系统
1. 核心概念
-
定义:以应用为中心,以计算机技术为基础,软硬件可裁剪的专用计算机系统
-
特点:
-
专用性强,针对特定应用场景
-
资源受限(处理器、内存、存储)
-
实时性要求高
-
低功耗设计
-
高可靠性
-
二、51单片机发展历程
1. 起源
-
1980年:Intel公司推出MCS-51系列(8051型号)
-
Intel从MCU市场转型至CPU市场
2. 主要厂商及产品
| 厂商 | 代表型号 | 特点 |
|---|---|---|
| Atmel | AT89C51 | 经典兼容型号 |
| Philips | P89V51 | 增强型,支持ISP在线编程 |
| STC | STC89C51/52/52RC | 宏晶半导体,市场主流 |
三、相关核心概念详解
1. MCU(Micro Controller Unit)
-
中文:微控制器
-
特点:
-
集成度高,单芯片集成所有功能
-
包含:CPU、RAM、ROM、I/O控制器、UART、定时器、中断系统
-
成本低,适用于简单控制任务
-
2. CPU(Central Processing Unit)
-
中文:中央处理器
-
功能:数据运算、指令处理
-
性能指标:运算速度越快,数据处理能力越强
3. MPU(Micro Processing Unit)
-
中文:微处理器
-
特点:
-
集成度低,只有CPU核心
-
需要外接功能模块(存储器、外设)
-
成本高,适用于复杂应用
-
可运行Linux等操作系统
-
4. 其他处理单元
| 缩写 | 全称 | 功能 |
|---|---|---|
| GPU | Graphics Processing Unit | 图形处理、图像渲染 |
| NPU | Neural Processing Unit | AI推理、神经网络加速 |
| FPU | Float Point Unit | 浮点数运算处理 |
| SOC | System On Chip | 多芯片功能集成到单芯片 |
5. 存储器类型
-
ROM(Read-Only Memory)
-
只读存储器
-
存储单片机程序和指令
-
掉电后数据不丢失
-
-
RAM(Random Access Memory)
-
随机访问存储器
-
存储程序运行时的变量
-
掉电后数据丢失
-
51单片机典型配置:256字节片内RAM
-
四、51单片机硬件结构
1. 典型开发板型号
-
HC6800-MS

-
普中51-MS

2. STC89C52RC芯片
-
封装:DIP40(双列直插式,40引脚)
-
引脚分组:
-
P0组:P0.0 - P0.7
-
P1组:P1.0 - P1.7
-
P2组:P2.0 - P2.7
-
P3组:P3.0 - P3.7
-
3. 网络编号
-
原理图中相同网络编号的引脚在电路上相互连通
-
简化电路布线设计
五、发光二极管(LED)原理
1. 二极管基本特性
-
结构:阳极(正极)、阴极(负极)
-
特性:单向导电性
2. 共阳极连接方式
-
接线方式:
-
所有LED阳极连接到VCC(电源正极)
-
阴极连接到单片机I/O引脚
-
-
控制原理:
-
单片机引脚输出低电平(0)时,LED点亮
-
单片机引脚输出高电平(1)时,LED熄灭
-
-
电流方向:从阳极流向阴极,符合单向导电性
六、位运算详解
1. 位运算符及应用
| 运算符 | 名称 | 特性 | 应用场景 |
|---|---|---|---|
| | | 按位或 | 对应位有1则1 | 指定位置1,其余位不变 |
| & | 按位与 | 对应位都1则1 | 指定位清0,其余位不变 |
| ^ | 按位异或 | 相同为0,相异为1 | 电平翻转、数据加密 |
| ~ | 按位取反 | 每位bit翻转 | 求反码、状态反转 |
2. 位操作技巧
-
置位操作 :
变量 |= (1 << 位置) -
清零操作 :
变量 &= ~(1 << 位置) -
翻转操作 :
变量 ^= (1 << 位置)
3. 练习题
-
unsigned char t = 0x64;// 二进制:0110 0100-
将bit0和bit7置1:
t |= (1 << 0) | (1 << 7);// 结果:1000 0101 (0x85)
-
-
unsigned char t = 0xFF;// 二进制:1111 1111-
将bit2和bit6清0:
t &= ~(1 << 2); t &= ~(1 << 6);// 结果:1011 1011 (0xBB)
-
七、51单片机开发流程
1. 开发环境搭建
-
软件安装:Keil μVision 4
-
芯片支持:需要安装对应芯片的库文件
2. 工程创建步骤
-
打开Keil4 → Project → New Project
-
选择存储路径和工程名
-
选择芯片型号:Atmel → AT89C51
-
不添加启动代码(选"否")
-
添加源文件到工程
-
编写程序代码
3. 编译与下载
-
编译设置:
-
勾选"Create HEX File"
-
点击Build按钮编译
-
-
程序下载:
-
连接串口线(开发板-计算机)
-
查看设备管理器确认COM端口
-
打开ISP下载软件
-
选择芯片型号和COM端口
-
载入生成的HEX文件
-
点击下载,复位开发板
-
观察硬件运行现象
-
八、逻辑分析仪使用
1. 硬件连接
-
通道连接:CH0-CH7通过杜邦线连接到待测引脚
-
地线连接:GND连接到单片机GND
-
连接确认:连接成功后软件会显示识别信息
2. 软件操作
-
新建窗口:点击新建调试窗口按钮
-
设备设置:
-
设置采样通道(选择使用的通道)
-
设置采样速率(根据信号频率调整)
-
-
开始采集:点击开始按钮抓取波形
-
波形分析:观察引脚电平随时间变化情况
九、数码管显示技术
1. 数码管基本结构
-
51开发板配置:4位共阴极数码管
-
显示限制:同一时刻只能点亮一位数码管
2. 数码管显示原理
-
共阴极连接:
-
所有数码管阴极连接在一起接地
-
阳极通过限流电阻连接到单片机引脚
-
阳极输出高电平点亮对应段
-
-
控制流程:
-
位选:选择要点亮的数码管位(控制P1.0-P1.3)
-
段选:设置要显示的数值(控制对应段引脚)
-
3. 动态显示技术
-
原理:利用人眼视觉暂留效应(余晖效应)
-
实现方法:
-
显示第一位数字,短暂延时
-
关闭第一位,显示第二位,短暂延时
-
重复快速切换,形成"同时"显示效果
-
-
刷新频率:通常50-100Hz,避免闪烁
4. NPN三极管驱动
-
导通条件:基极-发射极正向偏置
-
在数码管中的应用:
-
三极管作为数码管的位选开关
-
基极接单片机引脚,控制数码管电源通断
-
P1.0-P1.3输出高电平时,对应三极管导通,选中该位数码管
-
十、重点内容总结
1. 概念区分
-
CPU:数据处理核心
-
MCU:集成了CPU和外围设备的控制器
-
MPU:需要外部扩展的处理器
-
GPU/NPU/FPU:专用处理单元
-
SOC:片上系统,高度集成
2. 51单片机资源
-
8位CPU核心
-
4KB ROM程序存储器
-
256字节片内RAM
-
32个I/O引脚(4组×8位)
-
2个定时器/计数器
-
1个全双工串口
-
5个中断源
3. LED控制原理
-
共阳极:阳极接VCC,阴极接单片机,低电平点亮
-
共阴极:阴极接GND,阳极接单片机,高电平点亮
4. 位运算应用
-
置位、清零、翻转、状态判断
-
寄存器操作、标志位管理
5. 数码管相关
-
51开发板:4位共阴极数码管
-
显示原理:位选→段选→延时→循环
-
NPN三极管:基极高电平导通,用作位选开关
-
动态显示:利用视觉暂留,分时复用显示
6. 开发注意事项
-
程序下载前确认芯片型号和COM端口
-
逻辑分析仪使用时要正确接地
-
数码管动态显示需要合适的刷新频率
-
位运算时注意运算符优先级
