AT89C51RE2代码分页与Keil编译器设置详解
4星 · 超过85%的资源 需积分: 9 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应用程序至关重要。正确配置和使用这些特性,可以确保程序能够无缝地跨越多个内存银行,从而实现更复杂、更大型的嵌入式系统设计。
2021-01-07 上传
2013-10-20 上传
2018-09-08 上传
点击了解资源详情
2010-04-19 上传
2021-04-23 上传
2022-09-21 上传
ltshan139
- 粉丝: 1664
- 资源: 5
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍