返回首页

51单片机寄存器详解?

167 2024-01-05 23:55 admin   手机版

一、51单片机寄存器详解?

51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。

在单片机中有一些独立的存储单元是用来控制这些器件的,被称之为特殊功能寄存器(SFR)。

二、51单片机寄存器的功能?

51单片机的寄存器分为工作寄存器和特殊功能寄存器两大类。

工作寄存器在内部RAM的00H~1FH地址区,共分4组,都用R0~R7表示,因为编写主程序时需要调用子程序或响应中断服务程序,如果都使用一组工作寄存器,必然会造成寄存器的数据冲突,而出现错误。因此,需用特殊功能寄存器程序状态字(PSW)的RS0、RS1两位来设置使用的工作寄存器组,应单片机开机上电复位时,PSW为00H,故自动选择第0组工作寄存器,而子程序和中断服务程序可使用第1组、第2组或第3组工作寄存器,这样即使编程时使用了相同的工作寄存器,也不会造成寄存器的数据冲突了。

特殊功能寄存器在内部RAM的80H~0FFH地址区,主要有累加器A,寄存器B,程序状态字PSW,P0~P3 I/O口寄存器,定时/计数器及串行通信控制、中断控制等特殊功能寄存器,这些寄存器的应用课本上都有详细的介绍,需要慢慢的学习体会。最好卖块51单片机的仿真实验板,边练边学,才能提高学习兴趣加深理解。

三、51单片机中B寄存器?

你的是51单片机吧?现在学校都学这个,其实是比较差的一款。不多说,解释一下。寄存器A应该是指 累加器A,寄存器B应该是通用寄存器B。寄存器A是专门用来放操作数和运算结果的,51单片机的所有运算几乎都要通过累加器A来实现,不通过累加器A实现不了。

而寄存器B是专门为乘法和处罚设计的寄存器,用来放运算前的乘数、除数,运算后的积的低8位、余数,除此之外基本没有其他功能。

四、51单片机中pc寄存器作用?

51单片机中PC寄存器是用来存储指向下一条指令的地址,也即将将要执行的指令代码。 由执行引擎读取下一条指令。

它是一块很小的内存空间,几乎可以忽略不计。 也是运行速度最快的存储区域。

在jvm规范中,每个线程都有它自己的程序计数器,是线程私有的,生命周期与线程的生命周期保持一致。

任何时间一个线程都只有一个方法在执行,也就是所谓的当前方法。 程序计数器会存储当前线程正在执行的java方法的JVM指令地址;或者,如果实在执行native方法,则是未指定值(undefined),因为程序计数器不负责本地方法栈。

它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。

五、51单片机的寄存器有哪些?

单片机常用寄存器

1、SCON

SCON(Serial Control Register)串行口控制寄存器,用于控制串行通信的方式选择、接收和发送,指示串口的状态。SCON既可以字节寻址,也可以位寻址,其字节地址为98H,地址位为98H~9FH。

工作方式(SM0 SM1)

REN

——允许接收位

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

TI

——发送中断标志位

可寻址标志位。方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。

RI

——接收中断标志位

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

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

2、SBUF

SBUF全称serial data buffer,中文名称“串行数据缓冲器”,这个重叠的地址靠读/写指令区分:串行发送时,CPU向SBUF写入数据,此时99H表示发送SBUF;串行接收时,CPU从SBUF读出数据,此时99H表示接收SBUF。

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

3、定时器

组成:两个16位的定时器T0和T1,以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成。内部通过总线与CPU相连。

定时器T0和T1各由两个8位特殊功能寄存器TH0、TL0、TH1、TL1构成

工作方式寄存器TMOD:用于设置定时器的工作模式和工作方式;

控制寄存器TCON:用于启动和停止定时器的计数,并控制定时器的状态;

GATE — 门控位

0:以TRX (X=0,1) 来启动定时器/计数器运行。

1: 用外中断引脚 (INT0*或INT1*) 上的高电平和TRX来启动定时器/计数器运行。

M1、M0 — 工作方式选择位

M1 M0 工 作 方 式

0 0 方式0,13位定时器/计数器。

0 1 方式1,16位定时器/计数器。

1 0 方式2,8位常数自动重新装载

1 1 方式3,仅适用于T0,

C/T* — 计数器模式和定时器模式选择位

0: 定时器模式。

1: 计数器模式

TF1、TF0 —计数溢出标志位

定时器T0或T1计数溢出时,由硬件自动将此位置“1”;

TFx可以由程序查询,也是定时中断的请求源;

TR1、TR0 —计数运行控制位

TRx=1: 启动定时器/计数器工作

TRx=0: 停止定时器/计数器工作

IE1

外部中断1请求标志位

IT1

外部中断1触发方式选择位。当IT1=0,为低电平触发方式;当IT1=1,为下降沿触发方式。

IE0

外部中断0请求标志位。

IT0

外部中断0触发方式选择位。 当IT0=0,为低电平触发方式;当IT0=1,为下降沿触发方式。

4、IE

中断允许寄存器IE

EA:当EA=1时CPU开总中断,当EA=0时CPU关总中断。

ET2、ET1、 ET0:定时器中断允许控制去位。为1时允许中断。

EX1、EX0:外部中断中断允许控制位。为1时允许外部中断。

ES:串行口中断允许控制位。为1时允许中断。

六、51单片机寄存器最大赋值多少?

51单片机外部数据存储器最大64K.

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

七、51单片机怎么设置pcon寄存器?

你好,51单片机的PCON寄存器是一个8位寄存器,它包含了一些系统控制位,可以用于控制单片机的一些特殊功能。具体的设置方法如下:

1. 首先,需要将PSEN(程序存储器使能)位和EA(全局中断使能)位设置为0,以保证程序正常运行。

2. 然后,可以根据需要设置P3.3(外部中断1)和P3.2(外部中断0)的触发方式,可以选择下降沿触发、上升沿触发或低电平触发等。

3. 如果需要使用定时器,还可以设置P3.4(定时器0溢出中断)和P3.5(定时器1溢出中断)的中断使能位。

4. 如果需要使用电源管理功能,可以设置P3.0(电源管理唤醒中断)的中断使能位。

5. 最后,需要将PWE(程序存储器编程使能)位设置为0,以避免意外擦写程序存储器。

例如,如果需要使用外部中断0和定时器1溢出中断,可以将PCON寄存器设置为:PCON = 0x82;(二进制为10000010)。

注意:PCON寄存器的各个位的具体含义和设置方法,请参考51单片机的数据手册或参考资料。

八、51单片机入门教程?

1、单片机概念:在一片集成电路芯片上集成微处理器(CPU)、存储器(ROM和RAM)、I/O接口电路,从而构成了单芯片微型计算机,即单片机(single chip Microcomputer)也叫微控制器(MCU)。

2、学习51单片机C语言编程基本知识:(1)电平特性

数字电路中只有两种电平:高和低

单片机为TTL电平: 高 +5V 低 0V

RS232电平:计算机的串口 高 -12V 低+12V

所以计算机与单片机之间通讯时需要加电平转换芯片max232等其他芯片

(2)二进制

数字电路中的两种电平特性决定了它使用二进制运算。

二进制逻辑运算:

逻辑变量 : 只有两个:“0”(假)和“1”(真)。

(3)基本语法:

变量定义

数据类型 变量名

int num1;

double num2 = 2;

unsigned short num3;

<1> if()语句

if(条件){分支}

if(条件){分支1}else{分支2}

if(x>=0)

{y=y/2;}

else

{y=y*x;}

<2> .while()语句

while(条件){循环体}

while(i<10)

{s+=k;}

<3> for()语句

for(表达式1;条件2;表达式3){循环体}

for(i=0;x!=y;j++)

{z/=3;}

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

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

工作寄存器组很重要,用于单片机内部逻辑运算的数据交换,或者是RAM寻址的地址指针。

具体使用时,需要通过psw程序状态字的RS0/RS1选择当前工作寄存器组。

十、51单片机的sp寄存器多少位?

MCS-51单片机的堆栈区只可设置在片内RAM区,复位时SP指向07H,SP是个8位的堆栈指针。

顶一下
(0)
0%
踩一下
(0)
0%
用户反馈
问题反馈
用户名: 验证码:点击我更换图片