学习笔记——嵌入式与51单片机学习

嵌入式与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. 练习题

  1. unsigned char t = 0x64; // 二进制:0110 0100

    • 将bit0和bit7置1:

      复制代码
      t |= (1 << 0) | (1 << 7);

      // 结果:1000 0101 (0x85)

  2. unsigned char t = 0xFF; // 二进制:1111 1111

    • 将bit2和bit6清0:

      复制代码
      t &= ~(1 << 2);
      t &= ~(1 << 6);

      // 结果:1011 1011 (0xBB)

七、51单片机开发流程

1. 开发环境搭建

  • 软件安装:Keil μVision 4

  • 芯片支持:需要安装对应芯片的库文件

2. 工程创建步骤

  1. 打开Keil4 → Project → New Project

  2. 选择存储路径和工程名

  3. 选择芯片型号:Atmel → AT89C51

  4. 不添加启动代码(选"否")

  5. 添加源文件到工程

  6. 编写程序代码

3. 编译与下载

  • 编译设置

    • 勾选"Create HEX File"

    • 点击Build按钮编译

  • 程序下载

    1. 连接串口线(开发板-计算机)

    2. 查看设备管理器确认COM端口

    3. 打开ISP下载软件

    4. 选择芯片型号和COM端口

    5. 载入生成的HEX文件

    6. 点击下载,复位开发板

    7. 观察硬件运行现象

八、逻辑分析仪使用

1. 硬件连接

  • 通道连接:CH0-CH7通过杜邦线连接到待测引脚

  • 地线连接:GND连接到单片机GND

  • 连接确认:连接成功后软件会显示识别信息

2. 软件操作

  • 新建窗口:点击新建调试窗口按钮

  • 设备设置

    • 设置采样通道(选择使用的通道)

    • 设置采样速率(根据信号频率调整)

  • 开始采集:点击开始按钮抓取波形

  • 波形分析:观察引脚电平随时间变化情况

九、数码管显示技术

1. 数码管基本结构

  • 51开发板配置:4位共阴极数码管

  • 显示限制:同一时刻只能点亮一位数码管

2. 数码管显示原理

  • 共阴极连接

    • 所有数码管阴极连接在一起接地

    • 阳极通过限流电阻连接到单片机引脚

    • 阳极输出高电平点亮对应段

  • 控制流程

    1. 位选:选择要点亮的数码管位(控制P1.0-P1.3)

    2. 段选:设置要显示的数值(控制对应段引脚)

3. 动态显示技术

  • 原理:利用人眼视觉暂留效应(余晖效应)

  • 实现方法

    1. 显示第一位数字,短暂延时

    2. 关闭第一位,显示第二位,短暂延时

    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端口

  • 逻辑分析仪使用时要正确接地

  • 数码管动态显示需要合适的刷新频率

  • 位运算时注意运算符优先级

相关推荐
zy135380675732 小时前
12V输入5V/2A输出升降压芯片AH4002
科技·单片机·物联网·fpga开发·硬件工程·智能电视
LateFrames2 小时前
极限:从基础数学,漫游到AI算力资源的分配
学习
代码游侠2 小时前
学习笔记——嵌入式系统与51单片机核心
笔记·单片机·嵌入式硬件·学习·51单片机
好奇龙猫2 小时前
【人工智能学习-AI入试相关题目练习-第一次】
人工智能·学习
一枝小雨2 小时前
【OTA专题】15 实现App后台无感下载固件
stm32·单片机·嵌入式·ota·bootloader
Century_Dragon2 小时前
当汽车钣金课遇上“数字工坊”:给职校生的沉浸式实训新体验
学习
江苏世纪龙科技2 小时前
汽车钣金虚拟仿真教学软件:构建高沉浸、强交互的智慧实训新范式
学习
Gorgous—l2 小时前
数据结构算法学习:LeetCode热题100-栈篇(有效的括号、最小栈、字符串解码、每日温度、柱状图中最大的矩形)
数据结构·学习·算法
小郭团队2 小时前
教育公平的探索
大数据·人工智能·嵌入式硬件·算法·硬件架构