学习
实践
活动
专区
工具
TVP
写文章

单片机寄存器是什么?单片机寄存器有哪些分类?

单片机中有很多种特殊功能,今天宇凡微来为大家介绍”单片机的寄存器是什么?“以下内容将详细分析单片机寄存器的各个参数。

单片机寄存器是什么?

一、单片机寄存器是什么?

寄存器是一种特殊的存储器,主要用于存储和检查微机的状态。CPU寄存器用于存储和检查CPU的状态,具体包括计算中途数据、程序因中断或子程序分支时的返回地址、计算结果为零时的负值、计算结果为零时的信息、进位值等。

由于CPU的通用寄存器在硬件上直接与CPU相连,因此它们的访问速度比RAM更快,后者通过内部总线访问数据。

单片机的外围功能控制寄存器用于设置外围功能,例如称为通用I/O GPIO的I/O端口、定时器、串行通信、AD转换器和DA转换器。有显示外围功能状态的状态寄存器,存储AD转换器转换结果的结果寄存器,以及存储通信功能中发送/接收数据的发送/接收数据寄存器。

我们可以直接从程序中设置寄存器,但是通常使用厂商们提供的固件库(设备驱动),所以寄存器不是直接设置,而是间接设置的。

二、单片机寄存器的分类

1、SCON控制寄存器

SM2——多机通信控制位:是工作于方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接收到的数据放弃。当SM2=0时,就不管第9位数据是0还是1,都会将数据送入SBUF,并发出中断申请。工作于方式0时,SM2必须为0;

REN允许接收位:用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收;

RB8接收数据位8:在方式2和方式3中,RB8存放接收到的第9位数据,用以识别接收到的数据特征;

TB8发送数据位8:在方式2和方式3中,TB8是要发送的——即第9位数据位。在多机通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址;

RI接收中断标志位:可寻址标志位。接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成;

在串口中断处理时,TI,RI都需要软件清"0",硬件置位后不可能自动清0,此外,在进行缓冲区操作时,需要ES=0,以防止中断出现。

2、AUXR辅助寄存器

AUXR.0:S1BRS,如果为1那么串口1的波特率发生器为独立波特率发生器,否则为定时器1

AUXR.1:EXTRAM,为1则可以使用内部扩展RAM;

AUXR.2:BRTx12,为1则独立波特率发生器不分频,否则12分频;

AUXR.3:S2SMOD,为1串口2波特率加倍,否则不加倍;

AUXR.4:BRTR,为1则允许独立波特率允许,否则不允许;

AUXR.5:UART_M0x6,为1则串口模式0为2分频,否则为12分频;

AUXR.6:T1x12,为1则定时器1不分频,否则12分频;

AUXR.7:T0x12,为1则定时器0不分频,否则12分频。

3、串口寄存器SBUF

SBUF是指串行口中的两个缓冲寄存器,一个是发送寄存器,一个是接收寄存器,在物理结构上是完全独立的,但地址是重叠的。它们都是字节寻址的寄存器,字节地址均为99H;

串行发送数据时,CPU向SBUF写入数据 SBUF=date; //发送数据;

串行接收数据时,CPU从SBUF读出数据 date=SBUF; //接收数据。

以上就是深圳宇凡微为大家介绍关于单片机寄存器是什么和单片机寄存器有哪些分类的全部内容。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211008A0A0DL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券