产品选型

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

小编 2024-11-24 产品选型 23 0

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

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

单片机寄存器是什么?

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

寄存器是一种特殊的存储器,主要用于存储和检查微机的状态。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; //接收数据。

推荐阅读:“揭秘”单片机主要寄存器有哪些?

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

原文:单片机寄存器是什么?单片机寄存器有哪些分类?-深圳宇凡微

控制单片机里面的寄存器,要怎么玩?

这篇文章适合刚刚入门的单片机小白看。

单片机在电学里面,属于很简单的一种器件,外表看,就是一个芯片,长着很多的脚。内部,就是一堆寄存器。不同的单片机,外部表现就是形状和引脚数量和引脚名称可能不一样,内部,就是寄存器名称不一样。

我们要做的,就是写程序控制单片机里面的寄存器,然后通过引脚表现出来完成各种电子产品。

所以,你在看别人写的程序的时候,会经常看到给单片机寄存器赋值的语句。下面就以最简单的控制51单片机引脚高低电平来说明一下。(不要总是存在51单片机已经淘汰的想法,51单片机至今任然是出货量最大的单片机,并且各大公司每年都有新款的51单片机推出,功能越来越强劲,做产品,要选最合适的单片机,而不要总想用牛逼的单片机。)

例如,单片机P1口有8个引脚,分别为P1.0~P1.7,如果想让P1口的8个引脚都输出高电平,是这么写:P1=0XFF;如果想让P1口的8个引脚都输出低电平,是这么写:P1=0X00;如果只让P1.0输出高电平,其他引脚输出低电平,是这么写:P1=0X01......

这些值是怎么来的呢?

计算方法:

一个数,前面以0X开头,标示后面的数是十六进制数。所以首先,我们先要知道十进制和十六进制的转换。

十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F

十进制: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

以上十六进制和十进制是对应关系,例如B对应11。

单片机和计算机一样,是以“位”为最小单片机,例如,P1是一个8位的寄存器。P1寄存器的8个位名称分别是:P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0

上面的0X开头的数,是以4个“位”为一个单位进行计算,以8421码进行相加计算,听这里很迷糊吧。举个例子就明白了。

你可以做一个这样的表格:

从上表看出,把寄存器的“位”,从高到低排列,然后以4个为一组,对应的8421码如上图所示。

给寄存器写值,实际上就是给它的每个位写0或者1,例如要使得哪个引脚为高电平,就给对应的位写1;要使得哪一个引脚为低电平,就给对应的位写0。然后把对应为1的8421加起来,以4个位为一组。

例如,我们要让每一个引脚都输出高电平,就是每个位的值都为1,那对应寄存器的高四位,8+4+2+1=15,15对应的是十六进制的F,再看寄存器的低四位,8+4+2+1=15,还是对应F,所以最后的值就是0xFF。

再看,如果让每一个引脚都输出低电平,就是每个位的值都是1,前面说过,只有对应位是1,才把它们的8421加起来,现在都是0,所以都不用加,结果就是0x00。

再看,如果只让P1.0引脚是高电平,其他引脚输出低电平,那么,只有P1.0对应的位是1,其它的位是0,所以,只需要取P1.0上面的1码,所以结果就是0x01。

再看,如果让P1.0、P1.1、P1.7、P1.5输出高电平,其它引脚输出低电平,那么对应的值如下图所示:

我们看寄存器的高四位,取对应1上面的码8+2=10,10对应十六进制的A,再看寄存器的低四位,取对应1上面的码2+1=3,3对应的十六进制还是3,所以结果就是0XA3,这是,你写P1=0XA3,就可以使得引脚该高的高,该低的低了。

不管是51的8位寄存器,还是ARM的32位寄存器,寄存器中的每一个位都有一定的用意,这些用意可以查看单片机的用户手册得知,你只需要按照你的要求,给对应的位写1或者0,然后利用上面的方法得出结果,就可以操作单片机的寄存器了。

你学会了吗?

相关问答

单片机 里面的 寄存器 与存储器不同吗?

单片机里面的寄存器与存储器没有什么不同。唯一区别寄存器有名称,并且某些位也有名称,而通用存储器只有地址,没有名称。寄存器是CPU内部的元件,包括通用寄存...

什么是 单片机 寄存器 ?

单片机的寄存器是一种存储器件,用于存储和操作单片机中的数据。它是单片机内部的一部分,在CPU内部或与CPU紧密集成。寄存器的容量通常非常有限,每个寄存器能够...

关于 单片机 工作 寄存器 位,地址,字节的理解?

不知道你问的是什么问题!可能你根本就没理解寄存器地址的基本概念!51单片机因为是8位机,其每一个寄存器的位数也是8位的,也就是一个字节的长度。32位机的寄...

51 单片机 工作 寄存器 组是什么?

51单片机的工作寄存器组是RAM低端的32个单元,地址是00~1FH,这个区域被分成4组,每组都是8个单元,单元的名称都是R0~R7。工作寄存器组很重要,用于单片机内部...

单片机 的RAM和ROM是什么意思?-ZOL问答

这个地方允许放一些其它东西,〔单片机中也就是数据!〕。当这个活动开始的时候...寄存器,要说功能的话,每个寄存器都有它的功能!建议你搜索一下单片机寄存器功...

单片机 中,ROM,RAM,和各种 寄存器 的功能是什么,地址和数据存放...

RAM存临时数据(单片机内所有的寄存器都是定义在RAM中的,另外,RAM也空出了一部分地址给用户使用,堆栈就可以在这里建立)地址:你得明白地址是个什么东西,是通过门...

单片机 中的触发器 和寄存器 是怎样工作的?

触发器是一种状态处理监测机制。通过对电平高低,上升或下降沿做出反应使输出跟随变化,单片机中没有特定的触发器。应用时只用关注定时器或某种中断处理机制就...

单片机 里面DPTR是什么 寄存器 ,作用是什么?

DPTR是某些单片机中一个功能比较特殊的寄存器,是一个16位的特殊功能寄存器。1、DPTR寄存器:DPTR是某些单片机中一个功能比较特殊的寄存器,是一个16位的特殊功...

51 单片机 寄存器和 RAM地址?

51单片机的工作寄存器一共有32个,为RAM中的00H--1FH单元,分为4组,分别是0组:00H--07H单元、1组:08H--0FH单元、2组:10H--17H单元、3组:18H--1FH单元,....

8051 单片机 中有多少组工作 寄存器 ?

51单片机有4组工作寄存器,每组各8个,寄存器名称都是R0~R7。这4组工作寄存器位于单片机数据存储的底部,0组地址是00~07,1组地址是08~0F,2组地址是10~17,4组...

猜你喜欢