2.1 51单片机内部结构
51系列单片机是一种基于哈佛结构的8位微控制器,其内部包含CPU、程序存储器、数据存储器、定时器/计数器、串行口、I/O端口等功能模块。
基本组成
要点提示
51单片机采用哈佛结构,程序存储器和数据存储器是分开的,通过不同的总线访问。
2.2 CPU结构
51单片机的CPU是8位的,能处理8位二进制数或代码,由运算器和控制器组成。
运算器(ALU)
包括算术逻辑单元ALU、累加器ACC、寄存器B等,完成算术/逻辑运算。
- • 算术运算:加、减、乘、除
- • 逻辑运算:与、或、异或、移位
- • 位操作:置位、清零、取反
控制器
包括程序计数器PC、指令寄存器IR、指令译码器ID等,控制指令执行。
- • 程序计数器PC:指向下一条指令
- • 指令寄存器IR:存放当前指令
- • 指令译码器ID:译码指令
总线结构
51单片机采用16位地址总线,寻址范围64KB;8位数据总线,用于数据传输。
2.3 存储器组织
51单片机的存储器分为程序存储器(ROM)和数据存储器(RAM),两者地址空间独立。
程序存储器(ROM)
用于存放程序和固定数据,最多可扩展到64KB。
- 8051:4KB内部ROM(掩膜ROM)
- 8751:4KB内部EPROM
- 8031:无内部ROM,需外扩
- AT89S51:4KB内部Flash
- EA引脚控制内外存储器选择
数据存储器(RAM)
用于存放运行时的数据和中间结果,内部RAM为128B,可扩展到64KB外部RAM。
- 00H~1FH:通用工作寄存器区(4组)
- 20H~2FH:位寻址区(16B,128位)
- 30H~7FH:用户RAM区
- 80H~FFH:特殊功能寄存器区(SFR)
| 寄存器名称 | 地址 | 功能描述 |
|---|---|---|
| ACC | E0H | 累加器,最常用的寄存器 |
| B | F0H | 乘法和除法运算时使用 |
| PSW | D0H | 程序状态字,包含状态标志位 |
| SP | 81H | 堆栈指针,指向栈顶地址 |
| DPTR | 83H~82H | 数据指针,16位寄存器 |
| P0~P3 | 80H,90H,A0H,B0H | 并行I/O口锁存器 |
要点提示
特殊功能寄存器(SFR)是单片机中各功能部件对应的寄存器,用于控制和监视片内各功能模块的工作状态。
2.4 并行I/O口
51单片机有4个8位并行I/O口(P0~P3),每个口既可以按字节输入/输出,也可以按位单独使用。
P0口
地址/数据复用口,开漏输出,需外接上拉电阻
P1口
准双向通用I/O口,内部带上拉电阻
P2口
高8位地址线,准双向口,内部带上拉电阻
P3口
双功能口,准双向口,内部带上拉电阻
| 引脚 | 第二功能 |
|---|---|
| P3.0 | RXD(串行输入口) |
| P3.1 | TXD(串行输出口) |
| P3.2 | INT0(外部中断0) |
| P3.3 | INT1(外部中断1) |
| P3.4 | T0(定时器0外部输入) |
| P3.5 | T1(定时器1外部输入) |
| P3.6 | WR(外部数据存储器写选通) |
| P3.7 | RD(外部数据存储器读选通) |
要点提示
P0口用作通用I/O口时为开漏输出,必须外接上拉电阻才能输出高电平;P1、P2、P3口为准双向口,内部带上拉电阻。
2.5 引脚功能
51单片机通常有40个引脚,按功能可分为电源引脚、时钟引脚、控制引脚和I/O端口引脚。
VCC/VSS
电源引脚,VCC接+5V,VSS接地,为单片机提供工作电源。
XTAL1/XTAL2
时钟引脚,外接晶体振荡器或外部时钟信号。
RST
复位引脚,高电平有效,使单片机恢复到初始状态。
PSEN
外部程序存储器选通信号,低电平有效。
ALE
地址锁存允许信号,用于锁存低8位地址。
EA
外部访问允许,高电平使用内部ROM,低电平使用外部ROM。
要点提示
复位后,程序计数器PC=0000h,单片机从程序存储器的0000h地址开始执行程序。
2.6 时钟电路
时钟电路功能
时钟电路为单片机产生时钟脉冲序列,是单片机工作的基础,直接影响单片机的工作速度和稳定性。
- 51单片机内部有一个高增益反相放大器,用于构成振荡器
- XTAL1(19脚)为反相放大器输入端
- XTAL2(18脚)为反相放大器输出端
内部时钟方式
在XTAL1和XTAL2引脚外接晶体振荡器和微调电容,构成并联谐振电路。
- 晶振频率典型值为6MHz、12MHz等
- 电容值通常为30pF左右,用于微调振荡频率
外部时钟方式
外部时钟信号直接接入XTAL2引脚,XTAL1接地。常用于多片单片机同步工作。
- 输入信号需为方波,高、低电平持续时间大于20ns
- 适用于外部时钟源已经存在的场合
晶振频率选择
晶振频率决定了单片机的工作速度,选择时需考虑以下因素:
系统需求
根据系统对处理速度的要求选择合适的频率
抗干扰能力
频率越高,抗干扰能力越差,功耗也越大
外设兼容性
例如串口通信常采用合适的频率以避免波特率误差
2.7 复位电路
复位功能与条件
复位是单片机的初始化操作,主要功能是使CPU和系统中的其他部件处于一个确定的初始状态,并从这个状态开始工作。
- 复位条件:RST引脚保持两个机器周期(24个振荡周期)以上的高电平
- 复位后PC值为0000H,程序从0000H地址开始执行
- 复位不影响内部RAM,但影响SFR的值
上电复位电路
上电瞬间,电容充电,RST端出现正脉冲。调整RC参数可改变复位脉冲宽度。
按键复位电路
上电时完成上电复位,按键按下时电容放电,RST端出现高电平,实现手动复位。
复位后SFR的初始状态
| 寄存器 | 初始值 | 寄存器 | 初始值 |
|---|---|---|---|
| PC | 0000H | TMOD | 00H |
| ACC | 00H | TCON | 00H |
| B | 00H | TH0 | 00H |
| PSW | 00H | TL0 | 00H |
| SP | 07H | TH1 | 00H |
| DPTR | 0000H | TL1 | 00H |
| P0~P3 | FFH | SCON | 00H |
| IP | XXX00000B | SBUF | 不定 |
| IE | 0XX00000B | PCON | 0XXX0000B |
2.8 基本时序
51单片机的时序是理解其工作原理的重要基础,包括时钟周期、机器周期和指令周期等概念。
时钟周期
晶振频率的倒数,是单片机最基本的时序单位。
Tosc = 1 / fosc
状态周期
CPU完成一个基本操作所需的时间,等于2个时钟周期。
Ts = 2 × Tosc
机器周期
CPU完成一个基本操作所需的时间,等于12个时钟周期。
Tcy = 12 × Tosc
指令周期
执行一条指令所需的时间,包含1-4个机器周期。
Tinst = 1~4 × Tcy
实例说明
当晶振频率为12MHz时,时钟周期约为0.0833μs,机器周期约为1μs。如果一条指令需要2个机器周期,则执行时间约为2μs。
要点提示
理解时序对于编写精确的延时程序和定时器配置非常重要。常用的晶振频率12MHz可以方便地产生标准的波特率。
2.9 本章小结
51单片机采用哈佛结构,程序存储器和数据存储器地址空间独立,通过不同的总线访问。
CPU由运算器和控制器组成,运算器负责算术和逻辑运算,控制器负责指令的取指、译码和执行。
存储器分为程序存储器(ROM)和数据存储器(RAM),内部RAM包含工作寄存器区、位寻址区和用户RAM区。
51单片机有4个8位并行I/O口(P0~P3),其中P0口为开漏输出,P1、P2、P3为准双向口。
时钟电路提供单片机工作的时序基准,复位电路使单片机恢复到初始状态。
理解时钟周期、机器周期和指令周期对于编写精确的延时程序和定时器配置非常重要。