第五节 单片机的内部存储器的组成

上传人:sx****84 文档编号:243366886 上传时间:2024-09-21 格式:PPT 页数:29 大小:1.04MB
返回 下载 相关 举报
第五节 单片机的内部存储器的组成_第1页
第1页 / 共29页
第五节 单片机的内部存储器的组成_第2页
第2页 / 共29页
第五节 单片机的内部存储器的组成_第3页
第3页 / 共29页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五节 单片机的内部存储器的组成,1,存储器的配置,8051,的存储器在物理结构上有3个存储空间:,片内、片外统一编址的64KB的程序存储器空间,,,64KB片外数据存储器空间,和,256B片内数据存储器空间,,这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。,MCS-51系列单片机与一般微机的存储器的配置方式很不相同。一般微机存储器在物理结构上通常只有一个存储空间,ROM和RAM可以任意安排在其中,并用同类指令访问。此种存储器结构称为普林斯顿结构,例如8086/8088微机系统。,2,MCS-51,存储器空间,从用户使用的角度看,MCS-51存储器空间可以分为三类独立空间:,第一类是片内、片外统一编址的64KB的程序存储器空间,,如图(a)所示。,第二类是64KB片外数据存储器空间,如图(b)所示。,第三类是256B片内数据存储器空间,,如图(b)所示。,注意上述三个存储空间的地址是重叠的,所以要用不同种类的指令来访问:CPU访问片内、片外ROM用MOVC指令,访问片外RAM用MOVX指令,访问片内RAM用MOV指令。,3,MOV 40H,60H,MOV DPTR,1000H,MOVX A,DPTR,4,内部数据存储器,RAM,数据存储空间也分成片内和片外两大部分:,片外,RAM,为,64KB,,地址空间为,0000H,FFFFH,,,地址指针为,DPTR,,片外,RAM,是用存储器芯片,扩展而成的,参考前面所讲外部存储器扩展部分。片内,RAM,为,256B,,地址为,00H,FFH,。片内,RAM,又分为两个部分,其中低,128B(00H,7FH),是真正的,RAM,区,高,128B(80H,FF,H),为特,殊功能寄存器,(SFR),区。,5,低128B的RAM,低128B按用途可分为3个区:,(1)寄存器区 低128BRAM的低32个单元称作工作寄存器,也称为通用寄存器,常用于存放操作数及中间结果等。工作寄存器共分为4组,组号依次为0、1、2和3,每组有8个寄存器R0R7,每个寄存器都是8位。需要说明的是,在任一时刻,只能使用4组寄存器中的一组,正在使用的那组寄存器称作当前工作寄存器组。,6,工作寄存器的特点,在任一时刻,只能使用4组寄存器中的一组,正在使用的那组寄存器称作当前工作寄存器组。工作寄存器的这个使用特点并不是浪费,换种说法就是用户可以自由选择8个寄存器R0R7的实际物理地址,比如可以选择第一组工作寄存器,也即设定R0R7的物理地址为08H0FH,用户利用这种方法可以方便地达到保护数据的目的。比如选用第1组工作寄存器后,可以把一些不希望变化的数据存放在第0组00H07H或第二组10H1FH单元里,在程序运行中,除非改变当前工作寄存器组,否则这些单元里的内容是不会被破坏的。,MOV R1,#83H,CPU,复位后,选中第,0,组寄存器为当前的工作寄存器。用户可以通过设置特殊功能寄存器八位的程序状态字,PSW,中,RSl,、,RS0,两位的值来选择当前工作寄存器组。(,程序状态字,PSW,将在本节特殊功能寄存器小节中介绍),7,工作寄存器上面的,16Byte,(字节)单元,(20H2FH),是位寻址区,可以对这些单元中,的每一位进行位操作。当然它们也可以作为一般,RAM,单元使用,进行字节操作。位寻址区共有,128,位,位地址为,00H,7FH,,表为,位寻址区的位地址表,。,(2),位寻址区,8,在使用中,位地址有两种表示方式,一种以表中位地址的形式,比如,2FH,字节单元,的第,7,位可以表示为,7FH,;另一种是以字节地址第几位的方式表示,比如同样是,2FH,字节单,元的第,7,位还可以表示为,2FH.7,。注意,虽然位地址和字节地址的表现形式可以一样,但位地址和字节地址两个不同的概念,位操作与字节操作的指令是不同的,所以不会混淆。,例如:MOV A,25H MOV C,25H,位清零指令 CLR 7FH,置位指令 SETB 20H.6,MOV A,2FH CLR A MOV 2FH,A,9,位操作指令,通过执行位操作指令可直接对某一位进行操作,如置,1,、清,0,、判,1,和判,0,转移等,位清零指令,CLR 7FH,的含义是把单片机内部,RAM,中字节地址为,2FH,的存储单元的第七位清零。而置位指令,SETB 20H.6,的含义是什么,请思考一下。这种位寻址能力是,MCS-51,的一个重要特点,是,一般微机和早期的单片机,(,如,MCS-48),所没有的。,MOV C,7FH,MOV A,20H,10,(3),用户,RAM,区,低128B单元中,工作寄存器占用32个单元,位寻址区占用16个单元,剩余80个字节就是供用户使用的一般RAM区,其单元地址为30H7FH。通常把堆栈开辟在此区中,对一般的应用来说,堆栈只占用一般RAM区的少量字节单元。(堆栈的概念和应用将在在本节特殊功能寄存器中介绍),11,思考题(1),1 MCS51系列单片机内部有256B的RAM,高128B是,特,殊功能寄存器,(SFR),区,低128B的空间分哪三个区域:,,,,,。,2 指令SETB 40H中40H是字节地址。( ),3 指令MOV A,40H中40H是字节地址。( ),4 工作寄存器组,有,个工作寄存器组成,它们的名称分别为,。,5 位寻址区的可寻址的位有,个,位寻址区在片内RAM中的字节地址范围,。,12,高,128B,的,RAM,特殊功能寄存器(,SFR,)区,片内高,128B,的,RAM,也称为特殊功能寄存器(,SFR,Special function Register,)区,共有,21,个,SFR,,见下表。,从上表可以看出,,21,个,SFR,离散分布在,80H,FFH,的,RAM,空间中,但是用户并不能使用剩余的空闲存储单元。,13,具有位寻址能力的,SFR,的位地址表,在,21,个,SFR,中,有,11,个具有位寻址能力,它们的位地址见下表,14,LOOP: CLR P1.0,LCALL DELAY,SETB P1.0,LCALL DELAY,SJMP LOOP,90H,15,具有位寻址能力的,SFR,的位地址软件指令举例,要使系统当前工作寄存器组设为第二工作寄存器组,须使特殊功能寄存器程序状态字PSW的第四位RS1置位为1,第三位RS0清零为0,根据上表,应执行程序为:,SETB 0D4H CLR 0D3H 也可写成: SET PSW.4,CLR PSW.3,RSl和RS0 工作寄存器组选择位 这两位的值决定选四组工作寄存器组的哪一组工作寄存器为当前工作寄存器组,由用户用软件改变RSl和RS0位的值;其组合关系如下表所示。,16,特殊功能寄存器,MCS-51单片机有21个特殊功能寄存器,它们分布在内部80HFFH单元中。80HFFH共有128个字节,特殊功能寄存器仅占用了其中的极小部分,其它的极大部分空闲单元,MCS-51单片机不能对它们进行读写操作,即不能作内部数据存储器使用。现把其中与程序设计有关的部分寄存器的用途介绍如下,剩余的特殊功能寄存器的用途将在以后的章节介绍。,17,18,累加器,A,累加器为8位寄存器,是最常用的寄存器,它的功能较多,地位重要。它既可用于存放操作数,也可用来存放运算的中间结果。MCS-51单片机中大部分单操作数就取自累加器A,许多双操作数指令中的一个操作数也是取自累加器A。,MOV A,#09H MOVX A,DPTR,累加器自身带有零标志Z。累加器的值为0时,零标志Z1;累加器的值不为0时,零标志Z=0。,位寻址区的位地址表,19,数据指针,DPTR,DPTR是MCS-51单片机中唯一的一个在用户编程中使用的16位寄存器,其它的寄存器都是八位的,但它实际上由两个8位寄存器组成,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。DPTR既可作为一个16位寄存器使用,也可作为两个独立的8位寄存器DPH和DPL使用。,DPTR主要用于存放16位地址,有两个功能:一是存放片外RAM地址,来访问片外数据存储器中的数据。二是存放ROM的地址,来访问程序存储器的数据。DPTR是16位数据指针,所以其访问的存储器空间是2,16,B=64KB。,MOV DPTR,1000H MOVX A,DPTR,20,程序计数器,PC,PC,是一个,16,位的计数器,,PC是程序存储器ROM中指令机器码的地址指针,PC,中的内容是将要执行的下一条,指令机器码的地址。,它指示的地址范围是,64KB,,即一个,MCS-51,单,片机的,ROM,的最大容量是,64KB,,左图是程序运行顺序与,PC,变,化关系的示意图。系统上电复位后,,PC = 0000H,,随着程序的执,行,,PC,的值是自动加,1,的,即一个八位二进制机器码取出执行后,,PC,的值自,动加,1,。用户可以通过转移、调用和返回等指令改变,PC,内容,从,而改变程序执行的顺序。,21,程序计数器,PC与,数据指针,DPTR的区别,程序指令是以八位二进制机器码的形式存放在程序存储器ROM中,要执行程序,必须把存放在ROM内的指令机器码逐个读到8031中处理,而要读机器码,8031要知道所读机器码的地址,该地址就是单片机芯片中的程序计数器PC的当前值。每读一个机器码并执行,,,PC,的值就自动加,1,,然后根据加1后的,PC当前值,(,PC当前值即下一个要读取的机器码的地址,),读下一个机器码,这个过程是由硬件自动完成的。当然用户可以通过转移、调用和返回等指令改变,PC,内容,从,而改变程序执行的顺序。,数据存储器RAM中通常存放着暂存的数据,待8031处理。但这些数据掉电后将消失,所以对那些需长久保存且固定不变的表格数据,应和指令机器码一起存放ROM中。单片机处理存放在RAM和ROM中的数据时,是以DPTR作为数据的地址指针,通过软件指令如 MOVX A,DPTR MOVC A,A+DPTR 来读数据的。而软件指令是以机器码的形式存放在ROM芯片中的。,机器码的地址指针是PC。,PC控制着程序的运行,而DPTR作为单片机读写数据的地址指针。,22,单片机依靠PC所指示的ROM中指令机器码的地址来读取指令,自动控制着程序的运行,DPTR则出现在单片机与外部RAM或ROM的数据传送指令,作为单片机读写片外RAM或片内和片外统一编址的ROM中数据的地址指针。而单片机内部RAM中数据的地址是在数据传送指令中直接提供的。,MOV 40H,#60H 该指令的机器码为75H 40H 60H,MOV DPTR,#1000H MOVX A, DPTR,23,思考题(2),1 指令MOV A,40H的含义是把立即数40H送到A累加器中。( ),2 指令MOV 40H,40H的含义是把立即数40H送到片外RAM地址为40H的存储单元中。( ),3 指令MOVX A,DPTR的含义是把片外RAM中以DPTR内容为地址的存储单元中的数据送到A累加器中。( ),24,堆栈及堆栈指示器,堆栈是在单片机内部RAM中开辟的一片数据存储区,这片存储区的数据将被保护起来,而不会被破坏。此存储区的一端固定,另一端活动,且只允许数据从活动端进出。,这与在货栈中从下至上堆放货物的方式一样,一般总是把先入栈的货物堆放在下面,后入栈的货物堆放在上面;取货则相反,最后入栈的货物最先被取走。堆栈中数据的存取就是遵循这种“先进后出”的原则。,我们把堆栈的活动端称为栈顶,固定端称为栈底。入栈就是把要保存的数据写入栈顶单元,出栈就是读出栈顶单元的数据。,通常堆栈开辟在单元地址为,30H,7FH,的供用户使用的内部,RAM,区,因为堆栈的栈顶是活动端,,所以需要有一指示栈顶位置,即栈顶地址的指示器,,这个指示器就是堆栈指示器,SP(State Pointed),,它是一个八位的特殊功能寄存器,它总是指向堆栈的栈顶。,往堆栈存入或从堆栈取出数据,一般是通过,SP,给出栈顶的地址,并根据此地址,从栈顶存,取。,25,数据压入堆栈的方法,要把当前工作寄存器组中的工作寄存器R0的内容05H,R1的内容49H,分别由先至后压入单元地址为41H和42H的堆栈区中,以上过程步骤如图所示。,步骤(,a,)通过指令,MOV SP,,,#40H,设置堆栈指示器,SP,的内容为,40H,,,40H,为堆栈栈顶的地址,,SP,指向堆栈的栈顶。,步骤(b),当通过进栈指令PUSH R0,把工作寄存器R0的内容字节05H压入堆栈时,堆栈指示器SP先自动加1,栈顶的地址由40H增为41H,进栈的字节05H于是被存放在地址为41H的栈顶单元中。,步骤(c),当通过进栈指令PUSH R1,把工作寄存器R1的内容字节49H压入堆栈时,堆栈指示器SP又先自动加1,栈顶的地址则由41H增为42H,进栈的字节49H被存放在地址为42H的栈顶单元中。,由此可见栈顶位置是活动的,随着字节压入堆栈从低地址向高地址伸展,而栈底是固定的,总是在起初被指令MOV SP,#40H所设定的位置上。,26,数据推出堆栈的方法,根据“先进后出”的原则,介绍一下出栈操作。通过出栈操作,把保护在堆栈中的数据分别还原到工作寄存器R0和R1中。上述过程如图所示。,步骤(b)通过出栈指令POP R1,把地址为42H的栈顶单元内的数据49H弹出给工作寄存器R1,同时堆栈指示器SP自动减1,这时,SP所指向的栈顶单元的地址由42H减为41H。,堆栈主要用于在子程序调用和中断操作中保护断点和现场内容。此外,也可以用于数据的临时存放。,步骤,(c),执行,出栈指令POP R0,地址为41H的栈顶单元的数据05H会弹出到R0内,同样SP又被自动减1,把栈顶的位置从41H变为40H。至此,保护在堆栈中的两个数据都被释放还原。,27,思考题 (3),1. 请编制一段程序,要求在8031内部RAM中开辟一个栈底单元地址为60H的堆栈区,并通过堆栈操作把工作寄存器R0和R1中的数据交换。,MOV SP,#60H ;设置堆栈区的起始地址,PUSH R0,PUSH R1,POP R,?,POP R,?,28,第五节结束,29,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!