51 单片机基础与硬件
什么是单片机
定义:单片机就是将微处理器(CPU)、存储器(ROM、RAM)、定时器/计数器和各种输入/输出接口电路(I/O),以及相互连接的总线(BUS)等集成在一块芯片上,形成芯片级的计算机,又称为单片微型计算机。
51 单片机特性
- 8 位 CPU
- 片内振荡和定时电路
- 128B 内部 RAM(00H~7FH)
- 4 个 8 位并行 I/O 口(P0/P1/P2/P3)
- 2 个 16 位可编程定时/计数器
- 1 个 全双工串行口
- 5 个 中断源(可编程为两个优先级)
- 21 个 SFR(特殊功能寄存器,80H~FFH)
- 16B(128 位) 可位寻址区(20H~2FH)
- 堆栈深度可达 80B(30H~7FH)
引脚功能(PDIP-40)
按用途分为 4 大类:
1. 电源引脚
| 引脚 | 功能 |
|---|---|
| VCC(40 脚) | 工作电压输入(+5V) |
| GND(20 脚) | 接地 |
2. 时钟引脚
| 引脚 | 功能 |
|---|---|
| XTAL1(19 脚) | 片内振荡电路输入端 |
| XTAL2(18 脚) | 片内振荡电路输出端 |
典型时钟频率:6MHz、12MHz、11.0592MHz
- 内部时钟方式:在XTAL1和XTAL2引脚外接一个石英晶体或陶瓷晶振和振荡电容。
- 外部时钟方式:使用外部振荡器脉冲信号,外部CMOS时钟源直接接到XTAL1引脚,XTAL2悬空。
P38 
3. 控制引脚
| 引脚 | 功能 |
|---|---|
| RST(9 脚) | 复位引脚,高电平有效,需维持 2 个机器周期以上,复位后从 0000H 开始执行 |
| EA/VPP(31 脚) | EA=1:先片内后片外 ROM;EA=0:只访问片外 ROM。烧写 EPROM 时输入编程电压 |
| ALE/PROG(30 脚) | 地址锁存允许信号,输出 |
| PSEN(29 脚) | ROM 读选通信号,输出 |
P40 
4. I/O 引脚(32 条,4 组并口)
P0 口(32~39 脚)— 双向三态,复用
| 功能 | 说明 |
|---|---|
| 普通 I/O | 开漏输出,必须外接上拉电阻 |
| 地址/数据线 | 分时复用 — 低 8 位地址线(A0~A7)+ 8 位数据线(D0~D7)。外扩存储器时无需外接上拉 |
P1 口(1~8 脚)— 准双向口
- 8 个 I/O,内置上拉电阻
- 系统复位后默认输出高电平
P2 口(21~28 脚)— 准双向,复用
| 场景 | 功能 |
|---|---|
| 字节寻址 | 普通 I/O |
| 字寻址 | 高 8 位地址线(A8~A15),配合 P0 形成 16 位地址总线 |
P3 口(10~17 脚)— 准双向,复用
| 引脚 | 第二功能 |
|---|---|
| P3.0 | RXD(串行输入) |
| P3.1 | TXD(串行输出) |
| P3.2 | INT0(外部中断 0) |
| P3.3 | INT1(外部中断 1) |
| P3.4 | T0(计数输入) |
| P3.5 | T1(计数输入) |
| P3.6 | WR(写控制) |
| P3.7 | RD(读控制) |
CPU 时序
机器周期
单片机CPU完成一个基本操作所需的时间称为机器周期。一个机器周期由6个状态周期(S1~S6)组成,而一个状态周期由两个时钟周期组成,则一个机器周期由12个时钟周期组成。
设fosc = 12MHz,则一个机器周期=12/(12MHz) = 1us; 设fosc = 6MHz,则一个机器周期=12/(6MHz) =2us。
指令周期 指令周期是CPU执行一条指令所需的时间。单片机的指令分为单字节、双字节和三字节指令,所需的指令周期也不同,一般为1~4个机器周期。
典型计算
| 晶振频率 | 机器周期 |
|---|---|
| 12 MHz | 1 μs |
| 6 MHz | 2 μs |
最小系统
能使单片机正常工作的最小硬件单元电路,至少包括:
- 单片机芯片
- 晶振电路(提供时钟)
- 复位电路(上电复位 + 手动复位)
- 电源电路(+5V)
能画出来
LED 驱动基础
灌电流 vs 拉电流
| 方式 | 驱动能力 | 接法 |
|---|---|---|
| 灌电流 | 强,可达 20mA | 单片机输出低电平时 LED 亮 |
| 拉电流 | 弱,几十~几百 μA | 单片机输出高电平时 LED 亮 |
实际项目优先用灌电流方式驱动 LED。
限流电阻计算
以直插超亮红色 LED 为例:V_D = 2.0V,I_D = 10mA,则: