《亚龙单片机第1章第3部分ppt课件.ppt》由会员分享,可在线阅读,更多相关《亚龙单片机第1章第3部分ppt课件.ppt(9页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、1.3 MCS-51单片机的存储器单片机的存储器MCS-51MCS-51系列的单片机有系列的单片机有5 5个独立的存储空间:个独立的存储空间: 片内片内/ /片外程序存储器片外程序存储器6464K K(0000-0FFFFH0000-0FFFFH); 128B128B的片内数据存储器(的片内数据存储器(00-700-7FHFH); 128B128B特殊功能寄存器特殊功能寄存器SFRSFR(80-0FFH80-0FFH); 位寻址区(位寻址区(2020H-2FHH-2FH);); 片外数据存储器片外数据存储器6464K K(0000-0FFFFH0000-0FFFFH)。)。v注:注:MCS-5
2、1MCS-51系列单片机各型号芯片在各个存储器系列单片机各型号芯片在各个存储器空间的物理单元个数可能是不同的。空间的物理单元个数可能是不同的。 MCS-51MCS-51单片机的程序存储器分为:单片机的程序存储器分为:片内程序存储器片内程序存储器片外程序存储器片外程序存储器 MCS-51MCS-51单片机的最大存储空间为单片机的最大存储空间为6464KBKB。 MCS-51MCS-51单片机程序存储器的地址指针为程序计数单片机程序存储器的地址指针为程序计数器器PCPC。 MCS-51MCS-51单片机程序存储器的读取顺序由单片机程序存储器的读取顺序由EAEA确定。确定。 MCS-51MCS-51
3、单片机存储空间的单片机存储空间的6 6个特殊功能区域。个特殊功能区域。程序存储器程序存储器一、对于片内有一、对于片内有4KB4KB程序存储器的单片机程序存储器的单片机EA=1EA=1时,则时,则PCPC的值在的值在0000H-0FFFH0000H-0FFFH之间,之间,CPUCPU先先从片内程序存储器空间取指执行;当从片内程序存储器空间取指执行;当PCPC的值大的值大于于0FFFH0FFFH时才访问外部的程序存储器空间。时才访问外部的程序存储器空间。若若EA=0EA=0时,则片内程序存储器空间被忽略,时,则片内程序存储器空间被忽略,CPUCPU只从片外程序存储器空间取指执行。只从片外程序存储器
4、空间取指执行。二、二、对于片内没有程序存储器的单片机对于片内没有程序存储器的单片机在构成系统时必须在外部扩展程序存储器,其在构成系统时必须在外部扩展程序存储器,其EAEA必须接地。必须接地。EA作用作用0000H :系统的启动单元(系统复位后,单片:系统的启动单元(系统复位后,单片机从此处开始取指令开始执行)机从此处开始取指令开始执行)0003H :外部中断:外部中断0入口地址入口地址000BH :定时器:定时器/计数器计数器0中断入口地址中断入口地址0013H :外部中断:外部中断1入口地址入口地址001BH :定时器:定时器/计数器计数器1中断入口地址中断入口地址0023H :串行中断入口
5、地址:串行中断入口地址程序存储器空间的程序存储器空间的6 6个特殊功能区域个特殊功能区域MCS-51单片机的内部数据存储器有以下几个部分:单片机的内部数据存储器有以下几个部分: 工作寄存器区(工作寄存器区(00H1FH) 位寻址区(位寻址区(20H2FH)v 该区域的该区域的16个字节单元可以用于位寻址个字节单元可以用于位寻址(共共128个位单元,个位单元,位地址为:位地址为: 00H7FH );另外也可以作为一般的;另外也可以作为一般的RAM使使用。用。举例:举例:SETB 0FH(21H. 7) ;置位;置位0FH为为“1” CLR 0FH(21H. 7) ;置位;置位0FH为为“0” 用
6、户区(用户区(30H7FH)v 该区域的该区域的80个字节单元,主要用于用户的数据存储,在该个字节单元,主要用于用户的数据存储,在该区域的单元只能以地址单元的形式进行操作。区域的单元只能以地址单元的形式进行操作。128B128B的片内数据存储器(的片内数据存储器(0000H-7FHH-7FH) 内部内部RAMRAM的的00H-1FH00H-1FH分为分为4 4个区(由个区(由RS0RS0和和RS1RS1的状态决定当的状态决定当前的工作寄存器组别),前的工作寄存器组别), 每个区有每个区有8 8个单元,分别用个单元,分别用R0R0- -R7R7来表示。来表示。v 第第0 0组工作寄存器:地址范围
7、为组工作寄存器:地址范围为0000H-07HH-07H;v 第第1 1组工作寄存器:地址范围为组工作寄存器:地址范围为0808H-0FHH-0FH;v 第第2 2组工作寄存器:地址范围为组工作寄存器:地址范围为1010H-17HH-17H;v 第第3 3组工作寄存器:地址范围为组工作寄存器:地址范围为1818H-1FHH-1FH。 举例:举例: 如果如果RS0RS0:RS1=00RS1=00时;则时;则(R0)=00H(R0)=00H(使用第使用第0 0组)组) 如果如果RS0RS0:RS1=01RS1=01时;则时;则(R0)=08H(R0)=08H(使用第使用第1 1组)组) 如果如果RS
8、0RS0:RS1=10RS1=10时;则时;则(R0)=10H(R0)=10H(使用第使用第2 2组)组) 如果如果RS0RS0:RS1=11RS1=11时;则时;则(R0)=18H(R0)=18H(使用第使用第3 3组)组)工作寄存器区(工作寄存器区(00H1FH) MCS-51MCS-51单片机中,有单片机中,有2121个具有特殊功能的寄存器,它主个具有特殊功能的寄存器,它主要是用来存放单片机的相应功能部件的控制命令、状态要是用来存放单片机的相应功能部件的控制命令、状态或数据。其中常用的有以下几个:或数据。其中常用的有以下几个: ACCACC(累加器,(累加器,8 8位):特殊用途的寄存器
9、,专门存放操位):特殊用途的寄存器,专门存放操作数或运算结果。作数或运算结果。v 例如:例如:MOV AMOV A,30H30H(把(把30H30H单元的数据传送给单元的数据传送给A A) ADD AADD A,30H30H(30H30H的数据和的数据和A A的内容相加,并保的内容相加,并保存在存在A A中)中) B B(8 8位):专门为乘除法而设置的寄存器。位):专门为乘除法而设置的寄存器。v 例如:例如:MUL AMUL A,B B ;A A和和B B相乘,结果的高低字节分别相乘,结果的高低字节分别 放入放入A A和和B B中中v 例如:例如:DIV ADIV A,B B ;(;(A A
10、)/ /(B B),商存),商存A A,余数存,余数存B B128B128B特殊功能寄存器特殊功能寄存器SFRSFR(80H-0FFH80H-0FFH) CY CY(C C):进位和借位标志,当指令执行中有进位和借位:进位和借位标志,当指令执行中有进位和借位 产生时,产生时,CYCY为为1 1,反之为,反之为0 0。 ACAC:辅助进位、借位标志(高半字节对低半字节的进位和辅助进位、借位标志(高半字节对低半字节的进位和借位),有进位和借位产生时,借位),有进位和借位产生时,ACAC为为1 1,反之为,反之为0 0。 F0F0: :用户标志位,由用户自定义。用户标志位,由用户自定义。 RS1RS
11、1和和RS0RS0:工作寄存器选择标志位。:工作寄存器选择标志位。 OVOV:溢出标志位。:溢出标志位。 P P:奇偶校验位,当:奇偶校验位,当A A中中1 1的个数为偶数时的个数为偶数时P=0P=0,反之为,反之为1 1。位序D7D6D5D4D3D2D1D0位标志CYACF0RS1RS0OV/PPSWPSW(程序状态字,(程序状态字,8 8位):存放指令执行后的有关状态。位):存放指令执行后的有关状态。 DPTRDPTR( (数据地址指针,数据地址指针,1616位)位): :存放程序存储器的地址或外存放程序存储器的地址或外部数据存储器的地址。可分部数据存储器的地址。可分DPHDPH和和DPLDPL两个独立两个独立8 8位寄存器使位寄存器使用。用。 PCPC(程序地址寄存器,(程序地址寄存器,1616位):执行指令后自动加一,常位):执行指令后自动加一,常将将PCPC值设置成程序第一条指令的内存地址。值设置成程序第一条指令的内存地址。 访问范围:访问范围:0000-00000-0FFFFHFFFFH。(SP+1)栈底栈底 (SP+2)入栈入栈出栈出栈(SP)SPSP(堆栈指针,(堆栈指针,8 8位):专门存放堆栈的栈顶位置。遵循位):专门存放堆栈的栈顶位置。遵循“先进后出先进后出”的原则。的原则。 注意:禁止用传送指令存放数据。注意:禁止用传送指令存放数据。
限制150内