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:堆栈指针。(专用于指出堆栈顶部数据的地址。)
利用堆栈这种办法来放数据(一批时)只需要知道第一个数据所在地址单元就可以了,简化了操作。