I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用呢?在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。
符号 |
地址 |
功能介绍 |
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
特殊功能寄存器地址映象表
常见SFr:
1.累加器A 2.寄存器B 3.程序状态字PSW 4.P0、P1、P2、P3
5.DPTR:数据指针,能用它来访问外部数据存储器中的任一单元,如果不用,也能作为通用寄存器来用,由我们自已决定如何使用。16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。
6.SP:堆栈指针。(专用于指出堆栈顶部数据的地址。)
利用堆栈这种办法来放数据(一批时)只需要知道第一个数据所在地址单元就可以了,简化了操作。