51单片机的特殊寄存器
文章目录
- 内部高128个字节是SFR区
- 特殊寄存器
- (1)ACC——累加器
- (2)B——一个寄存器
- (3)PSW——程序状态字
- (4)DPTR(DPH、DPL) ——数据指针
- (5)P0、P1、P2、P3——四个并行输入/输出口的寄存器。
- (6)IE——中断充许寄存器
- (7)TCON——定时器/计数器控制寄存器
- (8) TMOD寄存器:定时器/计数器工作方式寄存器
- (9) SUBF寄存器: 串行数据缓冲器(一个接收一个发送)
- (10) SCON寄存器: 串行口控制寄存器
内部高128个字节是SFR区
21个SFR(特殊功能寄存器)离散分布(只能使用直接寻址的方式)。
至于什么叫不可寻址,则是指不能单独进行每一位的操作,如TMOD定时器工作模式及工作方式寄存器,在进行操作时,只能写TMOD=0xXX。
关于能否进行位操作,可以通过查相关资料知道,当然还有个技巧就是其字节地址换成10进制后能否被“8”整除,能被“8”整除的就能进行位操作,不能被“8”整除就不能,如P1地址为90H,10进制为144, 144/8=18,能被整除,所以可以位操作。再如TMOD地址为89H, 10进制为137,137/8=17.125,不能被整除,所以不可以位操作。
特殊寄存器
寄存器符号 | 地址 | 寄存器名称 |
---|---|---|
ACC | E0H | 累加器 |
B | F0H | B寄存器 |
PSW | D0H | 程序状态字 |
SP | 81H | 栈顶指针 |
DPL | 82H | 数据指针低8位 |
DPH | 83H | 数据指针高8位 |
IE | A8H | 中断允许控制寄存器 |
IP | B8H | 中断优先控制寄存器 |
P0 | 80H | I/O口0 |
P1 | 90H | I/O口1 |
P2 | A0H | I/O口2 |
P3 | B0H | I/O口3 |
PCON | 87H | 电源控制及波特率选择寄存器 |
SCON | 98H | 串行口控制寄存器 |
SBUF | 99H | 串行口数据缓冲寄存器 |
TCON | 88H | 定时器控制寄存器 |
TMOD | 89H | 定时器方式选择寄存器 |
TL0 | 8AH | 定时器0低8位 |
TL1 | 8BH | 定时器1低8位 |
TH0 | 8CH | 定时器0高8位 |
TH1 | 8DH | 定时器1高8位 |
(1)ACC——累加器
通常用A表示。该标志常用于程序分支转移的判断条件。
(2)B——一个寄存器
在做乘、除法时放乘数或除数。
(3)PSW——程序状态字
存放CPU工作时的状态。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
CY | AC | F0 | RS1 | RS0 | OV | P |
用途:
CY:进位标志。
AC:辅助进、借位(高半字节与低半字节间的进、借位)。
F0:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。
RS1、RS0:工作寄存器组选择位。
OV:溢出标志位。运算结果按补码运算理解。有溢出,OV=1;无溢出,OV=0。
P:奇偶校验位:它用来表示ALU运算结果中二进制数位“1”的个数的奇偶性。
(4)DPTR(DPH、DPL) ——数据指针
可以用它来访问外部数据存储器中的任一单元,如果不用,也可以作为通用寄存器来用,由我们自已决定如何使用。分成DPL(低8位)和DPH(高8位)两个寄存器。用来存放16位地址值,以便用间接寻址或变址寻址的方式对片外数据RAM或程序存储器作64K字节范围内的数据操作。
(5)P0、P1、P2、P3——四个并行输入/输出口的寄存器。
(6)IE——中断充许寄存器
按位寻址,地址:A8H。
B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
---|---|---|---|---|---|---|---|
EA | - | ET2 | ES | ET1 | EX1 | ET0 | EX0 |
EA (IE.7): EA=0时,所有中断禁止(即不产生中断)
EA=1时,各中断的产生由个别的允许位决定-(IE.6) :保留
ET2(IE.5):定时2溢出中断充许(8052用)
ES (IE.4):串行口中断充许(ES=1充许,ES=0禁止)
ET1(IE.3):定时1中断充许
EX1(IE.2):外中断INT1中断充许
ET0(IE.1):定时器0中断充许
EX0(IE.0):外部中断INT0的中断允许
中断的自然优先级:
中断函数编号 | 中断名称 | 中断标志位 | 中断使能位 | 中断向量地址 | 默认优先级 |
---|---|---|---|---|---|
0 | 外部中断0 | IE0 | EX0 | 03H | 1(最高) |
1 | 定时器T0中断 | TF0 | ET0 | 0BH | 2 |
2 | 外部中断1 | IE1 | EX1 | 13H | 3 |
3 | 定时器T1中断 | TF1 | ET1 | 1BH | 4 |
4 | UART中断(串口) | T1/R1 | ES | 23H | 5 |
(7)TCON——定时器/计数器控制寄存器
字节地址为88H,可以位寻址。
位序号 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
位符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
位地址 | 8FH | 8EH | 8DH | 8CH | 8BH | 8AH | 89H | 88H |
TF1
: 定时器1溢出标志位,当定时器1计满溢出时,由硬件将TF1
置1,并申请中断;进入中断服务程序后,由硬件自动清零。TR1
: 定时器1运行控制位:TR
=1表示启动定时器,需要配合GATE
和INT1
。- 当
GATE
=1,且INT1
为高电平时,TR1
置1启动定时器。 - 当
GATE
=0时,TR1
置1启动定时器1。
- 当
TF0
: 定时器0溢出标志位,功能和用法同TF1
.TR0
: 定时器0运行控制位,功能和用法同TR1
.IE1
: 外部中断1请求标志位.IT1
=0时,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1
脚为高电平,则置1;否则IE1
清0.IT1
=0时,为跳变沿触发方式,当第一个机器周期采样到INT1
为低电平时,将IE1
置1,表示外部中断1正在向CPU请求中断.当CPU响应,转向中断服务程序时,IE1
由硬件清零.
IT1
: 外部中断1触发方式选择位.IT1
=0时,为电平触发方式,引脚INT1
上的低电平有效.IT1
=1时,为跳变沿触发方式,引脚INT1
上的电平从高到低的负跳变有效.
IE0
: 外部中断0请求标志位,功能和用法同IE1
.IT0
: 外部中断0触发方式选择位,功能和用法同IT1
.
(8) TMOD寄存器:定时器/计数器工作方式寄存器
TMOD
寄存器: 定时器/计数器工作方式寄存器.字节地址为89H,不能位寻址.
位序号 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
位符号 | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
控制的定时器 | 定时器1 | 定时器0 |
GATE
: 门控制位GATE
=0时,定时器/计数器启动与停止仅受TCON
寄存器中的TRX
(X=0/1)来控制.GATE
=1时,定时器/计数器启动与停止由TCON
寄存器中的TRX
(X=0/1)和外部中断引脚(INT0
或INT1
)上的电平状态共同控制.
C/T‾\overline{T}T: 定时器模式和计数器模式选择位
- C/T‾\overline{T}T=1时为计数器模式
- C/T‾\overline{T}T=0时为定时器模式
M1
,M0
: 工作方式选择位
定时器T0有4种工作方式:方式0,方式1,方式2,方式3。
设置定时器T1为方式3会让它进入关闭状态。通常情况下,T0不运行于工作方式3,只有在T1处于工作方式2,并不要求中断的条件下才可能使用。这时,T1往往用作串行口波特率发生器,TH0用作定时器,TL0作为定时器或计数器。
定时器T1有3种工作方式:方式0,方式1,方式2。
(9) SUBF寄存器: 串行数据缓冲器(一个接收一个发送)
当发送使用时,就采用SBUF=XXX; (XXX为需要传送的数据)
当接收使用时,采用XXX=SBUF;
(10) SCON寄存器: 串行口控制寄存器
它用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址。
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
9FH | 9EH | 9DH | 9CH | 9BH | 9AH | 99H | 98H |
SM0, SM1
:串行口工作方式控制位。SM0 SM1 工作方式 功能 波特率 0 0 方式0 8位同步移位寄存器 晶振频率/12 0 1 方式1 10位UART 可变 1 0 方式2 11位UART 晶振频率/64或晶振频率/32 1 1 方式3 11位UART 可变 工作方式0
:串行口为同步移位寄存器的输入输出方式。主要用于扩展并行输入或输出口。数据由RXD(P3.0)引脚输入或输出,同步移位脉冲由TXD(P3.1)引脚输出。发送和接收均为8位数据,低位在先,高位在后。波特率固定为fosc/12。工作方式1
:方式1是10位数据的异步通信口。TXD为数据的发送引脚,RXD是数据的接受引脚。传送一帧数据的格式为1位起始位,8位数据位,1位停止位。方式2或方式3
:方式2或方式3时,为11位数据的异步通信口,TXD为数据发送引脚,RXD为数据接收引脚。起始位1位、数据位9位(含附加的第九位,发送时为SCON中的TB8,接收时为SCON中的RB8)、停止位1位,一帧数据为11位。方式2的波特率固定为晶振频率的1/32或1/64。方式3的波特率由定时器T1的溢出率决定。SM2
:多机通信控制位。
多机通信是工作于方式2和方式3,即SM2主要用于方式2和方式3。当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。
REN
:允许接受位。
REN=1:允许接收
REN=0:禁止接收
TB8
:发送数据位8.
在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。
RB8
:接收数据位8(一般配置为0)。
在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征。
TI
:发送中断标志位。
可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。
RI
:接收中断标志位。
可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。
在配置串口初始化程序的时候,我们一般只用配置高四位,如果我们选择工作方式1,那么就是SCON=0X50;(SM0=0,SM1=1,SM2=0,REN=1)
51单片机的特殊寄存器相关推荐
- 51单片机的工作寄存器R0~R7位于内部RAM什么位置
转自:https://zhidao.baidu.com/question/1495509806096353459.html 51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4 ...
- 51单片机之特殊功能寄存器SFR
51单片机之特殊功能寄存器 全部的特殊功能寄存器: 特殊寄存器1.ACC(A):累加器 特殊寄存器2.B:辅助寄存器 特殊寄存器3.标志寄存器PSW: PSW的内部位含义: 举个例子:不做解释了 特殊 ...
- 51单片机的特殊功能寄存器
51单片机的特殊功能寄存器 51单片机的特殊功能寄存器 通过前面课程的学习,我们已知道了单片机的内部有ROM.有RAM.有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么?这些个零碎的东 ...
- 51单片机的特殊功能寄存器(SFR)
阅读前提醒: 文中提到的8051指的是8051微控制器,即51单片机 在上一篇文章51单片机的存储结构中,提到8051微控制器的RAM被划分为通用寄存器.按位寻址寄存器.寄存器组.以及特殊功能寄存器. ...
- 51单片机的特殊功能寄存器到底在哪,为何51子系列没有高128B仍然有特殊功能寄存器
简单来说,就是片内RAM和特殊功能寄存器在物理上是相互独立的.就像51子系列内部RAM没有高128B,但它任然有特殊功能寄存器,因为特殊功能寄存器并不是高128B的存储单元,只是因为其地址编码在80H ...
- 51单片机中断相关寄存器
52单片机中断级别 中断允许寄存器IE EA--全局中断 ES--串口中断 ET2--定时器2中断 EX1--外部中断1 ET1--定时器1 中断 ...
- 单片机怎么通过按键控制计时器的开始和停止_超详细!51单片机寄存器功能一览表...
吴鉴鹰单片机开发板地址 淘宝店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&id=524088004171] 1 ...
- 学习笔记之-51单片机特殊功能寄存器
一.前言 学习51单片机的过程中,其实就是学习怎么用它的特殊功能寄存器(有些寄存器是我们看不到的),特殊功能寄存器是80C51单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令,状态或数据 ...
- 对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器
存储器是许多存储单元的集合,存储器单元实际上是时序逻辑电路(锁存器)的一种,按单元号顺序排列.每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似.按存储器的使用类型可 ...
最新文章
- java集合框架图(二)
- Web API-路由(一)
- OCS 如何在数据库直接给用户增加联络人
- php怎么把时间戳转成日期格式,php怎么把时间格式转换为时间戳?,时间戳转为日期...
- ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)
- plaintextedit指定一行一行的高亮显示_LED显示器常见芯片的作用及原理,故障诊断维修...
- poj 2594 Treasure Exploration 匈牙利二分匹配+floyd
- 洛谷P1982 小朋友的数字
- SQL 宝典(本人总结供学习使用)
- ipvsadm命令的用法
- 电力安全工作规程发电厂和变电站电气部分_全国勘察设计注册电气工程师(发输变电)专业考试标准、规范目录...
- 浏览器被7654和2345网页劫持解决办法
- IMO MSC 307(88)附件1第2部分烟毒性试验
- 联想Y40加装固态硬盘
- 机器学习笔记之 K-NEAREST NEIGHBORS
- 期末python作业
- 2000 Followers-3D CSS text
- 新生入学了,针对腾讯的产品全民K歌(或QQ空间、腾讯游戏......)做一次推广活动,包括产品功能设计和运营活动推广方案。
- Linux命令:ln -s
- Maven使用Profile
热门文章
- 3D视觉应用案例:引导板件定位抓取
- 该如何理解黄峥的新电商梦想?
- 电子发票的板式文件服务器地址是什么,税务Ukey电子发票配置菜单参数设置操作指南.pdf...
- 南开大学计算机学院 肖嘉文,南开大学计算机学院导师教师师资介绍简介-张志刚...
- 广域网技术之HDLC和ppp原理与配置
- 个别手机在微信内无法长按识别二维码
- 微信好友拉黑删除后怎么恢复聊天记录?只需三步拯救你的微信记录!
- 使用text类型的文本输入框模拟password类型的密码输入框
- windows 下载 R 和 R studio,以及R语言基本使用
- 《强化学习周刊》第59期:GCRL、DNN-RCUCPD-MORL