AT89C51RE2代码分页与Keil编译器设置详解
4星 · 超过85%的资源 需积分: 9 147 浏览量
更新于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应用程序至关重要。正确配置和使用这些特性,可以确保程序能够无缝地跨越多个内存银行,从而实现更复杂、更大型的嵌入式系统设计。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2010-09-23 上传
2013-10-20 上传
2018-09-08 上传
2010-04-19 上传
2021-04-23 上传
2022-09-21 上传
ltshan139
- 粉丝: 1665
- 资源: 5
最新资源
- Angular程序高效加载与展示海量Excel数据技巧
- Argos客户端开发流程及Vue配置指南
- 基于源码的PHP Webshell审查工具介绍
- Mina任务部署Rpush教程与实践指南
- 密歇根大学主题新标签页壁纸与多功能扩展
- Golang编程入门:基础代码学习教程
- Aplysia吸引子分析MATLAB代码套件解读
- 程序性竞争问题解决实践指南
- lyra: Rust语言实现的特征提取POC功能
- Chrome扩展:NBA全明星新标签壁纸
- 探索通用Lisp用户空间文件系统clufs_0.7
- dheap: Haxe实现的高效D-ary堆算法
- 利用BladeRF实现简易VNA频率响应分析工具
- 深度解析Amazon SQS在C#中的应用实践
- 正义联盟计划管理系统:udemy-heroes-demo-09
- JavaScript语法jsonpointer替代实现介绍