存储器堆栈SFR.ppt

上传人:sccc 文档编号:5824636 上传时间:2023-08-24 格式:PPT 页数:41 大小:404.51KB
返回 下载 相关 举报
存储器堆栈SFR.ppt_第1页
第1页 / 共41页
存储器堆栈SFR.ppt_第2页
第2页 / 共41页
存储器堆栈SFR.ppt_第3页
第3页 / 共41页
存储器堆栈SFR.ppt_第4页
第4页 / 共41页
存储器堆栈SFR.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《存储器堆栈SFR.ppt》由会员分享,可在线阅读,更多相关《存储器堆栈SFR.ppt(41页珍藏版)》请在三一办公上搜索。

1、1,存储器、堆栈、SFR,2,数据存储器RAM(Random Access Memory)程序存储器ROM(Read Only Memory)闪速存储器Flash MemoryEPROM(UV)Erazible Programmable ROMEEPROM/E2PROMElectrical Erasable Programmable ROM静态存储器 SRAMStatic RAM(动态存储器 DRAMDynamic RAM)按字节寻址:每个字节(8个位)占一个地址按位寻址:有的存储器每一个位就有一个地址,单片机的存储器几个有关的概念:,3,8051的存储器组织,8051存储器可以分成两大类:,

2、RAM,CPU在运行时能随时进行数据的写入和读出,但在关闭电源时,其所存储的信息将丢失。它用来存放暂时性的输入输出数据、运算的中间结果或用作堆栈。,ROM是一种写入信息后不易改写的存储器。断电后,ROM中的信息保留不变。用来存放固定的程序或数据,如系统监控程序、常数表格等。,4,2.1.1普林斯顿结构,一般微机通常只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是 RAM,并用同类访问指令。这种结构称为普林斯顿结构。,5,2.1.2 哈佛结构,8051单片机与一般微机的存储器配置方式很不相同。51单片机的存储器在物理结构上分为程序存储空

3、间和数据存储空间,共有四个:片内和片外程序存储空间以及片内和片外数据存储空间,这种在物理结构上把程序存储器和数据存储器分开的结构形式称为哈佛结构。,6,7,89C51单片机存储器配置,片内RAM 128字节(00H7FH);片内RAM前32个单元是工作寄存器区(00H1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H7FH,分布在20H2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址(P.33-34)可寻址片外RAM 64K字节(0000HFFFFH)可寻址片外ROM 64K字节(0000HFFFFH)片内 Flash

4、 ROM 4K字节(000HFFFH),8,8051在逻辑上,即从用户角度上8051有三个存储空间:片内外统一编址的程序存储器 片内外不统一编址的数据存储器 特殊功能寄存器(片内),访问这几个不同的逻辑空间时,采用的指令:片内外程序存储器空间-MOVC 片内数据存储器空间和SFR-MOV 片外数据存储器地址空间-MOVX,9,52对应的RAM有384Byte,其中多出的128Byte只能进行间接寻址用 而C51是通过对自定义的数据类型来区分访问的存储空间的:片内外程序存储器空间-code片内数据存储器空间和SFR-data片外数据存储器地址空间-xdata片内间接寻址区间-idata,10,存

5、储器配置(片内RAM),片内RAM 128字节(00H7FH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH其中92个位可位寻址,80H,FFH,所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器,89C51 128字节,11,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,片内RAM前32个单元是工作寄存器区(00H1FH),存储器配置(片内RAM),12,00H,20

6、H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,片内RAM中有128个可按位寻址的位。位地址:00H7FH 分布在:20H2FH单元,存储器配置(片内RAM),13,这些可位寻址的空间,可通过执行指令直接对某一位进行操作,如置1、清0或判1、判0等,可用作软件标志位或用于位(布尔)处理。这是一般微机所不具备的,这种位寻址能力是8051所独有的。20H2FH:既可以字节操作,又可以位操作,但是要用不同的指令来区分;mov 20h,a setb 00h setb 20.0,14,存储器配置(片内RAM),89C51片内RAM 12

7、8字节(00H7FH)89C52片内RAM 256字节(00H0FFH),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH其中92个位可位寻址,80H,FFH,89C51 128字节,89C52 256字节,只能直接寻址,只能寄存器间接寻址(P14),既可间接寻址,又可直接寻址,15,程序存储器,外部ROM,内部ROM(EA=1),外部ROM(EA=0),0000H,0000H,0FFFH,0FFFH,1000H,FFFFH,16,在程序存储器中,有6个单元具有特殊功能,0003H:外部中

8、断0入口。000BH:定时器0溢出中断入口。0013H:外部中断1入口。001BH:定时器1溢出中断入口。0023H:串行口中断入口。52还有002BH对应T2中断。使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或者从0000H起始地址跳转到用户设计的初始程序上。,0000H:8051复位后,PC0000H,即程序从0000H 开始执行指令。,17,org0000h jmpmain(跳过中断入口地址区)org0100hmain:movp1,#55h mov r0,#3fhLoop:djnzr0,loop cpla movp1,a jmpmain en

9、d,18,可寻址片外RAM 64K字节(0000HFFFFH);可寻址片外ROM 64K字节(0000HFFFFH);片内 Flash ROM 4K字节(0000H FFFH);,FFFFH,0000H,可寻址片外RAM,64K字节,FFFFH,0000H,可寻址片外ROM,64K字节,FFFH,000H,可寻址片内 Flash ROM,4K 字节,89C51,7FH,00H,片内 RAM,128字节,FFH,80H,存储器配置(片内RAM),19,堆栈:在片内RAM中,常常要指定一个专门的区域来存放某些特别的数据,它遵循先进后出和后进先出(LIFO/FILO)的原则,这个RAM区叫堆栈。,功

10、用:1)子程序调用和中断服务时CPU自动将当前PC 值压栈保存,返回时自动将PC值弹栈。2)保护现场/恢复现场3)数据传输,20,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SP栈顶,下一个进栈的数据将存在此,数据进栈,已经进栈的数据存放在此,初始 SP,复位后 SP=07H,数据进栈时:首先SP+1指向08H单元,第一个放进堆栈的数据将放进08H单元,然后SP再自动增 1,仍指着栈顶,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通

11、常放在RAM区的靠后的位置。,21,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再自动减1,仍指着栈顶,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SP栈顶,当前要出栈的数据,数据出栈,SP-1指向下一个将要出栈的数据,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,22,从堆栈取出数据时:取出的数据是最近放进去的一个数据,也就是当前栈顶的数据。然后SP再

12、自动减1,仍指着栈顶,00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SP-1 指向新的栈顶,也就是下一个将要出栈的数据,数据出栈,初始 SP,堆栈区由特殊功能寄存器堆栈指针SP管理 堆栈区可以安排在 RAM区任意位置,一般不安排在工作寄存器区和可按位寻址的RAM区,通常放在RAM区的靠后的位置。,23,在实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。,24,push a push b push P

13、SW.pop a pop b pop PSW这样的指令顺序对不对?,25,89C51特殊功能寄存器(SFR),特殊功能寄存器SFR(专用寄存器)专用于控制、选择、管理、存放单片机内部各部分的工作方式、条件、状态、结果的寄存器。,不同的SFR管理不同的硬件模块,负责不同的功能各司其职换言之:要让单片机实现预定的功能,必须有相应的硬件和软件,而软件中最重要的一项工作就是对SFR写命令(要求)。,26,27,28,P0、P1、P2、P3:四个并行输入/输出口的寄存器。它里面的内容对应着管脚的输出。SCON(Serial Control Register)SBUF(Serial Date Buffer

14、)PCON(Power Control Register),与端口相关的(7个),与定时/计数器相关的(6个),TMOD(Timer/Counter Mode Register)定时器工作模式寄存器。TCON(Timer/Counter Control Register)定时器控制寄存器。TH0、TL0、TH1、TL1:分别是T0、T1的记数初值寄存器。,29,IP(Interrupt Priority Register)IE(Interrupt Enable Register),与中断相关的(2个),30,程序计数器PC(Program Counter)PC 不是一个特殊功能寄存器SFR,但

15、其作 用又十分重要和特殊!,特点:它是16位的按机器周期自动增1计数器,一切分支/跳转/调用/中断/复位 等操作的本质就是:改变 PC 值,总指向下一条指令所在首地址(当前PC值),特殊功能寄存器(PC),31,DPTR(Data Pointer)(分成DPH、DPL两个):数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。,32,数据指针寄存器DPTR 数据指针DPTR是一个 16 位的专用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理,也可作为两个独立的 8 位寄存器DPH和DP

16、L来处理。DPTR 主要用来存放 16 位地址,当对 64 KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。mov a,a+dptr,33,89C51有21个SFR(89C52有26个)P.3334 已知的P0、P1、P2、P3等四个8位I/O口分别由名为P0、P1、P2、P3四个SFR代表。,堆栈指针寄存器 SP(Stack Pointer):总是指向栈顶,压栈时先(SP)+1 然后数据进栈;弹栈时数据先出栈 然后(SP)-1。,累加器 ACC:一个被众多指令用得最频繁的特殊功能寄存器(如:运算、数据传输)。,副累加器 B:一个经常与 ACC 配合在一起使

17、用的特殊功能寄存器(如:乘法、除法),此外,它也经常当作普通寄存器使用。,特殊功能寄存器(P0P3,SP,A,B),34,程序状态字寄存器 PSW:,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,CY(PSW.7)进位/借位标志位。若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。它也是布尔处理器的位累加器,可用于布尔操作。,AC(PSW.6)半进位/借位标志位。若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。机器在执行“DA A”指令时自动要判断这一位,我们可以暂时不关心它。,F0(PSW.5)可由用户定义的标志位。,PSW.6,P

18、SW.5,特殊功能寄存器(PSW),35,程序状态字寄存器 PSW:,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,PSW.6,PSW.5,特殊功能寄存器(PSW),例:78H+97H 0111 1000+1001 0111 1 0000 1111,有进位CY=1,没有半进位AC=0,36,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。,RS1,RS0=0 1 则选择了工作寄存器组 1 区R0R7分别代表08H 0FH单元。,RS1,RS0=1 0 则选择

19、了工作寄存器组 2 区 R0R7分别代表10H 17H单元。,RS1,RS0=1 1 则选择了工作寄存器组 3 区R0R7分别代表18H 1FH单元。,PSW.4 PSW.3,RS1,RS0=0 0 则选择了工作寄存器组 0 区R0R7分别代表08H 0FH单元。,37,片内RAM前32个单元(00H1FH)是工作寄存器区(由PSW中的RS1,RS0决定),00H,20H,2FH,7FH,1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,R0,R2,R1,R3,R4,R5,R6,R7,07H,02H,01H,00H,06H,04H,05H,03H,

20、08H,1FH,工作寄存器区3,工作寄存器区2,工作寄存器区1,工作寄存器区0,38,程序状态字寄存器 PSW(续):,CY,AC,F0,RS0,OV,P,RS1,PSW.7,PSW.0,OV(PSW.2)溢出标志位。OV=1时特指累加器在进行带符号数(-128+127)运算时出错(超出范围);OV=0时未出错。,PSW.1 未定义。,P(PSW.0)奇偶标志位。P=1表示累加器中“1”的个数为奇数 P=0表示累加器中“1”的个数为偶数 CPU随时监视着ACC中的“1”的个数,并反映在PSW中,PSW.2,PSW.1,例:某运算结果是78H(01111000),P=0。它常用在校验串行通信中的

21、数据是否出错。,39,89C51单片机存储器配置,片内RAM 128字节(00H7FH);片内RAM前32个单元是工作寄存器区(00H1FH)片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H7FH 分布在:20H2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被 8整除的 SFR中的各位也可按位寻址可寻址片外RAM 64K字节(0000HFFFFH)可寻址片外ROM 64K字节(0000HFFFFH)片内 Flash ROM 4K字节(000HFFFH),小结,40,存储器配置(片内RAM),片内RAM 128字节(00H7FH),00H,20H,2FH,7FH,

22、1FH,30H,80H,FFH,52子系列才有的RAM区,普通RAM区,位寻址区,工作寄存器区,SFR分布在80H-FFH其中92个位可位寻址,80H,FFH,所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器,128字节,小结,41,单片机存储器配置(片外RAM/ROM),可寻址片外RAM 64K字节(0000HFFFFH);可寻址片外ROM 64K字节(0000HFFFFH);片内 Flash ROM 4K字节(000HFFFH);,FFFFH,0000H,可寻址片外RAM,64K字节,FFFFH,0000H,可寻址片外ROM,64K字节,FFFH,000H,可寻址片内 Flash ROM,4K字节,89C51,7FH,00H,片内 RAM,128字节,FFH,80H,小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号