
单片机的存储器结构.ppt
19页单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,一、存储器的地址空间,8051单片机的存储器从物理上分四个存储空间:片内程序存储器、片外程序存储器、片内数据存储器、片外数据存储器,从用户的角度考虑,8051单片机的存储器又可分三个逻辑空间:片内、片外统一编址的64KB(0000HFFFFH)程序存储器地址空间(使用16位地址线),256B的片内数据存储器地址空间(00HFFH,其中80HFFH内仅有二十几个字节单元供特殊功能寄存器专用),片外可扩展的64KB(0000HFFFFH)数据存储器地址空间(使用16位地址线)单片机的存储器结构,这三个存储器空间地址是重叠的,8051的指令系统为区别这几个空间,有针对性地设置了这三个地址空间的数据传送指令:CPU访问片内RAM用MOV指令,访问片内、片外程序存储器用MOVC指令,访问片外数据存储器用MOVX指令图2-9给出了8051单片机的存储器地址空间分布图二、MCS-51程序存储器地址空间,(一)程序存储器的分类,1.掩膜ROM 这种存储器的存储电路对0和1两种状态,是在制造时由生产厂家根据用户需求,通过掩膜工艺制作或不制作晶体管栅极来实现的,一旦制作完毕,存储内容不可修改。
2.PROM,PROM是针对掩膜ROM的不可修改而提出的掩膜ROM在用户软件开发时不能更改,故PROM是由用户编程PROM出厂时为熔丝断裂型,编程输入时,对需要写1的单元通过大电流熔断其熔丝,丝断后不可再恢复,故只能写入一次3.,EPROM,EPROM是一种可多次写入的ROM当芯片在紫外线照射时,入射光子驱散EPROM,中的电子,将原来存储的电荷信息擦除,EPROM所存信息被擦除当再次使用时,可重新写入新内容常用的芯片有2732、2764、27128、27256、27512等,其容量分别为4KB、8KB、16KB、32KB、64KB等4.,E,2,PROM,E,2,PROM,是近年来使用的新产品,它可以直接接在+5V电源上进行电擦除,也可以电写入,并能一次写几位或几个字节常用的芯片由2816(2K8位)、2817(2K8位)、2864(8K8位)等二)程序存储器的使用,8051/8751的64KB程序存储器空间,片内ROM/EPROM为4KB,地址为0000H0FFFH,片外最多可扩展至64KB的ROM/EPROM,地址1000HFFFFH,片内外是统一编址的当 引脚接高电平时,8051的PC在0000H0FFFH范围内执行片内ROM中的程序;当PC超过0FFFH时,就自动转向片外ROM取指令。
当 接低电平时,8051片内ROM不起作用,CPU只能从片外ROM/EPROM中取指令.,MCS-51系列单片机上电复位后,程序计数器指针PC为0000H,故CPU总是从0000H开始执行程序若用户编写的主程序或初始化程序不从此地址开始,则应在0000H单元内存放一条绝对跳转指令,将PC转向主程序或初始化程序的入口地址三、MCS-51数据存储器地址空间,(一)数据存储器的分类 数据存储器一般采用随机存取存储器(RAM)这种存储器是在使用过程中利用程序随时可以写入信息,又可以随时读出信息的存储器一般情况下,我们用此存储器存储数据或运算的中间结果,所以也称之为数据存储器1)静态RAM 即SRAM(Static RAM),其存储电路以双稳态触发器为基础,其优点是状态稳定,只要不掉电,信息不会丢失,不需要刷新电路;缺点是集成度低2)动态RAM 即DRAM(Dynamic RAM)其存储单元以电容为基础,电路简单,集成度高但存在电容中电荷由于漏电会逐渐丢失的问题,,需定时刷新它适于大存储容量的计算机,常说的内存条就是由DRAM组成3)非易失RAM或掉电自保护RAM 即NVRAM(Non Volative RAM),这种RAM是由SRAM和EEPROM共同构成的存储器,正常运行时和SRAM一样,而在掉电或电源有故障的瞬间,它把SRAM的信息保存在EEPROM中,从而使信息不会丢失。
NVRAM多用于存储非常重要的信息和掉电保护.,(二)MCS-51单片机的数据存储器 数据存储器常用于存放运算的中间结果、缓冲输入数据或暂存输出数据、存放标志位等.,数据存储器分为片内和片外两种,二者的地址空间是彼此独立的,访问片内数据存储器用MOV指令,地址空间为00HFFH;访问片外数据存储器用MOVX指令,地址空间为0000HFFFFH1.片内RAM低128字节区域 8051片内真正可作数据存储器用的只有128个RAM单元,即00H7FH地址空间他们又可划分为三个区域:工作寄存器区、位寻址区和数据缓冲区.,(1)工作寄存器区 占00H1FH的32个RAM单元,分为四组工作寄存器,每组由8个工作寄存器R0R7组成工作寄存器组的选择由程序状态字寄存器PSW中的RS1和RS0设置.,8051内部数据存储器地址空间,工作寄存器选择,工作寄存组,RS1、RS0,的状态,R0R7占用,的地址单元,0,0 0,00H07H,1,0 1,08H0FH,2,1 0,10H17H,3,1 1,18H1FH,(2)位寻址区,RAM位寻址区地址分配,字节地址,位 地 址,D7,D6,D5,D4,D3,D2,D1,D0,2FH,7FH,7EH,7DH,7CH,7BH,7AH,79H,78H,2EH,77H,76H,75H,74H,73H,72H,71H,70H,2DH,6FH,6EH,6DH,6CH,6BH,6AH,69H,68H,2CH,67H,66H,65H,64H,63H,62H,61H,60H,2BH,5FH,5EH,5DH,5CH,5BH,5AH,59H,58H,2AH,57H,56H,55H,54H,53H,52H,51H,50H,29H,4FH,4EH,4DH,4CH,4BH,4AH,49H,48H,28H,47H,46H,45H,44H,43H,42H,41H,40H,字节地址,位 地 址,D7,D6,D5,D4,D3,D2,D1,D0,27H,3FH,3EH,3DH,3CH,3BH,3AH,39H,38H,26H,37H,36H,35H,34H,33H,32H,31H,30H,25H,2FH,2EH,2DH,2CH,2BH,2AH,29H,28H,24H,27H,26H,25H,24H,23H,22H,21H,20H,23H,1FH,1EH,1DH,1CH,1BH,1AH,19H,18H,22H,17H,16H,15H,14H,13H,12H,11H,10H,21H,0FH,0EH,0DH,0CH,0BH,0AH,09H,08H,20H,07H,06H,05H,04H,03H,02H,01H,00H,RAM位寻址区地址分配,(3)用户RAM区,位于位地址之后的30H7FH共80个RAM单元是用户RAM区,也称为数据堆栈缓冲区。
该区域主要用于存放用户数据或作堆栈区使用2.片内特殊功能寄存器SFR,MCS-51单片机片内高128字节的RAM中,离散地分布着21个具有特殊功能的寄存器SFR,他们包括程序状态字寄存器、累加器、I/O口锁存器、定时/计数器,串口数据缓冲器、数据指针等访问特殊功能寄存器只允许使用直接寻址方式符 号,名 称,地址,*ACC,累加器,E0H,*B,B寄存器,F0H,*PSW,程序状态字,D0H,SP,堆栈指针,81H,DPTR,DPH,83H,DPL,82H,*P0,P0口锁存器,80H,*P1,P1口锁存器,90H,*P2,P2口锁存器,A0H,*P3,P3口锁存器,B0H,*IP,中断优先级控制寄存器,B8H,MCS-51系列单片机的特殊功能寄存器,符 号,名 称,地址,*IE,中断允许控制寄存器,A8H,TMOD,定时/计数器状态寄存器,89H,*TCON,定时/计数器控制寄存器,88H,TH0,T/C0高字节,8CH,TL0,T/C0低字节,8AH,TH1,T/C1高字节,8DH,TL1,T/C1低字节,8BH,*SCON,串行口控制寄存器,98H,SBUF,串行数据缓冲器,99H,PCON,电源控制寄存器,97H,注:表中带*号者既可按位寻址,也可按字节寻址,(三)部分特殊功能寄存器简介,1、,累加器ACC,累加器ACC是8051最常用、最繁忙的8位特殊功能寄存器,许多单操作数指令的操作数取自ACC,双操作数指令的一个操作数取自ACC,许多算术和逻辑运算的结果存于ACC,输入/输出指令也多以ACC为核心。
指令系统中用A作ACC的助记符2寄存器B 寄存器B是一个为完成乘法和除法运算而设置的8位寄存器在乘、除指令中,要用B寄存器存放第二操作数,与A配合使用乘、除运算后,B寄存器用来存放乘积的高字节或除法的余数部分此外,B也可作暂存结果的通用寄存器3程序状态字寄存器PSW PSW是一个8位特殊功能寄存器,用于存放程序的状态和指令的执行状态,供程序查询和判别用,各位位置如下D7,D6,D5,D4,D3,D2,D1,D0,CY,AC,F0,RS1,RS0,OV,未用,P,CY:进位标志位在执行加、减法指令时,如果运算结,果的最高位(D7位)有进位或借位,CY位被置“1”,否则,清“0”AC:半进位标志位在执行加、减法指令时,其低半字节向高半字节有进位或借位时(D3位向D4位),AC位被置“1”,否则清“0”F0:用户自定义标志位RS1和RS0:工作寄存器组选择位OV:溢出标志位在补码运算,当运算结果超出-128+127的范围时(溢出),OV位被置“1”,无溢出,OV位为“0”P:奇偶校验标志位每条指令执行完毕,A中有奇数个1,则P=1,否则P=04堆栈指针SP 它是一个8位的特殊功能寄存器,用于指出堆栈栈顶的地址。
数据被压入堆栈,SP自动加1,数据从堆栈中弹出,SP自动减1系统复位时由硬件使SP=07H堆栈深度为128个字节5数据指针DPTR,DPTR是一个16位的特殊功能寄存器,它是用8位DPH和8位DPL两个独立的8位寄存器来表示的16位地址当对64KB片外RAM寻址时,DPTR可,以作间地址寄存器使用,执行MOVX A,DPTR指令或MOVX DPTR,A指令在访问程序存储器时,DPTR作基址,执行MOVC A,A+DPTR指令,以读取程序存储器内存放的表格常数6程序计数器PC,程序计数器PC是一个16位专用计数器,在物理结构上是独立的,不属于特殊功能寄存器SFRPC用于存放CPU下一条要执行指令的地址,即程序存储器地址PC本身是没有地址的,是不可以寻址的,因此用户不能对它进行读写操作,但可以通过转移、调用、返回等指令改变其内容,从而实现程序的转移PC的寻址范围为64KB。












