1、MCS-51存储器和布尔处理器存放当前执行的程序和数据,主机能直接访问,存取速度快,容量小。存放暂不执行的程序和数据,主机不能直接访问,存取速度慢,容量大。存储器的功能是存储程序和数据。3.1 概述3.1.1 存储器的分类RAM存储器双极型:由双极型晶体管构成,速度快、功耗大、集成度低、价格贵。MOS型:由MOS管构成,速度比双极型RAM慢、功耗小、集成度高、价格便宜。按信息的存储方式分为:静态RAM和动态RAM及新出现的iRAM。ROMEEPROM,电擦除(擦除以Byte为单位)。可擦写EPROM,紫外线(一次全部)擦除,需专门的擦除设备。掩膜ROM,出厂时已固化。可编程PROM,用户一次固
2、化。FLASHROM,随机改写,速度快(擦除以Block为单位)。3.1.2 8051的片内片内存储器 8051单片机与一般微机的存储器配置方式很不相同。一般微机通常采用冯诺依曼结构,只有一个逻辑空间,可以随意安排ROM或RAM。访问存储器时,同一地址对应唯一的存储单元,可以是ROM也可以是RAM,并用同类访问指令。而MCS-51则不同:8051在物理结构上设计成程序存储器与数据存储器独立分开的哈佛结构:片内程序存储器4KB(ROM 0000H0FFFH)片内数据存储器128B(RAM 00H7FH)3.2 MCS-51的存储器结构8051在物理结构上有四个存储空间:片内程序存储器、片外程序存
3、储器、片内数据存储器、片外数据存储器。64KBROMEA=0EA=10000H0FFFH1000HFFFFH4KBROMFFH80H7FH00H SFRRAM64KBRAM(I/O)0000HFFFFH片内片外片外程序存储器数据存储器 8051在逻辑上,即从用户角度上8051有三个存储空间:片内外统一编址的程序存储器 片内外不统一编址的数据存储器 特殊功能寄存器(片内)访问这几个不同的逻辑空间时,采用的指令:片内外程序存储器空间-MOVC 片内数据存储器空间和SFR-MOV 片外数据存储器地址空间-MOVX3.2.1 程序存储器及地址空间作用-程序存储器用于存放编好的程序和表格常数。8051片
4、内有4K字节ROM,片外用16位地址线最多可扩展64K字节ROM,两者是统一编址的。如果EA端保持高电平,8051执行片内前4KB ROM地址(0000H0FFFH)中的程序。当寻址范围超过4KB(1000HFFFFH)时,则从片外存储器取指令。当EA端保持低电平时,8051的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从0000H开始编址。在程序存储器中,有6个单元具有特殊功能0003H0003H:外部中断0入口。000BH000BH:定时器0溢出中断入口。0013H0013H:外部中断1入口。001BH001BH:定时器1溢出中断入口。0023H0023H:串行口中断入口。使
5、用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排程序上。0000H0000H:8051复位后,PC0000H,即程序从0000H 开始执行指令。3.2.2 数据存储器及地址空间数据存储器片外RAM64KB,地址范围0000HFFFFH片内RAM128B,地址范围00H7FH使用时只能用MOVXMOVX指令访问使用MOVMOV指令访问,可以进行堆栈操作片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)寄存器区4组(32B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器区4组(32B).由PSW中的2位RS1、RS0来决定选 哪一组为当前工作寄存器:
6、RS1、RS0=00 选0组 RS1、RS0=01 选1组 RS1、RS0=10 选2组 RS1、RS0=11 选3组在位地址区,每一个BIT都有一个 地址,共168=128位00H00H30H30H2FH2FH20H20H1FH1FH.片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器0组寄存器区4组(32B).RS1RS1、RS0=RS0=0000R7R6R5R4R3R2R1R000H00H01H01H02H02H03H03H04H04H05H05H06H06H07H07H00H00H30H30H2FH2FH20H2
7、0H1FH1FH.片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器1组R7R6R5R4R3R2R1R008H08H09H09H0AH0AH0BH0BH0CH0CH0DH0DH0EH0EH0FH0FH寄存器区4组(32B).RS1RS1、RS0=RS0=010100H00H30H30H2FH2FH20H20H1FH1FH.片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器2组R7R6R5R4R3R2R1R010H10H11H11H12H12H13H
8、13H14H14H15H15H16H16H17H17H寄存器区4组(32B).RS1RS1、RS0=RS0=101000H00H30H30H2FH2FH20H20H1FH1FH.片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组寄存器3组R7R6R5R4R3R2R1R018H18H19H19H1AH1AH1BH1BH1CH1CH1DH1DH1EH1EH1FH1FH寄存器区4组(32B).RS1RS1、RS0=RS0=111100H00H30H30H2FH2FH20H20H1FH1FH.片内数据存储器空间分布图通用RAM区 (8
9、0B)位地址区(16B)7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组位地址区20H20H21H21H22H22H23H23H24H24H25H25H26H26H27H27H28H28H29H29H2AH2AH2BH2BH2CH2CH2DH2DH2EH2EH2FH2FH00H00H01H01H02H02H03H03H04H04H05H05H06H06H07H07H08H08H0FH0FH10H10H7FH7FH78H78H70H70H68H68H60H60H58H58H50H50H48H48H40H40H38H38H30H30H28H28H20H20H77H77H6FH6FH67H67H
10、1FH1FH5FH5FH57H57H4FH4FH47H47H3FH3FH37H37H2FH2FH27H27H1FH1FH17H17H.D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0.00H00H30H30H2FH2FH20H20H1FH1FH.片内数据存储器空间分布图通用RAM区 (80B)位地址区(16B)00H00H30H30H2FH2FH20H20H1FH1FH7FH7FH寄存器3组寄存器2组寄存器1组寄存器0组通用RAM区.共80个字节,作为一般的数据缓冲区并可设置堆栈区3.2.3 特殊功能寄存器(21个字节)SFR(Special Fun
11、ctional Register)见书P40表3-6与与ALUALU相关的(相关的(3 3个)个)A Register(AccA Register(Accumulatorumulator):累加器,通常用A A或ACCACC表示。可字节寻址(E0H),也可位寻址(E0HE7H)在运算器做运算时其中一个数一定是在ACCACC中。B RegisterB Register:暂存寄存器。暂存寄存器。在做乘、除法时放乘数或除数及结果。PSW (PSW (P Programrogram S Statustatus W Wordord):):PSW是8位寄存器,用于作为程序运行状态的标志。借此,可以了解CP
12、U的当前状态,并作出相应的处理。它的各位功能如下:当CPU进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置1或清0。这些标志的状态,可由专门的指令来测试,也可通过指令来读出。它为计算机确定程序的下一步进行方向提供依据。PSW寄存器中各位的名称及位置如上所示,下面说明各标志位的作用。D7H D6H D5H D4HD3HD2HD1HD0H CY AC F0 RS1 RS0 OV PPSW位地址 CYCY:进位标志。加减运算时,保存最高位进位、借位状态。AC:半进位标志。例:78H+97H 0111 1000 +1001 0111 1 0000 1111 D7H D6H D
13、5H D4HD3HD2HD1H D0H CY AC F0 RS1 RS0 OV PPSW位地址有进位CY=1没有半进位AY=0 RS1、RS0:工作寄存器组选择位。0 0 选择工作寄存器0组(内部RAM地址00H07H)0 1 选择工作寄存器1组(内部RAM地址08H0FH)1 0 选择工作寄存器2组(内部RAM地址10H17H)1 1 选择工作寄存器3组(内部RAM地址18H1FH)P:奇偶校验位,它用来表示累加器A内容中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。例:某运算结果是78H(01111000),P=0。D7H D6H D5H D4HD3HD2HD1H D0H
14、CY AC F0 RS1 RS0 OV PPSW位地址F0:用户标志位。作为软件标志,由编程人员决定 何时使用。OV:OV(PSW.2):溢出标志位,运算结果的D7或 D6位中只有一位产生进/借位时,置位OV,表示产生溢出。D7H D6H D5H D4HD3HD2HD1H D0H CY AC F0 RS1 RS0 OV PPSW位地址与指针相关的(与指针相关的(2 2个)个)SP(SP(S Stack tack P Pointerointer):堆栈指针,8位寄存器,用来指定堆栈的栈顶位置,初值为07H07H,它是加1计数。DPTR (DDPTR (Dataata P Poinoint te
15、er)r)(分成DPHDPH、DPLDPL两个):):数据指针可以用它来访问外部数据存储器中的任一单元,也可以作为通用寄存器来用,由我们自已决定如何使用。P0P0、P1P1、P2P2、P3P3:四个并行输入四个并行输入/输出口的寄存器(锁存器)。它里面的输出口的寄存器(锁存器)。它里面的内容对应着管脚的输出。内容对应着管脚的输出。SCON(SSCON(Serialerial Con Controltrol RegisterRegister)SBUFSBUF (S(Serial Date erial Date BufBuffer)fer)PCON(PCON(P Powerower Con Con
16、troltrol RegisterRegister)与端口相关的(与端口相关的(7 7个)个)与定时与定时/计数器相关的(计数器相关的(6 6个)个)TMOD(TTMOD(Timer/Counterimer/Counter Mod Mode Registere Register)定时器工作模式寄存器。定时器工作模式寄存器。TCON(TTCON(Timer/Counter imer/Counter ConControl Registertrol Register)定时器控制寄存器。定时器控制寄存器。TH0TH0、TL0 TL0、TH1TH1、TL1TL1:分别是分别是T0T0、T1T1的记数初值
17、寄存器。的记数初值寄存器。IP(IIP(Interrupt nterrupt P Priorityriority RegisterRegister)IE(IIE(Interruptnterrupt E Enable Registernable Register)与中断相关的(与中断相关的(2 2个)个)课堂练习补充题:1.下列是关于8031单片机存储空间的描述,分析其对错:a.a.特殊功能寄存器容量为21B,没有位地址。b.b.外部数据存储器容量可达64kB,字节地址和位地址范围均为0000HFFFFH c.c.程序存储器容量可达64kB,字节地址和位地址范围均为0000HFFFFHd.d.内
18、部数据存储器容量为128B,字节地址和位地址范围均为00H7FHe.特殊功能寄存器容量为21B,有一部分特殊功能寄存器具有位地址。f.f.程序存储器容量可达64kB,地址范围为0000HFFFFH。2.MCS-51单片机的工作寄存器组如何选择?若PSW 的RS1、RS0位的内容是01,那么此时工作寄存器R1的字节地址是多少?3.MCS-51内部RAM的寄存器区一共有多少个存储单元?分为多少组?每组有多少个存储单元?分别以什么作为寄存器名?4.8051存储空间的结构与8086/8088有什么不同?它的物理结构是怎样的?5.MCS-51单片机的内部数据存储器容量是多少?它有 什么特点?3.3 外部
19、程序存储器与访问 P0口和P2口输出16位地址。读取的指令码由P0口输入。P0口分时复用,所以必须用地址锁存器,锁存信号有ALE引脚提供。当EA=1时,CPU首先访问内部ROM,当PC4095时,CPU自动转向访问外部程序存储器,同时PSEN信号有效,以选通外部程序存储器。3.3.1 外部程序存储器与访问 当EA=0时,所有取指操作均对外部程序存储器进行(8031必须如此)。ALE:访问外部存储器时,允许地址锁存信号输出,并以1/12震荡器速率输出。非访问外部存储器时,以1/6震荡器固定不变的速率输出。PSEN:访问外部程序存储器选通信号(每个机器周期2次,执行MOVX类指令除外),CPU每个机器周期访问外部存储器2次。3.3.2 外部数据存储器与访问 外部数据存储器的访问地址可由工作寄存器Ri(由P0输出8位地址)或数据指针DPTR提供(DPL由P0输出;DPH由P2输出)。读写数据的操作由P0和P2口输出、由P0口输入。访问外部RAM的读写选通信号由RD、WR提供,均为低电平有效。通过指令来区别内、外部RAM。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。