1 / 17

1.3 MCS-51 单片机的存储器

1.3 MCS-51 单片机的存储器. MCS-51 系列的单片机有 5 个独立的存储空间: 片内 / 片外程序存储器 64K ( 0000-0FFFFH ) ; 128B 的片内数据存储器( 00-7FH ) ; 128B 特殊功能寄存器 SFR ( 80-0FFH ) ; 位寻址区( 20H-2FH ); 片外数据存储器 64K ( 0000-0FFFFH )。 注: MCS-51 系列单片机各型号芯片在各个存储器空间的物理单元个数可能是不同的。. 1 2 3 4 5 6 7 8 9 10111213141516171819 20.

ailsa
Télécharger la présentation

1.3 MCS-51 单片机的存储器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 1.3 MCS-51单片机的存储器 • MCS-51系列的单片机有5个独立的存储空间: • 片内/片外程序存储器64K(0000-0FFFFH); • 128B的片内数据存储器(00-7FH); • 128B特殊功能寄存器SFR(80-0FFH); • 位寻址区(20H-2FH); • 片外数据存储器64K(0000-0FFFFH)。 • 注:MCS-51系列单片机各型号芯片在各个存储器空间的物理单元个数可能是不同的。

  2. 1234567891011121314151617181920 4039383736353433323130292827262524242221 1234567891011121314 1234567891011121314 2827262524232221 201918171615 2827262524232221 201918171615 1234567891011121314 1234567891011121314 2827262524232221 201918171615 2827262524232221 201918171615 EPROM EPROM 片内 ROM RAM 6264 RAM 6264 2764 2764 片内 RAM 4K 64K 8031 8751 8051 89C51 64K 256B(字节)

  3. 程序存储器 • MCS-51单片机的程序存储器分为: • 片内程序存储器 • 片外程序存储器 • MCS-51单片机的最大存储空间为64KB。 • MCS-51单片机程序存储器的地址指针为程序计数器PC。 • MCS-51单片机程序存储器的读取顺序由EA确定。 • MCS-51单片机存储空间的6个特殊功能区域。

  4. EA作用 • 一、对于片内有4KB程序存储器的单片机 • EA=1时,则PC的值在0000H-0FFFH之间,CPU先从片内程序存储器空间取指执行;当PC的值大于0FFFH时才访问外部的程序存储器空间。 • 若EA=0时,则片内程序存储器空间被忽略,CPU只从片外程序存储器空间取指执行。 • 二、对于片内没有程序存储器的单片机 • 在构成系统时必须在外部扩展程序存储器,其EA必须接地。(最好不要扩展片外程序存储器的单片机,单片机型号多达数百种,可选用片内Flash容量大的型号,除非特殊原因。)

  5. 0FFFH 0FFEH . . 002BH . FFFFH 中断5 0023H 中断4 定时器1中断 串行口中断 001BH 中断3 0013H (64K) 定时器0中断 中断2 000BH 0002H 中断1 外部中断0 外部中断1 0003H 0001H 0FFFH 0FFFH 0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令 外部 内部 0000H (4K) (4K) EA=1 EA=0 0000H 0000H 0000H 8位 (1)程序存储器 中断入口地址 (PC) 程序存储器资源分布 程序存储器

  6. 程序存储器空间的6个特殊功能区域 • 0000H:系统的启动单元(系统复位后,单片机从此处开始取指令开始执行) • 0003H:外部中断0入口地址 • 000BH:定时器/计数器0中断入口地址 • 0013H:外部中断1入口地址 • 001BH:定时器/计数器1中断入口地址 • 0023H:串行中断入口地址

  7. 128B的片内数据存储器(00H-7FH) (2)片内数据存储器SRAM • MCS-51单片机的内部数据存储器有以下几个部分: • 工作寄存器区(00H—1FH) • 位寻址区(20H—2FH) • 该区域的16个字节单元可以用于位寻址(共128个位单元,位地址为: 00H—7FH );另外也可以作为一般的RAM使用。 • 举例:SETB 0FH(21H. 7) ;置位0FH为“1” • CLR 0FH(21H. 7) ;置位0FH为“0” • 用户区(30H—7FH) • 该区域的80个字节单元,主要用于用户的数据存储,在该区域的单元只能以地址单元的形式进行操作。

  8. PSW位地址 CY AC F0 RS1 RS0 OV F1 P 数据缓冲区/堆栈区 可位寻址区 FFFFH 3区 2区 2FH 7F 78 07 00 工作寄存器区 1区 1 1 18H~1FH 第 3 区 20H (64K) 07H 0区 00H 外部 0 1 第 1 区 08H~0FH 0FH 1FH 17H FFH (高128B) 18H 08H 10H 7FH 80H 1 0 0 0 第 2 区 第 0 区 10H~17H 00H~07H 7FH 内部 片内RAM地址 RS1 RS0 寄存器区 30H (低128B) 0000H 00H R7 R7 R7 R7 R0 R0 R0 R0 (2)片内数据存储器SRAM 工作寄存器区选择位RS0、RS1 专用寄存器 RAM 数据存储器 内部RAM存储器

  9. 工作寄存器区(00H—1FH) • 内部RAM的00H-1FH分为4个区(由RS0和RS1的状态决定当前的工作寄存器组别), 每个区有8个单元,分别用R0-R7来表示。 • 第0组工作寄存器:地址范围为00H-07H; • 第1组工作寄存器:地址范围为08H-0FH; • 第2组工作寄存器:地址范围为10H-17H; • 第3组工作寄存器:地址范围为18H-1FH。 • 举例: • 如果RS0:RS1=00时;则(R0)=00H(使用第0组) • 如果RS0:RS1=01时;则(R0)=08H(使用第1组) • 如果RS0:RS1=10时;则(R0)=10H(使用第2组) • 如果RS0:RS1=11时;则(R0)=18H(使用第3组)

  10. 128B特殊功能寄存器SFR(80H-0FFH) • MCS-51单片机中,有21个具有特殊功能的寄存器,它主要是用来存放单片机的相应功能部件的控制命令、状态或数据。其中常用的有以下几个: • ACC(累加器,8位):特殊用途的寄存器,专门存放操作数或运算结果。 • 例如: • MOV A,30H(把30H单元的数据传送给A)ADD A,30H(30H的数据和A的内容相加,并保存在 A中) • B(8位):专门为乘除法而设置的寄存器。 • 又如: • MUL A,B ;A和 B相乘,结果的高低字节分别放入A和B中 • DIV A,B ;(A)/(B),商存A,余数存B

  11. 高128个单元 ☆离散分布有21个特殊功能寄存器SFR。(Specific Function register) ☆11个可以进行位寻址。 ☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。

  12. PSW(程序状态字,8位):存放指令执行后的有关状态。PSW(程序状态字,8位):存放指令执行后的有关状态。 • CY(C):进位和借位标志,当指令执行中有进位和借位产生时,CY为1,反之为0。 • AC:辅助进位、借位标志(低半字节对高半字节的进位和借位),有进位和借位产生时,AC为1,反之为0。 • F0:用户标志位,由用户自定义。 • RS1和RS0:工作寄存器选择标志位。 • OV:溢出标志位。 • P:奇偶校验位,当A中1的个数为偶数时P=0,反之为1。

  13. SP(堆栈指针,8位):专门存放堆栈的栈顶位置。遵循“先进后出”的原则。 注意:禁止用传送指令存放数据。 • DPTR(数据地址指针,16位):存放程序存储器的地址或外部数据存储器的地址。可分DPH和DPL两个独立8位寄存器使用。 • PC(程序地址寄存器,16位):执行指令后自动加一,常将PC值设置成程序第一条指令的内存地址。 访问范围:0000-0FFFFH。

  14. 标准51系列单片机的内部RAM——堆栈 堆栈——是在RAM区中划定的一个区域,对该区域RAM单元的读写操作必须遵守特定的顺序。比如先入先出,或先入后出原则。 堆栈的作用——主要用在子程序的调用过程中或作为特殊的数据交换区。 堆栈的开辟 栈顶的位置由SP(堆栈指针)寄存器指示。 复位时SP的初值为07H,在系统初始化时可以根据用户的需要重新设置。 标准8051的堆栈一般设在30H~7FH的范围内。 51单片机的数据存储器管理

  15. 标准51系列单片机的内部RAM——堆栈 堆栈的操作 51单片机的数据存储器管理 出栈过程 入栈过程 PUSH PUSH PUSH X Y Z X Y Z POP Z POP Y POP X Z Y X 先入后出 后入先出

  16. 课堂练习 2、8031有四个工作寄存器区,由PSW状态字中的RS1、RS0两位的状态来决定,单片机复位后,若执行 SETB RS0 指令,此时只能使用( )区的工作寄存器。 A.0区 B.2区 C.3区 D.1区

  17. 课堂练习 1、CPU主要的组成部分为( )。 B.运算器,寄存器 A.运算器,指令译码器 C.运算器,控制器 D.加法器,寄存器

More Related