C51系列RAM寄存器表
特殊功能寄存器地址表
|
SFR |
符号 |
字节 地址 |
位地址和位名称 |
|||||||
|
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|||
|
P0口 |
P0 |
80H |
P0.7 |
P0.6 |
P0.5 |
P0.4 |
P0.3 |
P0.2 |
P0.1 |
P0.0 |
|
87H |
86H |
85H |
84H |
83H |
82H |
81H |
80H |
|||
|
堆栈指针 |
SP |
81H |
||||||||
|
数据指针低字节 |
DPL |
82H |
||||||||
|
数据指针高字节 |
DPH |
83H |
||||||||
|
…… (此处保留3字节) |
||||||||||
|
电源控制与波特率选择 |
PCON* |
87H |
SMOD |
GF1 |
GF0 |
PD |
IDL |
|||
|
定时器计数器控制寄存器 |
TCON* |
88H |
TF1 |
TR1 |
TF0 |
TR0 |
IE1 |
IT1 |
IE0 |
IT0 |
|
8FH |
8EH |
8DH |
8CH |
8BH |
8AH |
89H |
88H |
|||
|
定时器/计数器方式控制 |
TMOD * |
89H |
GATE |
C/T^ |
M1 |
M0 |
GATE |
C/T^ |
M1 |
M0 |
|
定时器/计数机0低字节 |
TL0 |
8AH |
||||||||
|
定时器/计数器1低字节 |
TL1 |
8BH |
||||||||
|
定时器/计数器0高字节 |
TH0 |
8CH |
||||||||
|
定时器/计数器1高字节 |
TH1 |
8DH |
||||||||
|
……(此处保留2字节) |
||||||||||
|
P1口 |
P1 |
90H |
P1.7 |
P1.6 |
P1.5 |
P1.4 |
P1.3 |
P1.2 |
P1.1 |
P1.0 |
|
97H |
96H |
95H |
94H |
93H |
92H |
91H |
90H |
|||
|
……(此处保留7字节) |
||||||||||
|
串行控制 |
SCON |
98H |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
|
9FH |
9EH |
9DH |
9CH |
9BH |
9AH |
99H |
98H |
|||
|
串行数据线缓冲器 |
SBUF |
99H |
||||||||
|
P2口 |
P2 |
A0H |
P2.7 |
P2.6 |
P2.5 |
P2.4 |
P2.3 |
P2.2 |
P2.1 |
P2.0 |
|
A7H |
A6H |
A5H |
A4H |
A3H |
A2H |
A1H |
A0H |
|||
|
中断允许控制 |
IE * |
A8H |
EA |
ES |
ET1 |
EX1 |
ET0 |
EX0 |
||
|
AFH |
AEH |
ADH |
ACH |
ABH |
AAH |
A9H |
A8H |
|||
|
P3口 |
P3 |
B0H |
P3.7 |
P3.6 |
P3.5 |
P3.4 |
P3.3 |
P3.2 |
P3.1 |
P3.0 |
|
B7H |
B6H |
B5H |
B4H |
B3H |
B2H |
B1H |
B0H |
|||
|
中断优先控制 |
IP * |
B8H |
PS |
TP1 |
PX1 |
PT0 |
PX0 |
|||
|
BCH |
BBH |
BAH |
B9H |
B8H |
||||||
|
定时器/计数器2控制寄存器 |
T2CON |
C8H |
TF2 |
EXF2 |
RCLK |
TCLK |
EXEN2 |
TR2 |
C/T2 |
CP/RL2 |
|
CF |
CE |
CD |
CC |
CB |
CA |
C9 |
C8 |
|||
|
RCAP2L |
CAH |
|||||||||
|
RCAP2H |
CBH |
|||||||||
|
定时器/计数器2低字节 |
TL2 |
CCH |
||||||||
|
定时器/计数器2高字节 |
TH2 |
CDH |
||||||||
|
程序状态寄存器 |
PSW |
D0H |
CY |
AC |
F0 |
RS1 |
RS0 |
OV |
P |
|
|
D7H |
D6H |
D5H |
D4H |
D3H |
D2H |
D1H |
D0H |
|||
|
累加器 |
ACC |
E0H |
||||||||
|
B寄存器 |
B |
F0H |
||||||||
****************************************************************************************
SMOD 波特率加倍位;如果将定时器1作为串行端口的波特率时钟,且工作于模式1、2或3,那么将SMODH设置为1可使波特率加倍
GF1 通用标志位1
GFV 通用标志位V
PD 掉电模式位;对于CMOS版本的8V51,将该位置1可以进入掉电模式
IDL 空闲模式位;对于CMOS版本的8V51,将该位置1可以进入空闲模式
*****************************************************************************************
TF1 定时器1溢出标志;当定时器Y计数器发生溢出时由硬件置位;该位可以用软件清零,当CPU转向中断服务程序时该位被自动清零。
TR1 定时器1运行控制,由软件置位和清零,分别可以启动和停止定时Y计数器1。
TF0 定时器0溢出标志。
TR0 定时器0运行控制。
IE1 外部中断1的中断标志,当探测到外部中断1时由硬件置位,当转入中断服务程序后用软件清零。
IT1 外部中断1控制位,其置位和清零由软件设置,分别对应着外部中断1的下降沿触发和低电平触发
IE0 外部中断0的中断标志。
IT0 外部中断0控制位。
*******************************************************************************************
SM0 串行端口方式位V,参阅表DX1
SM1 串行端口方式位1,参阅表DX1
SM2 串行端口方式位2,可将方式2和方式3设置为多处理器通信方式。在方式2和方式3中,如果将SM2位设置为1,当接收到的第9数据位(RB8)为V时RI不置位。在方式1 中,如果未接收到有效停止位则RI不 被置位。在方式V中,SM2必须设置为0。
REN 接收启用位,由软件置位Y清零,分别对应接收的启用/禁用。
TB8 发送数据位8,对于方式2和方式3,TB8作为第9数据位发送,由软件置位/清零
RB8 接收数据位8,在方式2和方式3中,RB8是接收到的第数据位。对于方式1,如果SM2=V,RB8存放的是接收到的停止位。
TI 发送中断标志,对于方式0,当发送完第8位数据后由硬件置位,在其他方式下,在开始发送停止位的同时由硬件置位。TI位必须由软件清零。
RI 接收中断标志,对于方式0,接收完第8位数据后,该位由硬件置位。在其他方式下,当接收到停止位后,该位由件置位。RI必须由软件清零。
******************************************************************************************
EA 启用/禁用所有中断。如果EA=0,所有的中断都被禁用。如果EA=1,各中断的启用或禁用通过对各自的启用位进行置位或清零来设置.
ET2 启用/禁用定时器2的溢出或捕捉中断(仅对于80×2).
ES 启用/禁用串行端口中断.
ET1 启用/禁用定时器1溢出中断.
EX1 启用/禁用外部中断1.
ET0 启用/禁用定时器0溢出中断.
EX0 启用/禁用外部中断0.
*******************************************************************************************
PT2 定时器2中断优先级(只有80×2).
PS 串行端口中断优先级.
PT1 定时器1中断优先级.
PX1 外部中断1优先级.
PT0 定时器0中断优先级.
PX0 外部中断0优先级.
*******************************************************************************************
TF2 定时器2溢出标志,硬件置位软件清零。当RCLKH=1或TCLKH=H1时,TF2不会被置位.
EXF2 定时器2外部标志,当T2EX输入引脚的负跳变导致发生捕捉或重载且EXEN2=1时,该位由硬件置位。在定时器2中断被允许时,EXF2=1将使CPU转向定时器2的中 断服务子例程。EXF2必须由软件清零.
RCLK 接收时钟,当RCLK=1,使得串行端口工作在方式1和方式3时由定时器2的溢出作为接收时钟;RCLK=0导致串行端口工作在方式1和方式3时由定时器1的溢出作为 接收时钟.
TCLK 发送时钟,TCLK=1导致串行端口工作在方式和方式3时由定时器2的溢出作为发送时钟;TCLK=0导致串行端口工作在方式1和方式3时由定时器1的溢出作为发送时 钟
EXEN2 定时器2外部启用,如果将其置位,当定时器2不用作串行波特率时钟时,T2EX上的负跳变将导致一次捕捉或重载.
TR2 定时器2运行位,由软件控制定时器2的启动和停止,置位该位可启动定时器2。
C/T2 定时器2的计数器Y定时器选择,V=内部定时器;1=外部事件计数器(下降沿触发)
CP/RL2 定时器2的捕捉Y重载选择,当该位置1时,如果EXEN2=1,那么在T2EX产生负跳变时捕捉;当该位清零时,如果EXEN2=1,那么定时器2溢出或在T2EX出现负跳 变时将自动重装载。当RCLK=1H或TCLK=1时该位将被忽略,定时器2将工作在自动重装载方式.
<单片机内部结构图>
C51系列RAM寄存器表的更多相关文章
- MCS-51系列特殊功能寄存器(摘录)
MCS-51系列特殊功能寄存器(80H~FFH) 1. P0 (80H) P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 2.SP 栈指针(81H) 3.DPTR 数据 ...
- struts2官方 中文教程 系列六:表单验证
先贴个本帖的地址,以免被爬:struts2教程 官方系列六:表单验证 即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 介 ...
- MySQL 性能优化系列之一 单表预处理
MySQL 性能优化系列之一 单表预处理 背景介绍 我们经常在写多表关联的SQL时,会想到 left jion(左关联),right jion(右关联),inner jion(内关联)等. 但是,当表 ...
- Flask开发系列之Web表单
Flask开发系列之Web表单 简单示例 from flask import Flask, request, render_template app = Flask(__name__) @app.ro ...
- 【JavaScript数据结构系列】05-链表LinkedList
[JavaScript数据结构系列]05-链表LinkedList 码路工人 CoderMonkey 转载请注明作者与出处 ## 1. 认识链表结构(单向链表) 链表也是线性结构, 节点相连构成链表 ...
- 数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解
数据结构与算法系列2 线性表 使用java实现动态数组+ArrayList源码详解 对数组有不了解的可以先看看我的另一篇文章,那篇文章对数组有很多详细的解析,而本篇文章则着重讲动态数组,另一篇文章链接 ...
- OpenvSwitch系列之七 meter表限速
Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl命令使用 Open vSwit ...
- 齐博x1第四季《模块插件的制作》系列21-公共表单器的参数选项(7)
password 密码类型 和text一样,只不过type类型是password,密码类型输入时,显示星号.即Html中的密码框类型 icon 字体图标类型 和列表页一样,把css的字体图标引入到了表 ...
- information_schema系列五(表,触发器,视图,存储过程和函数)
这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 1:TABLES TABLES这张表毫无疑问了,就是记录的数据库中表 ...
随机推荐
- 从无到有开发连麦直播技术<转>
转贴地址:http://blog.csdn.net/heisedelangzi/article/details/52400333 从无到有开发连麦直播技术点整理-AnyRTC 直播关键字 采集.前处理 ...
- [LeetCode] Word Search [37]
题目 Given a 2D board and a word, find if the word exists in the grid. The word can be constructed fro ...
- 使用jcrop进行头像剪切
http://www.cnblogs.com/chenssy/archive/2013/05/18/3084985.html http://code.ciaoca.com/jquery/jcrop/ ...
- 让jquery easyui datagrid列支持绑定嵌套对象
嵌套对象是指返回的json数据,是对象的某个属性自带有属性.而我们恰恰又需要这个属性,默认情况下easyui的datagrid是不支持绑定嵌套对象的.比如:datagrid的field属性只能为fie ...
- Java基础知识强化90:Date类之Data类中日期和毫秒相互转换
1.Date两个方法: public long getTime():获取时间,以毫秒为单位 public void setTime(long time):设置时间 2. 代码示例: package c ...
- Ubuntu apt-get 错误 -11 -system error
错误图片 上述错误是dns解析错误,不能解析域名了,所以也访问不了 解决办法,添加dns,命令如下 sudo vim /etc/resolv.conf 添加 nameserver (此外填写域名服务器 ...
- codevs 2494 Vani和Cl2捉迷藏
/* 一开始大意了 以为和bzoj上的祭祀是一样的(毕竟样例都一样) 这里不知相邻的点可以相互到达 间接相连的也可以到达 所以floyed先建立一下关系 再跑最大独立集 下面贴一下95 和 100的代 ...
- 解决 jsp eclipse异常 【The import javax.servlet cannot be resolved】
[ <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 报错][impor ...
- python代码合并
http://www.baidu.com/s?wd=python%E4%BB%A3%E7%A0%81%E5%90%88%E5%B9%B6&rsv_bp=0&ch=&tn=mon ...
- ASP.NET 2.0服务器控件开发的基本概念(转载)
利用ASP.NET 2.0技术,创建Web自定义服务器控件并不是一件轻松的事情.因为,这需要开发人员了解并能够灵活应用多种Web开发技术,例如,CSS样式表.客户端 脚本语言..NET开发语言.服务器 ...