文章目录

  • 内部高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进制为144144/8=18,能被整除,所以可以位操作。再如TMOD地址为89H, 10进制为137137/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:用户标志位,由用户(编程人员)决定什么时候用,什么时候不用。

  • RS1RS0:工作寄存器组选择位。

  • 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表示启动定时器,需要配合GATEINT1

    • 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)和外部中断引脚(INT0INT1)上的电平状态共同控制.
  • 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单片机的特殊寄存器相关推荐

  1. 51单片机的工作寄存器R0~R7位于内部RAM什么位置

    转自:https://zhidao.baidu.com/question/1495509806096353459.html 51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4 ...

  2. 51单片机之特殊功能寄存器SFR

    51单片机之特殊功能寄存器 全部的特殊功能寄存器: 特殊寄存器1.ACC(A):累加器 特殊寄存器2.B:辅助寄存器 特殊寄存器3.标志寄存器PSW: PSW的内部位含义: 举个例子:不做解释了 特殊 ...

  3. 51单片机的特殊功能寄存器

    51单片机的特殊功能寄存器 51单片机的特殊功能寄存器 通过前面课程的学习,我们已知道了单片机的内部有ROM.有RAM.有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么?这些个零碎的东 ...

  4. 51单片机的特殊功能寄存器(SFR)

    阅读前提醒: 文中提到的8051指的是8051微控制器,即51单片机 在上一篇文章51单片机的存储结构中,提到8051微控制器的RAM被划分为通用寄存器.按位寻址寄存器.寄存器组.以及特殊功能寄存器. ...

  5. 51单片机的特殊功能寄存器到底在哪,为何51子系列没有高128B仍然有特殊功能寄存器

    简单来说,就是片内RAM和特殊功能寄存器在物理上是相互独立的.就像51子系列内部RAM没有高128B,但它任然有特殊功能寄存器,因为特殊功能寄存器并不是高128B的存储单元,只是因为其地址编码在80H ...

  6. 51单片机中断相关寄存器

    52单片机中断级别 中断允许寄存器IE EA--全局中断                ES--串口中断 ET2--定时器2中断         EX1--外部中断1 ET1--定时器1 中断     ...

  7. 单片机怎么通过按键控制计时器的开始和停止_超详细!51单片机寄存器功能一览表...

    吴鉴鹰单片机开发板地址 淘宝店铺:[吴鉴鹰的小铺] 地址:[https://item.taobao.com/item.htm?_u=ukgdp5a7629&id=524088004171] 1 ...

  8. 学习笔记之-51单片机特殊功能寄存器

    一.前言 学习51单片机的过程中,其实就是学习怎么用它的特殊功能寄存器(有些寄存器是我们看不到的),特殊功能寄存器是80C51单片机中各功能部件对应的寄存器,用于存放相应功能部件的控制命令,状态或数据 ...

  9. 对存储还搞不清楚,先看看这篇文章-从51单片机上去理解存储器

    存储器是许多存储单元的集合,存储器单元实际上是时序逻辑电路(锁存器)的一种,按单元号顺序排列.每个单元由若干二进制位构成,以表示存储单元中存放的数值,这种结构和数组的结构非常相似.按存储器的使用类型可 ...

最新文章

  1. java集合框架图(二)
  2. Web API-路由(一)
  3. OCS 如何在数据库直接给用户增加联络人
  4. php怎么把时间戳转成日期格式,php怎么把时间格式转换为时间戳?,时间戳转为日期...
  5. ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)
  6. plaintextedit指定一行一行的高亮显示_LED显示器常见芯片的作用及原理,故障诊断维修...
  7. poj 2594 Treasure Exploration 匈牙利二分匹配+floyd
  8. 洛谷P1982 小朋友的数字
  9. SQL 宝典(本人总结供学习使用)
  10. ipvsadm命令的用法
  11. 电力安全工作规程发电厂和变电站电气部分_全国勘察设计注册电气工程师(发输变电)专业考试标准、规范目录...
  12. 浏览器被7654和2345网页劫持解决办法
  13. IMO MSC 307(88)附件1第2部分烟毒性试验
  14. 联想Y40加装固态硬盘
  15. 机器学习笔记之 K-NEAREST NEIGHBORS
  16. 期末python作业
  17. 2000 Followers-3D CSS text
  18. 新生入学了,针对腾讯的产品全民K歌(或QQ空间、腾讯游戏......)做一次推广活动,包括产品功能设计和运营活动推广方案。
  19. Linux命令:ln -s
  20. Maven使用Profile

热门文章

  1. 3D视觉应用案例:引导板件定位抓取
  2. 该如何理解黄峥的新电商梦想?
  3. 电子发票的板式文件服务器地址是什么,税务Ukey电子发票配置菜单参数设置操作指南.pdf...
  4. 南开大学计算机学院 肖嘉文,南开大学计算机学院导师教师师资介绍简介-张志刚...
  5. 广域网技术之HDLC和ppp原理与配置
  6. 个别手机在微信内无法长按识别二维码
  7. 微信好友拉黑删除后怎么恢复聊天记录?只需三步拯救你的微信记录!
  8. 使用text类型的文本输入框模拟password类型的密码输入框
  9. windows 下载 R 和 R studio,以及R语言基本使用
  10. 《强化学习周刊》第59期:GCRL、DNN-RCUCPD-MORL