51单片机学习 day1

📅 2026/7/24 6:31:02 👁️ 阅读次数 📝 编程学习
51单片机学习 day1

1.操作系统与处理器概念

OS Opetation system 操作系统

51单片机(8位单片机):

主要厂商:

Atmel(AT89C51)

Philip( P89V51 增强型单片机 在线编程)

STC宏晶半导体( STC89C51 STC89C52 STC89C52RC)

处理器架构:

x86(32位) x64(64位) 8051(8位) ARM(32位)

常见处理器单元:

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

MCU:Micro Controller Unit 微控制器,集成度高,把所有功能集成到一块芯片中(CPU、RAM、

ROM、Timer、GPIO、中断、UART),成本低,应用简单控制领域

MPU:Micro Processing Unit ,微处理器,集成度低,只有一块单独的CPU芯片,需要单独外接存

储模块、外设模块、成本高,复杂应用领域,跑Linux操作系统

GPU:Graphics Processing Unit ,图形处理器,图形处理,图像渲染

NPU:Neural Processing Unit 神经网络处理器,AI推理、AI加速,神经网络处理,卷积算法

FPU:Float Point Unit ,浮点数运算单元,大部分集成在CPU内部

SOC:System On Chip (片上系统),将很多个芯片集成到一起

2.存储体系

内存和外存的特点:

内存:读写速度快,掉电数据丢失,价格昂贵(内存条),存放程序中的常量

外存:读写速度快,掉电数据不丢失,价格便宜(硬盘、SD卡)存放程序、代码、指令,

单片机内部存储:

ROM:Read Only Memory 只读存储器,存放单片机程序、代码

指令

RAM:Random Acess Memory ,随机访问存储器,存放程序运行过程中的变量

CPU与RAM三大总线及作用

地址总线:CPU通过地址总线寻找RAN中的地址,最大寻址范围2^8 ( 256byte ) 单向

数据总线:CPU与RAM之间进行数据传输 双向

控制总线:CPU通过控制总线发送控制指令,双向

例:int a = 2;

int b = 3;

int sum = a+b;

//CPU通过控制总线发送指令

//CPU需要从RAM中读取a、b值(地址)

//CPU运算

//CPU通过数据总线将运算结果写回到RAM

3.时钟与频率基础

主频: CPU工作频率

频率单位换算:

HZ

KHZ 1KHZ = 10^3HZ

MHZ 1MHZ = 10 ^3KHZ = 10^6HZ

GHZ 1GHZ = 10 ^3MHZ = 10^9HZ

THZ 1THZ = 10^3GHZ = 10^12HZ

换算规律

小频率 -> 大频率: 除

大频率 -> 小频率: 乘

eg:

主频: 2.1GHZ -> HZ: 2.1GHZ * 10^9 = 2,100,000,000HZ

时间(时间和频率呈倒数关系) : 1 / 2,100,000,000HZ = 0.5ns

时间单位:s,ms,us,ns

4.51单片机硬件平台

芯片型号:STC89C52、STC89C52RC

晶振:12.0000MHZ、11.0592MHZ

开发底板:HC6800-MS、普中51-MS

单片机最小系统:电源电路、晶振电路、复位电路

芯片封装形式

双列直插式40引脚封装

划分成4组: P0 、P1 、P2 、P3, 每组有8个引脚

网络编号说明:

本质是一根导线, 避免复杂物理连线,

相同网络编号的引脚在实际电路中是彼此连通的

位运算:

1. |:按位或 :对应位的bit进行比较,如果都为0,则结果为0,如果两个bit中有一个bit 为1,结果为1

应用场景:指定位置1 将第n位置1,就1<<n位

t = t | (1 << n);

t |= (1 << n);

2. &:按位与: 对应位的bit进行比较,如果都为1,结果为1;如果有一个bit为0,结果为0

应用场景:指定位清0 将第n位清0,就~(1 << n)

t &= ~(1 << n);

3. << :左移

4. >>: 右移

5. ^: 按位异或,将对应位的bit进行比较,相同为0,相异为1

6. ~: 按位取反

5.LED模块(共阳极发光二极管)

1. 电阻阻值识别(数字标注法):
数字标注法,前面两位/三位作为有效数字,最后一位数表示10的几次方

102:10 * 10^2 = 1KΩ

103:10 * 10^3 = 10k

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

led模块用到了P2寄存器

#define P2 *((unsigned char *)A0)

P2 = 0xFF; // 1111 1111

P2 = 0x00; // 0000 0000

6.数码管模块(共阴极数码管

1.51单片机搭载4位共阴极数码管

2.先位选(NPN三极管)P10P13

3.再段选 (给定对应引脚高电平即可点亮该段)

数码管动态显示原理

利用人眼视觉暂留效应

选择第一位数码管显示一个数值,快速刷新delay(100);

选择第二位数码管显示一个数值,快速刷新delay(100);

7.外设寄存器

单片机中,定时器、串口、ADC、IO口、中断、PWM这些硬件外设,各自配套一组专用存储单元,用来配置参数、读取状态、收发数据,这组单元叫外设寄存器

控制led灯用到的外设:通用IO,P2寄存器,

控制数码管用到的外设:通用IO口,P1寄存器,P0寄存器

指定位清零:将第n位清0 t &=~(1<<n)

指定位置1:将第n位置1 t |= (1<<n)