您的位置 首页 新品

51单片机内部操控寄存器

看到程序中用到F0,还以为是印刷错误,结果发现居然有F0,而且,在B寄存器和PSW中都有,特地找了网上,铭记之51单片机内部控制寄存器通过前面课程

看到程序中用到F0,还以为是印刷过错,成果发现居然有F0,并且,在B寄存器和PSW中都有,特别找了网上,铭记之

51单片机内部操控寄存器

经过前面课程的学习,咱们已知道了单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部终究还有些什么?这些个琐细的东西怎样连在一起的?

下面就让咱们来对单片机内部作一个完好的剖析吧!

从图中咱们能够看出,在51单片机内部有一个CPU用来运算、操控,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来寄存程序,有RAM,用来寄存中心成果,此外还有守时/计数器,串行I/O口,中止体系,以及一个内部的时钟电路。在一个51单片机的内部包括了这么多的东西。

对图进行进一步的剖析,咱们已知,对并行I/O口的读写只需将数据送入到相应I/O口的锁存器就能够了,那么关于守时/计数器,串行I/O口等怎样用呢?在单片机中有一些独立的存储单元是用来操控这些器材的,被称之为特别功用寄存器(SFR)。事实上,咱们已触摸过P1这个特别功用寄存器了,还有哪些呢?看表1

表1
符号 地址 功用介绍
B F0H B寄存器
ACC E0H 累加器
PSW D0H 程序状况字
IP B8H 中止优先级操控寄存器
P3 B0H P3口锁存器
IE A8H 中止答应操控寄存器
P2 A0H P2口锁存器
SBUF 99H 串行口锁存器
SCON 98H 串行口操控寄存器
P1 90H P1口锁存器
TH1 8DH 守时器/计数器1(高8位)
TH0 8CH 守时器/计数器1(低8位)
TL1 8BH 守时器/计数器0(高8位)
TL0 8AH 守时器/计数器0(低8位)
TMOD 89H 守时器/计数器方法操控寄存器
TCON 88H 守时器/计数器操控寄存器
DPH 83H 数据地址指针(高8位)
DPL 82H 数据地址指针(低8位)
SP 81H 仓库指针
P0 80H P0口锁存器
PCON 87H 电源操控寄存器

下面,咱们介绍一下几个常用的SFR。

1、ACC—是累加器,通常用A标明。

这是个什么东西,可不能从姓名上了解,它是一个寄存器,而不是一个做加法的东西,

为什么给它这么一个姓名呢?或许是由于在运算器做运算时其间一个数一定是在ACC中的原因吧。它的姓名特别,身份也特

殊,稍后在中篇中咱们将学到指令,能够发现,一切的运算类指令都离不开它。自身带有全零标志Z,若A=0则Z=1;若A≠0

则z=0。该标志常用作程序分枝搬运的判别条件。

2、B–一个寄存器。

在做乘、除法时放乘数或除数,不做乘除法时,随你怎样用。

3、PSW—–程序状况字。这是一个很重要的东西,里边放了CPU作业时的许多状况,借此,咱们能够了解CPU的当时状况,并

作出相应的处理。它的各位功用请看表2

表2
D7
D6
D5
D4
D3
D2
D1
D0
CY
AC
F0
RS1
RS0
OV
P

下面咱们逐个介绍各位的用处

CY:进位标志。8051中的运算器是一种8位的运算器,咱们知道,8位运算器只能标明到0-255,假如做加法的话,两数相加可能会超越255,这样最高位就会丢掉,形成运算的过错,怎样办?最高位就进到这里来。这样就没事了。有进、借位,CY=1;无进、借位,CY=0

例:78H+97H(01111000+10010111)
AC:辅佐进、借位(高半字节与低半字节间的进、借位)。

例:57H+3AH(01010111+00111010)

F0:用户标志位,由用户(编程人员)决议什么时分用,什么时分不必。

RS1、RS0:作业寄存器组挑选位。这个咱们已知了。

0V:溢出标志位。运算成果按补码运算了解。有溢出,OV=1;无溢出,OV=0。什么是溢出咱们后边的章节会讲到。

P:奇偶校验位:它用来标明ALU运算成果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。运算成果有奇数个1,P=1;运算成果有偶数个1,P=0。

例:某运算成果是78H(01111000),明显1的个数为偶数,所以P=0。

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的中止答应

7、IP—–中止优先级操控寄存器

按位寻址,地址位B8H

B7
B6
B5
B4
B3
B2
B1
B0
PT2
PS
PT1
PX1
PT0
PX0

– (IP.7):保存

– (IP.6):保存

PT2(IP.5):守时2中止优先(8052用)

PS (IP.4):串行口中止优先

PT1(IP.3):守时1中止优先

PX1(IP.2):外中止INT1中止优先

PT0(IP.1):守时器0中止优先

PX0(IP.0):外部中止INT0的中止优先

8、TMOD—–守时器操控寄存器

不按位寻址,地址89H

B7
B6
B5
B4
B3
B2
B1
B0
GATE
C/T

M1

M0
GATE
C/T
M1
M

GATE :守时操作开关操控位,当GATE=1时,INT0或INT1引脚为高电平,一起TCON中的TR0或TR1操控位为1时,计时/计数器0或1才开端作业。若GATE=0,则只需将TR0或TR1操控位设为1,计时/计数器0或1就开端作业。

C/T :守时器或计数器功用的挑选位。C/T=1为计数器,经过外部引脚T0或T1输入计数脉冲。C/T=0时为守时器,由内部体系时钟供给计时作业脉冲。

M1 :形式挑选位高位

M0 :形式挑选位低位

M1
M0
作业形式
0
0
13位计数/计时器
0
1
16位计数/计时器
1
0
8位主动加载计数/计时器
1
1
守时器1停止作业,守时器0分为两个独立的8位守时器TH0及TL0

9、TCON—–守时器操控寄存器

按位寻址,地址位88H

B7
B6
B5
B4
B3
B2
B1
B0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0

10、SP——仓库指针。

仓库介绍:日常日子中,咱们都留意到过这样的现象,家里洗的碗,一只一只摞起来,最晚放上去的放在最上面,而最早放上去的则放在最下面,在取的时分正好相反,先从最上面取,这种现象咱们用一句话来归纳:“先进后出,后进先出”。请咱们想想,还有什么当地有这种现象?其实举目皆是,建筑工地上堆积的砖头、资料,仓库里放的货品,都是“先进后出,后进先出”这实践是一种存取物品的规矩,咱们称之为“仓库”。

在单片机中,咱们也能够在RAM中结构这样一个区域,用来寄存数据,这个区域寄存数据的规矩便是“先进后出,后进先出”,咱们称之为“仓库”。为什么需求这样来寄存数据呢?存储器自身不是能够按地址来寄存数据吗?对,知道了地址确实就能够知道里边的内容,但假如咱们需求寄存的是一批数据,每一个数据都需求知道地址那不是费事吗?假如咱们让数据一个接一个地放置,那么咱们只需知道第一个数据地点地址单元就能够了(看图2)假如第一个数据在27H,那么第二、三个就在28H、29H了。所以使用仓库这种方法来放数据能够简化操作
那么51中仓库什么当地呢?单片机中能寄存数据的区域有限,咱们不能够专门分配一块当地做仓库,所以就在内存(RAM)中拓荒一块当地,用于仓库,可是用内存的哪一块呢?仍是欠好定,由于51是一种通用的单片机,各人的实践需求各不相同,有人需求多一些仓库,而有人则不需求那么多,所以怎样分配都不适宜,怎样来处理这个问题?分欠好爽性就不分了,把分的权力给用户(编程者),依据自已的需求去定吧,所以51单片机中仓库的方位是能够改变的。而这种改变就体现在SP中值的改变,看图2,SP中的值等于27H不就适当所以一个指针指向27H单元吗?当然在真实的51机中,开端指针所指的方位并非便是数据寄存的方位,而是数据寄存的前一个方位,比方一开端指针是指向27H单元的,那么第一个数据的方位是28H单元,而不是27H单元,为什么会这样,咱们在学仓库指令时再阐明。

图2如下图

803l单片机共有21个字节的特别功用寄存器(SFR),起着专用寄存器的效果,用来设置片内电路的运转方法,记载电路的运转状况,并标明有关标志等。此外,特别功用寄存器中,还有把并行和串行I/O端口映射过来的寄存器,对这些寄存器的读写,可实现从相应I/O端口的输入、输出操作。

21个特别功用寄存器不接连地散布在128个字节的SFR存储空间中,地址空间为80H-FFH,见下图。带*的标明是有位地址的寄存器。在这片SFR空间中,包括有128个位地址空间,地址也是80H-FFH,但只要83个有用位地址,可对11个特别功用寄存器的某些位作位寻址操作。

由此可见,在特别功用寄存器中,也有两套地址:字节地址和位地址。两者在地址空间上都是80H-FFH,但对字节地址只要21个字节是有用的,对位地址只要83位是有用的,能够说,它们是内部数据存储器中字节地址与位地址的不接连延伸。其他无效地址单元是不能被拜访的,在运用时应加以留意。
21个特别功用寄存器的称号及首要功用介绍如下,具体的用法在以下各节内容中予以介绍

IE、IP寄存器 效果:中止操控用

TMOD、TCON 效果:计时、守时、计数器用

SCON寄存器 效果:串行传输操控

PCON寄存器 效果:省电形式操作

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/261659.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部