<meta name="keywords" content="必胜时时彩开户,keywords" /> 7课:单片机的特殊功效存放器 联系我们

7课:单片机的特殊功效存放器

   经由历程前面的学习,我们已知单片机的外部有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

符号

地址

功效简介

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

89A

准时器/计数器要领控制存放器

TCON

88H

准时器/计数器控制存放器

DPH

83H

数据地址指针(高8位)

DPL

82H

数据地址指针(低8位)

SP

81H

客栈指针

P0

80H

P0口锁存器

PCON

87H

电源控制存放器

  表1
 

<特殊功效存放器地址映象表(一)>

 

<特殊功效存放器地址映象表(二)>

 

<特殊功效存放器地址映象表(三)>

下面,我们简介一下几个经常应用的SFR,看图2。

1、ACC:累加器,经常常应用A体现。这是个甚么器械,可不克不及从名字上明确,它是一个存放器,而不是一个做加法的器械,为甚么给它这么一个名字呢?或许是由于在运算器做运算时其中一个数一定是在ACC中的缘由吧。它的名字特殊,身份也特殊,稍后我们将学到指令,能发现,一切的运算类指令都离不开它。

2、B:一个存放器。在做乘、除法时放乘数或除数,不做乘除法时,随你怎样用。

3、PSW:法式模范模范状态字。这是一个很主要的器械,外面放了CPU使命时的许多状态,借此,我们能明确CPU的以后状态,并作出对应的处置赏罚赏罚。它的列位功效请看表2

D7

D6

D5

D4

D3

D2

D1

D0

CY

AC

F0

RS1

RS0

OV

 

P

      表2

PSW也称为标志存放器,明确这个关于明确单片机原理异常的主要,存放各有关标志。其结构和界说以下:

 

  下面我们逐一简介sfr列位的用处

(1)CY:进位标志。用于体现Acc.7有否向更高位进位。8051中的运算器是一种8位的运算器,我们知道,8位运算器只能体现到0-255,假定做加法的话,两数相加能够会逾越255,这样最高位就会损掉落,组成运算的弱点,怎样办?最高位就进到这里来。这样就没事了。

例:78H+97H(01111000+10010111)

(2)AC:赞助进位标志也叫半进位标志。  用于体现Acc.3有否向Acc.4进位

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

(3)F0:用户标志位,由我们(编程职员)决议甚么时间用,甚么时间不用。

(4)RS1RS0:使命存放器组选择位。这个我们已知了。
              RS1、RS0 = 00 —— 0区(00H~07H)

              RS1、RS0 = 01 —— 1区(08H~0FH)

              RS1、RS0 = 10 —— 2区(10H~17H)

              RS1、RS0 = 11 —— 3区(18H~1FH) 

(5)0V:溢出标志位。 体现Acc在有符号数算术运算中的溢出,甚么是溢出我们稍后再谈吧。

(6)P:奇偶校验位:它用来体现ALU运算效果中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。

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

4、DPTR(DPH、DPL):数据指针,能用它来会见外部数据存储器中的任一单元,假定不用,也能作为通用存放器来用,由我们自已决议若何应用。16位,由两个8位存放器DPH、DPL组成。主要用于存放一个16位地址,作为会见外部存储器(外RAM和ROM)的地址指针。

5、P0P1P2P3:这个我们曾经知道,是四个并行输入/输出口的存放器。它外面的内容对应着管脚的输入。

6、SP:客栈指针。(公用于指出客栈顶部数据的地址。)
 

   客栈简介:寻常生涯中,我们都重视到过这样的情形,家里洗的碗,一只一只摞起来,最晚放上去的放在最下面,而最早放上去的则放在最下面,在取的时间正好相反,先从最下面取,这类情形我们用一句话来归纳综合:“先进后出,落伍先出”。请年夜家想想,尚有甚么处一切这类情形?着实比比皆是,修建工地上堆放的砖头、质料,客栈里放的货物,都是“先进后出,落伍先出”,这现实是一种存取物品的规则,我们称之为“客栈”。

   在单片机中,我们也能在RAM中结构这样一个区域,用来存放数据,这个区域存放数据的规则就是“先进后出,落伍先出”,我们称之为“客栈”。为甚么须要这样来存放数据呢?存储器自己不是能按地址来存放数据吗?对,知道了地址着实着实便可以知道外面的内容,但假定我们须要存放的是一批数据,每个数据都须要知道地址那不是费事吗?假定我们让数据一个接一个地放置,那么我们只需知道第一个数据所在地址单元便可以了(看图2)假定第一个数据在27H,那么第二、三个就在28H、29H了。以是应用客栈这类措施来放数据能简化操作

   那么51中客栈甚么地方呢?单片机中能存放数据的区域无限,我们不克不及够专门分配一块地方做客栈,以是就在内存(RAM)中开发一块地方,用于客栈,然则用内存的哪一块呢?照样欠好定,由于51是一种通用的单片机,各人的现实需求各不类似,有人须要多一些客栈,而有人则不须要那么多,以是怎样分配都不合适,怎样来处置赏罚赏罚这个效果?分欠好爽性就不分了,把分的权力给用户(编程者),凭证自已的须要去定吧,以是51单片机中客栈的职位是能变换的。而这类变换就展现在SP中值的变换,看图2,SP中的值即是27H不就相当因此一个指针指向27H单元吗?虽然在真实的51机中,泉源指针所指的职位着实不是就是数据存放的职位,而是数据存放的前一个职位,好比一泉源指针是指向27H单元的,那么第一个数据的职位是28H单元,而不是27H单元,为甚么会这样,我们在学客栈敕令时再诠释。其它的SFR,我们在用到时再简介。

作者点评:这一课能够较量难清晰明晰,看年夜家的议论许多都这样说,着实着实不须要把下面的这些器械都去世记硬背在头脑外面,这是很难的,我们只须要明确他的使命原理,一次看不懂就要多看一再再三,等到要写法式模范模范的时间,我们再把这些表格拿出来查阅以是建议你把本页生涯为书签.笔者在泉源学习单片机的时间也是这样做的.