您的位置 首页 基础

普通单片机教育 第六讲 单片机内部结构剖析(五)

通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行IO口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西

经过前面的学习,咱们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部终究还有些什么,这些个琐细的东西怎样连在一起的,让咱们来对单片机内部作一个完好的剖析吧!

看图(1)(本图太大,请咱们找本书看吧,一般讲单片机的书,随意哪本都有)。从图中咱们能够看出,在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。

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

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

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

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

(2)AC:半进位标志。

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

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

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

(5)0V:溢出标志位。什么是溢出咱们稍后再谈吧。

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

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

4、DPTR(DPH、DPL):数据指针,能够用它来访问外部数据存储器中的任一单元,假如不必,也能够作为通用寄存器来用,由咱们自已决议怎样运用。

5、P0、P1、P2、P3:这个咱们现已知道,是四个并行输入/输出口的寄存器。它里边的内容对应着管脚的输出。

6、SP:仓库指针。

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

在单片机中,咱们也能够在RAM中结构这样一个区域,用来寄存数据,这个区域寄存数据的规矩便是“先进后出,后进先出”,咱们称之为“仓库”。为什么需求这样来寄存数据呢?存储器自身不是能够按地址来寄存数据吗?对,知道了地址确实就能够知道里边的内容,但假如咱们需求寄存的是一批数据,每一个数据都需求知道地址那不是费事吗?假如咱们让数据一个接一个地放置,那么咱们只需知道第一个数据地点地址单元就能够了(看图2)假如第一个数据在27H,那么第二、三个就在28H、29H了。所以使用仓库这种方法来放数据能够简化操作

那么51中仓库什么当地呢?单片机中能寄存数据的区域有限,咱们不能够专门分配一块当地做仓库,所以就在内存(RAM)中拓荒一块当地,用于仓库,可是用内存的哪一块呢?仍是欠好定,由于51是一种通用的单片机,各人的实践需求各不相同,有人需求多一些仓库,而有人则不需求那么多,所以怎样分配都不适宜,怎样来处理这个问题?分欠好爽性就不分了,把分的权力给用户(编程者),依据自已的需求去定吧,所以51单片机中仓库的方位是能够改变的。而这种改变就体现在SP中值的改变,看图2,SP中的值等于27H不就适当所以一个指针指向27H单元吗?当然在真实的51机中,开端指针所指的方位并非便是数据寄存的方位,而是数据寄存的前一个方位,比方一开端指针是指向27H单元的,那么第一个数据的方位是28H单元,而不是27H单元,为什么会这样,咱们在学仓库指令时再阐明。

图2

其它的SFR,咱们在用届时再介绍。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部