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