嵌入式学习——51单片机

51单片机的内部结构:

1、内核(kernel)

2、串口(UART)

3、内存(RAM)

4、只读存储器(ROM)

5、定时器(TIMER)

6、输入输出口(GPIO)

RAM和ROM的区别

RAM: RandomAccessMemory, 随机访问内存,存放程序中的变量、临时数据

掉电数据丢失,读写速度快(256byte)
ROM: Read-OnlyMemory,只读存储器,存放单片机程序、代码、指令,掉电

数据不丢失(只在程序运行时只读)

51单片机最小系统组成:

电源、晶振、复位 是能让单片机正常工作的最小硬件系统

部分概念:

MCU: MicroControllerUnit,微控制器,集成度高,将所有功能集成到一块芯片里

(CPU、RAM、ROM、GPIO、TIMER、UART),成本低,简单控制。
MPU: Micro ProcessingUnit,微处理器,集成度低,只有一块单独的CPU,需要外接

一些功能模块(RAM、ROM、控制器芯片),成本高,应用处理复杂任务,可以跑

Linux操作系统。
GPU: GraphicsProcessingUnit,图形处理单元,处理图形数据,图像渲染。
NPU: NeuralProcessingUnit,神经网络处理单元,AI推理、硬件加速(Mate60达芬奇NPU

AI拍照优化)。
FPU: FloatPointUnit,浮点数运算单元,完成浮点数运算。
**SOC:**SystemOnChip,片上系统,将多个芯片集成到一起。

内存和外存的区别:

程序运行时:代码从外存 加载到内存 ,CPU从内存 读取执行,临时数据存在内存 ,需要永久保存的数据才写回外存

位运算:指定位置1和指定位清零

C语言 位运算:

&:按位与:将对应位的bit进行比较,若两个bit都为1,结果为1,若有一个bit为0

结果为0

|:按位或:将对应位的bit进行比较,若有一个bit为1,结果为1,若两个bit都为

0, 结果为0

^:按位异或:将对应位的bit进行比较,若两个bit相同,结果为0;不相同为1

(相同为0,相异为1)

其余位不变,指定位置1:使用按位或 t |= (1<<n);
其余位不变,指定位清0:使用按位与 t&=~(1<<n)

寄存器的概念:

能够操作硬件 具有固定地址的空间(往寄存器里写数据,寄存器能立刻作出反应)

数码管动态显示的原理:

在某位数码管上显示一位数值,快速刷新,再下一位数码管再去显示另一位数值,利用人眼视觉暂留效应。

38译码器工作原理

用三个输入脚(A、B、C)的二进制组合,决定8个输出脚中的哪个输出低电平。

GPIO

GPIO输入:检测引脚的电平变化

GPIO输出:给定引脚高电平/低电平,控制引脚输出高电平/低电平

中断系统

中断的概念:

当CPU去执行一个任务时,此时外界来了一个更为紧急的任务,要求CPU能够暂停当前的任务,转而去执行更为紧急的任务,执行完之后再回到刚才被打断的地方继续向下执行

中断源:

能够打断CPU执行当前任务源头/事件叫做中断源。

51单片机5个中断源 :外部中断0 、外部中断1、 定时器0、 定时器1、 串口(外部中断:引脚电平的变化所引发的中断)

中断优先级:

CPU处理中断任务时,需要比较中断优先级,优先去处理优先级更高的

中断嵌套:

CPU再处理一个中断任务时,嵌套处理其他优先级更高的中断任务(51单片机最多允许嵌套两层)

中断处理流程:

  1. 中断源发起中断请求

  2. 检查CPU是否允许中断及中断源是否被屏蔽

  3. 比较中断优先级

  4. 保护现场

  5. 执行中断服务函数

  6. 恢复现场

中断向量表:本质上是一个数组,数组中存放的是中断服务函数的入口地址。

中断向量:中断向量表中各中断服务函数的标号。

定时器

概念 :能够产生一个精准的定时,对时序要求严格(高电平和低电平的时间必须是

精准的)

51单片机使用的是16位自增型定时器/计数器,从初值开始++,+到65535溢出后向CPU发起定时器中断请求

TL0:定时器初值低位

TH0:定时器初值高位

PWM: 脉冲宽度调制,能够产生一个方波,能够让引脚电平周期性发生变化
PWM周期: 一个方波所经历的时间(从上升沿/下降沿到下一个上升沿/下降沿 )
**PWM占空比:**高电平在一个周期内所占的比例

计算初值:

蜂鸣器

有源蜂鸣器 :存在震荡源,通电后会持续发出固定频率声音
无源蜂鸣器:不存在震荡源,通电后不会发出声音,需要给定一个震荡

相关推荐
2501_937721752 小时前
stm32
stm32·单片机·嵌入式硬件
DLGXY2 小时前
STM32(二十五)——修改主频、睡眠模式、停机模式、待机模式
stm32·单片机·嵌入式硬件
BackCatK Chen2 小时前
2026年STM32新品密集发布:C5系列量产上市,低功耗无线MCU同步迭代
stm32·单片机·嵌入式硬件·stm32c5·mcu新品·stm32wl3r
最概然2 小时前
单片机也能玩依赖注入?
单片机·嵌入式硬件
今儿敲了吗2 小时前
44| 汉诺塔问题
数据结构·c++·笔记·学习·算法·深度优先
花姐夫Jun3 小时前
WebGL学习-czm_getMaterial详解
学习·webgl
野犬寒鸦3 小时前
从零起步学习计算机操作系统:内存管理篇
服务器·后端·学习·缓存·面试
bing_feilong3 小时前
ubuntu22.04: 安装ROS2并测试
嵌入式硬件·机器人
夏日听雨眠3 小时前
文件学习终
windows·学习