第十章 AT89S52存储器结构.ppt
文本预览下载声明
单片机的存储器组织 在实际应用中,常需在RAM区设置堆栈。80C51的堆栈一般设在30H~7FH的范围内。栈顶的位置由SP寄存器指示。复位时SP的初值为07H,在系统初始化时可以重新设置。 数据指针寄存器DPTR 数据指针DPTR是一个 16 位的专用寄存器, 其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。既可作为一个 16 位寄存器DPTR来处理, 也可作为两个独立的 8 位寄存器DPH和DPL来处理。 DPTR 主要用来存放 16 位地址, 当对 64 KB外部数据存储器空间寻址时, 作为间址寄存器用。在访问程序存储器时, 用作基址寄存器。 3.3 外部存储器及其访问 3.3.1 外部程序存储器与访问 只有读操作。除由PC直接寻址,以执行各条指令外,还可用FC或DPTR作变址寻址。例如,若DPTR=2000H,A=20H,则指令MOVC A,@A十DPTR完成了把程序存储器2020H单元中的内容送入A中的操作。这种数据操作方式通常用来查阅程序存储器中的数据表格。 1. AT89S52单片机访问外部程序存储器所使用的控制信号 ALE:低8位地址锁存控制; PSEN:外部程序存储器“读取”控制。 EA:片内、片外程序存储器访问的控制信号。=1时,访问片内程序存储器;当=0时,访问片外程序存储器。 2. 访问外部程序存储器的过程 首先通过地址总线给出地址信号,选中程序存储器该地址的存储单元,然后由控制总线发出读选通信号,在读选通信号的控制作用下,将存储在被选中存储单元中的指令代码读出并送至数据总线,单片机通过对数据总线的访问读取已送至数据总线的指令代码,完成一次对外部程序存储器的访问过程。 3. 扩展外部程序存储器的连接方法 4. 地址锁存器的作用 5. 访问外部程序存储器的时序 (2) 应用系统中接有片外RAM 51系列单片机的CPU在访问片外ROM的一个机器周期内,信号ALE出现两次(正脉冲),ROM选通信号也两次有效,这说明在一个机器周期内,CPU两次访问片外ROM,也即在一个机器周期内可以处理两个字节的指令代码,所以在51系列单片机指令系统中有很多单周期双字节指令。 3.3.2 外部数据存储器与访问 虽然外部数据存储器和和外部程序存储器共用0000H~FFFFH的64KB地址空间,但两者的读写控制信号不同,外部数据存储器的读和写分别由 和 信号控制,外部程序存储器的读选通由信号 控制,因此不会发生地址重叠的现象。 可进行读写操作。用DPTR或工作寄存器组中的Ro或R1作寄存器间接寻址。当用RO或R1作寄存器间接寻址时,由P2端口提供高8位地址,R0或R1提供低8位地址。访问外部数据存储器使用MOVX类指令 2. 访问外部数据存储器的时序 3.4 片内FLASH存储器操作 3.4.1 签名字节 1. 签名字节 所谓签名字节是Flash存储器的生产厂商在生产AT89S系列单片机时,写入到Flash存储器中的一组用以说明单片机的生产厂商、型号和编程电压等的特征信息。 AT89S52的签名字节共有3B字节,具体在存储器中的地址和含义如表3.4.2所示。 3.4.2 程序存储器的加密 1. 程序存储器加密的概念 为了保护所存储程序的安全性,防止被非法读出,保护开发者的合法利益,需要对写入Flash存储器中的程序进行加密。 AT89S系列单片机提供了3位加密位LB1、LB2和LB3,对每位加密位可维持原来的非编程状态(U),也可进行编程(P),每位加密位是否进行了编程便可组合形成几种不同的保护模式,如表3.4.3所示。 表 3.4.3 程序加密位的保护模式 2. 程序存储器加密的方法 对程序存储器加密需要根据所希望采取的加密保护模式对3位加密位LB1、LB2和LB3进行编程。编程按照LB1→LB2→LB3的顺序按位进行。注意,在对各位加密位进行编程时,其控制信号是不同的。 3.4.3 Flash存储器的并行编程 1. Flash编程器的并行编程方式 AT89S52单片机的内部Flash存储器在出厂时处于可编程状态,除签名字节已经有存储数据外其它存储单元的内容均为FFH。编程时须接12V编程电压,与通用的Flash编程器或EPROM编程器兼容,因此可使用常规的Flash编程器或EPROM编程器对此进行编程。AT89S52单片机的编程以字节为单位,逐位编程。图3.4.3为并行编程的接口电路图。 2. 并行编程的算法: 从编程接口电路可以看出,AT89S52单片机编程时除地址线和数据线外还需要一些控制信号,表3.4.4为编程时这些控制信号的状态情况。AT89S52单片机内部Flash为8KB,地址范围0000
显示全部