#51单片机 #C语言位运算 #单片机入门 #嵌入式 #MCU
前言
最近在学习 51 单片机基础,把课堂笔记做了整理。刚接触单片机会混淆各类处理器概念、位运算用法、三极管开关逻辑、数码管动态显示原理。本篇把零散知识点汇总,方便复习,同时作为入门阶段的知识梳理。
学习重点:位运算是单片机操作寄存器核心;分清 MCU、MPU、SOC;理解数码管位选、段选、视觉暂留动态显示。
一、频率单位换算
单位:HZ、KHZ、MHZ、GHZ
1KHZ = 10^3 HZ
1MHZ = 10^3 KHZ = 10^6 HZ
1GHZ = 10^3 MHZ = 10^9 HZ
频率与时间互为倒数关系: 例:2.1GHZ,频率 = 2100000000HZ,单周期时间 = 1 /f ≈0.5ns。
51 单片机常用晶振:11.0592MHZ,专门用于串口波特率配置。
二、C 语言位运算(单片机寄存器操作核心)
1. 按位或 |
作用:指定位置 1,其余位不变 语法:变量 |= (1 << n); 示例:
char t = 0xF4; //1111 0100
char n = 0x32; //0011 0010
t | n; //1111 0110 → 0xF6
2. 按位与 &
作用:指定位清 0,其余位不变 语法:变量 &= ~(1 << n); 示例:
char t = 0xF4; //1111 0100
char n = 0x32; //0011 0010
t & n; //0011 0000 →0x30
3. 按位取反 ~
把二进制每一位全部翻转,0 变 1,1 变 0。
~(0x30); // ~0011 0000 →1100 1111 →0xCF
###4. 按位异或 ^ 对应 bit 位:相同为 0,相异为 1
char t = 0xF4; //1111 0100
char n = 0x32; //0011 0010
t ^ n; //1100 0110 →0xC6
###5. 移位运算
<<左移:二进制向左移动 n 位,低位补 0>>右移:区分逻辑右移、算术右移
实操示例(寄存器操作)
unsigned char P2 = 0x00;
P2 |= (1 << 0); //bit0置1
P2 |= (1 << 7); //bit7置1
P2 |= (1<<2)|(1<<3); //bit2、bit3同时置1
unsigned char P2 = 0xFF;
P2 &= ~(1 << 0); //bit0清0
P2 &= ~(1 << 6); //bit6清0
P1 &= ~(0x0F <<0);//P1低四位清零
三、三极管基础(数字电路作开关)
三极管分类: 1. 材料:硅管、锗管 2. 类型:NPN、PNP 引脚:基极、发射极、集电极
- NPN:箭头朝外;基极高电平导通,低电平截止
- PNP:箭头朝内;基极低电平导通,高电平截止
工作区域:
- 饱和区:三极管导通
- 截止区:三极管关断
数码管位选,经常用 NPN 三极管做开关控制。
四、各类处理器概念区分
表格
| 缩写 | 全称 | 说明 |
|---|---|---|
| CPU | 中央处理器 | 完成运算、指令处理 |
| MCU | 微控制器 | 单片机,CPU + 外设全部集成芯片,低成本,简单控制场景,51 单片机属于 MCU |
| MPU | 微处理器 | 只有 CPU 核心,需要外接 RAM/ROM,用于复杂系统,跑 Linux |
| GPU | 图形处理器 | 图像渲染,图形计算 |
| NPU | 神经网络处理器 | AI 推理、卷积运算、AI 加速,手机 AI 拍照 |
| FPU | 浮点运算单元 | 专门处理浮点数运算,一般集成 CPU 内部 |
| SOC | 片上系统 | 把 CPU、GPU、NPU、外设全部集成一颗芯片,手机芯片就是 SOC |
五、存储器概念
- 内存 (RAM):存放运行时变量;掉电丢失;读写速度快;价格高。
- 外存 (硬盘 / Flash):存放代码程序;掉电数据保留;速度慢,价格便宜。
CPU 访问 RAM 流程:CPU 通过地址总线 找到变量地址;通过数据总线读写数据;控制总线完成控制信号交互。
六、51 单片机最小系统
最小系统:让单片机正常运行的最少器件。 组成:电源、晶振电路、复位电路 晶振为单片机提供工作节拍时钟;经典晶振 11.0592M 用于串口。
七、共阴极数码管与动态显示
- 位选:控制哪一个数码管点亮;本案例 NPN 三极管控制,P1 低 4 位输出,高电平三极管导通选中对应数码管。
- 段选:控制数码管显示什么数字;P0 寄存器控制,输出高电平点亮对应段。
动态显示原理:人眼视觉暂留效应 快速轮询每一位数码管:第一位显示数字,立刻切换第二位显示,高速刷新,肉眼看起来多个数码管同时亮。同一时刻实际只有 1 位数码管处于点亮状态。
小结
- 位运算是单片机操作寄存器最重要手段:
|置 1,&~清 0,记住1<<n移位写法; - NPN/PNP 三极管做开关,注意导通电平差异;
- MCU 是单片机,MPU 是微处理器,SOC 是片上系统,不要混淆概念;
- RAM 内存掉电丢失,外存掉电保存;
- 数码管动态显示依靠视觉暂留,区分位选(选哪一个管子)和段选(显示什么字符)。