AT89C51RE2代码分页与Keil编译器设置详解

4星 · 超过85%的资源 需积分: 9 4 下载量 98 浏览量 更新于2024-09-16 收藏 194KB PDF 举报
"AT89C51RE2是一款基于C51控制器的微处理器,具有128KB的内部闪存。为了支持超过64KB的代码大小,它采用了bank机制,即代码分页策略。该器件与市场上的主流编译器兼容,包括Keil µVision。本应用笔记详细阐述了如何在Keil µVision软件中实现AT89C51RE2的代码分页和银行切换功能。" AT89C51RE2是一款增强型的8位微控制器,其最大特色是拥有128KB的内部程序存储空间,这超过了传统的8051芯片的64KB限制。为了充分利用这一大容量存储,引入了代码银行(Code Banking)机制。代码银行允许将程序分割成多个部分,每个部分存储在不同的内存区域,即“银行”中。这种机制使得程序可以跨越64KB的界限,从而实现更大的程序设计。 Keil µVision是一款流行的微控制器开发环境,它完全支持AT89C51RE2的代码银行特性。在使用Keil进行开发时,有三个关键步骤: 1. **Keil软件配置**:首先,你需要在Keil软件中设置项目属性,以启用对银行内存的支持。这通常涉及到链接器(Linker)设置,确保它知道如何处理跨银行的代码引用。 2. **L51_BANK.A51和STARTUP.A51源代码文件配置**:这两个文件是Keil µVision用于处理银行切换的关键。L51_BANK.A51包含了与银行切换相关的汇编代码,而STARTUP.A51则包含了程序启动时的初始化代码,包括银行选择和设置。 3. **编程和调试**:在完成上述配置后,开发者需要编写和组织代码,确保正确地引用不同银行的代码。Keil µVision的调试器可以帮助你在运行时查看和控制银行切换,这对于理解和优化代码的运行至关重要。 在实施代码银行和银行切换时,还需要注意以下几点: - 每个银行的大小和地址范围应根据数据手册中的信息进行设定。 - 在代码中使用绝对地址访问特定银行的代码或数据。 - 银行切换通常通过修改特殊的寄存器(如PSEN、ALE等)来实现,这些寄存器控制程序计数器(PC)指向哪个银行。 - 银行切换必须在中断服务程序或子程序调用中特别小心,因为不正确的切换可能导致程序流混乱。 理解并有效利用AT89C51RE2的代码银行机制和Keil µVision的工具,对于开发大容量的8051应用程序至关重要。正确配置和使用这些特性,可以确保程序能够无缝地跨越多个内存银行,从而实现更复杂、更大型的嵌入式系统设计。