单片机的硬件结构
书上是以MCS-51为例介绍的单片机硬件结构。对硬件不太感兴趣,省略若干内容。
按功能来分主要包括如下部分:
- CPU
- RAM
- ROM
- 四个并行I/O口
- 1个串行口
- 2个16位定时器/计数器
- 中断系统
- 特殊功能寄存器
CPU是8位的,RAM只有可怜的128B,8051ROM为4KB。
引脚介绍省略……
PSW(Program Status Word)
位7 | 位6 | 位5 | 位4 | 位3 | 位2 | 位1 | 位0 |
Cy | Ac | F0? | RS1 | RS0 | OV | -- | P |
- CY:进位标志CY(PSW 7)。它表示了运算是否有进位(或借位)。如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0。
- AC:辅助进位标志AC。又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
- F0:标志0(用户可用途一般用途)
- RS1,RS0:在四组工作寄存器中选择
- OV:溢出标志位OV。MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
- P:奇偶标志P。反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
RS1 | RS0 | 所选择的寄存器组 |
0 | 0 | 0区(00H~07H) |
0 | 1 | 1区(08H~0FH) |
1 | 0 | 2区(10H~17H) |
1 | 1 | 3区(18H~1FH) |
PC
PC是程序计数器,正常时存放着下一条将要执行的指令,在程序跳转以及子程序调用的时候会有变化。PC是16位的,216=65536,所以51可以寻址64KB的存储器空间。复位后PC的值是0000H。
ROM
RAM称为数据存储器,ROM称为程序存储器,SFR称为特殊功能寄存器。RAM又分为内部RAM与外部RAM,ROM也分为内部ROM与外部ROM,不过ROM的区分仅仅是物理上的,逻辑上ROM不区分内外。
ROM中有5个特殊地址:
中断源 | 处理程序地址 |
外部中断0(INT0) | 0003H |
定时器0中断(T0) | 000BH |
外部中断1(INT1) | 0013H |
定时器1中断(T1) | 001BH |
串口中断 | 0023H |
RAM
7FH 30H |
用户RAM区 |
2FH 20H |
位寻址区 |
1FH 18H |
第3工作寄存器区 |
17H 10H |
第2工作寄存器区 |
0FH 08H |
第1工作寄存器区 |
07H 00H |
第0工作寄存器区 |
SFR
特殊功能寄存器以及其地址见下图。空白地区不能读写,行为随机。
SFR列表
标识符号 |
地址 |
寄存器名称 |
ACC |
0E0H |
累加器 |
B |
0F0H |
B寄存器 |
PSW |
0D0H |
程序状态字 |
SP |
81H |
堆栈指针 |
DPTR |
82H、83H |
数据指针(16位)含DPL和DPH |
IE |
0A8H |
中断允许控制寄存器 |
IP |
0B8H |
中断优先控制寄存器 |
P0 |
80H |
I/O口0寄存器 |
P1 |
90H |
I/O口1寄存器 |
P2 |
0A0H |
I/O口2寄存器 |
P3 |
0B0H |
I/O口3寄存器 |
PCON |
87H |
电源控制及波特率选择寄存器 |
SCON |
98H |
串行口控制寄存器 |
SBUF |
99H |
串行数据缓冲寄存器 |
TCON |
88H |
定时控制寄存器 |
TMOD |
89H |
定时器方式选择寄存器 |
TL0 |
8AH |
定时器0低8位 |
TH0 |
8CH |
定时器0高8位 |
TL1 |
8BH |
定时器1低8位 |
TH1 |
8DH |
定时器1高8位 |
时钟周期、机器周期与指令周期
时钟周期:Tosc= 1 / fosc。
机器周期:12Tosc= 12 / fosc。
指令周期:1~3个机器周期。单字节指令一个机器周期,双字节可能1或2个机器周期,而3字节指令肯定是两个机器周期,乘除法个别、是4个机器周期。
编辑:admin 最后修改时间:2018-05-08