单片机的硬件结构
书上是以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