【硬件学习入门】--嵌入式51单片机点灯与延迟效应

1.计算机组成

(只要包含这些部件,就可以构成一台计算机)计算机的组成:控制器、运算器、存储器(内存和外存)、输出设备、输入设备。

2.最小系统

最小系统是指能够让单片机正常工作所需要的最少器件组合。

晶振:控制单片机的运行频率和节拍。

CPU:Central Processing Unit,中央处理器,负责完成数据运算和指令执行。

MCU:Micro Controller Unit,微控制器,集成度高,将所有的功能集成到同一块芯片中,成本低。

GPU:图像处理器,负责图形处理。

NPU:神经网络处理器,用于 AI 推理加速。

FPU:浮点数运算单元,负责完成浮点数运算。

SoC:片上系统,将多个功能芯片集成在一块芯片上(体积小、功耗低)。

存储器的一些概念

内存:存放程序运行时的变量,掉电数据丢失,读写速度快。

外存:存放代码指令,掉电数据不丢失,价格相对便宜。

3.CPU 与 RAM 交互的三大总线

RAM:随机访问存储器,存放单片机运行过程中的变量。

ROM:只读存储器,存放程序运行中不变的代码和常量。

CPU 与 RAM 交互依赖三大总线:

  1. 地址总线,一共有 8 根:CPU 通过地址总线寻找 RAM 中的变量地址,2^8 = 256(方向是单向的,CPU → RAM)。

  2. 数据总线,一共有 8 根:CPU 与 RAM 进行数据交换传输(可以双向传输)。

  3. 控制总线,一共有 8 根:负责传输控制信号,协调读写操作。

下面是我在运行代码时 CPU 与 RAM 进行数据交换的过程(通过三大总线进行控制操作):

外设寄存器:能够操作硬件,具有固定的地址空间。

比如说,这里我用的是 P2 系列寄存器。连接电源的一方是共阳极,GND 连接的一边是共阴极。

位运算:在单片机中进行点灯与灭灯操作就需要用到这一点。

下面我通过几个例子来讲解常用的位运算符:

1. | 按位或:将两个二进制数对应位进行比较,如果全为 0,则结果为 0;如果有一个 bit 为 1,则结果为 1。

2. & 按位与:将两个二进制数对应位进行比较,如果全为 1,则结果为 1;如果有一个 bit 为 0,则结果为 0。

3. ~ 按位取反:将二进制数的每一位进行翻转(0 变 1,1 变 0)。

4. ^ 按位异或:将两个二进制数对应位进行比较,相同为 0,相异为 1。

5. << 按位左移:将二进制数左移 n 位,低位补 0。

6. >> 按位右移:将二进制数右移 n 位(分为逻辑右移和算术右移)。

举个例子,假设我有一个变量 a = 0b00001111(即十进制的 15):

c 复制代码
unsigned char a = 0x0F;   // 二进制:0000 1111
unsigned char b;

b = a << 2;   // 左移 2 位:0011 1100,即 0x3C
b = a >> 1;   // 右移 1 位:0000 0111,即 0x07
b = ~a;       // 按位取反:1111 0000,即 0xF0
b = a | 0x30; // 按位或:0011 1111,即 0x3F
b = a ^ 0x0F; // 按位异或:0000 0000,即 0x00

4.共阴极数码管(四位)

数码管每一次只能单独显示一个数值。

同一时刻只能显示一位数字。

在开始之前,我们需要完成以下步骤:

1. 位选

通过 4 个 NPN 型三极管控制。给三极管基极对应的引脚高电平,三极管导通,对应位的数码管就被选中(使用 P1 寄存器的低 4 位)。

2. 段选

通过 P0 寄存器控制。给对应段引脚高电平,这个段就被点亮了。

动态显示:快速轮询,利用人眼视觉暂留效应。先在第一位数码管显示一个数值,快速刷新;再在第二位数码管显示下一位数值,如此循环,人眼看起来就像同时点亮了多位。

相关推荐
DevangLic1 小时前
opencode go要完蛋了吗
运维·学习
小弥儿1 小时前
GitHub今日热榜 | 2026-09-02:i-have-adhd 登顶
学习·开源
Yanjun2i2 小时前
Agent学习记录四:多工具时如何处理
人工智能·python·学习·agent
传奇开心果编程3 小时前
【Xilem 0.4 基础语法学与练】第二课视图修饰符、列表渲染、组件拆分、memoize 性能优化
学习·rust·前端框架
szarron3 小时前
RF Demo Kit|NanoVNA 射频演示测试板完整上手教程,滤波器、衰减器、SOLT 校准学习板
开发语言·人工智能·学习·php·射频工程·频谱仪
A_nanda3 小时前
学习工业相机的大纲
学习·工业相机
边境悍匪3 小时前
蜗牛学苑 Java 智能体学习 Day39|SpringAI 会话存储、Function‑Call 工具调用、MCP 思维导图复盘
java·开发语言·spring boot·学习·阿里云
woodykissme4 小时前
齿轮测量系列——齿轮测量这二十年
学习·机械·齿轮检测