单片机的特殊功能寄存器完整功能分析
我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧!
下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。
单片机内部结构图>
javascript:resizepic(this) border=0>
javascript:resizepic(this) border=0>
对上面的图进行进一步的
分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为
特殊
功能
寄存器(SFR)。事实上,我们已接触过P1这个
特殊
功能
寄存器了,还有哪些呢?看下表1
符号 |
地址
|
功能介绍
|
B
|
F0H
|
B寄存器
|
ACC
|
E0H
|
累加器
|
PSW
|
D0H
|
程序状态字
|
IP
|
B8H
|
中断优先级控制寄存器
|
P3
|
B0H
|
P3口锁存器
|
IE
|
A8H
|
中断允许控制寄存器
|
P2
|
A0H
|
P2口锁存器
|
SBUF
|
99H
|
串行口锁存器
|
SCON
|
98H
|
串行口控制寄存器
|
P1
|
90H
|
P1口锁存器
|
TH1
|
8DH
|
定时器/计数器1(高8位)
|
TH0
|
8CH
|
定时器/计数器1(低8位)
|
TL1
|
8BH
|
定时器/计数器0(高8位)
|
TL0
|
8AH
|
定时器/计数器0(低8位)
|
TMOD
|
89A
|
定时器/计数器方式控制寄存器
|
TCON
|
88H
|
定时器/计数器控制寄存器
|
DPH
|
83H
|
数据地址指针(高8位)
|
DPL
|
82H
|
数据地址指针(低8位)
|
SP
|
81H
|
堆栈指针
|
P0
|
80H
|
P0口锁存器
|
PCON
|
87H
|
电源控制寄存器
|
表1
特殊功能寄存器地址映象表(一)>
javascript:resizepic(this) border=0>
特殊功能寄存器地址映象表(二)>
javascript:resizepic(this) border=0>
特殊功能寄存器地址映象表(三)>
javascript:resizepic(this) border=0>
下面,我们介绍一下几个常用的SFR,看图2。
ACC:累加器,常常用A表示。这是个什么东西,可不能从名字上理解,它是一个寄存器,而不是一个做加法的东西,为什么给它这么一个名字呢?或许是因为在运算器做运算时其中一个数一定是在ACC中的缘故吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,所有的运算类指令都离不开它。
2、B:一个寄存器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎么用。
3、PSW:程序状态字。这是一个很重要的东西,里面放了CPU工作时的很多状态,借此,我们能了解CPU的当前状态,并作出对应的处理。它的各位功能请看表2
D7 |
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
CY
|
AC
|
F0
|
RS1
|
RS0
|
OV
|
|
P
|
评论