C51编程:Keil模式设置与8051扩展关键字解析
16 浏览量
更新于2024-09-01
收藏 70KB PDF 举报
"本文介绍了Keil C51的模式设置和编程中的关键知识点,包括C51对ANSIC标准的扩展、存储类型、内存区域、特殊功能寄存器以及存储模式。"
在嵌入式开发中,Keil C51是一款广泛使用的编译器,专为8051系列微控制器设计。深入理解C51对标准ANSIC的扩展对于有效利用8051的硬件特性至关重要。C51提供了许多针对8051硬件的特定关键字,使得程序员可以直接操作硬件资源。
一、C51扩展关键字
C51 V4.0版本包含19个扩展关键字,例如:
1. `_at_`:用于指定变量存储位置。
2. `idatasfr`:用于内部数据存储器的间接寻址区域。
3. `16`:用于声明16位变量。
4. `alien`:处理不同字节序的内存。
5. `interrupt`:定义中断服务函数。
6. `small`、`large`、`task`、`Code`:定义内存模型。
7. `bit`、`pdata`:处理位变量和一页外部RAM。
8. `using`:选择SFR的bank。
9. `reentrant`:支持重入函数。
10. `xdata`:处理外部直接寻址RAM。
11. `compact`、`sbit`、`sfr`:声明紧凑模式、位变量和特殊功能寄存器。
二、内存区域
1. **Program Area**(程序区):由`Code`关键字声明,最大可容纳64KB程序代码。
2. **Internal Data Memory**(内部数据存储区):
- `data`:直接寻址区,包含内部RAM的低128字节(00H~7FH)。
- `idata`:间接寻址区,覆盖整个内部RAM(00H~FFH)。
- `bdata`:可位寻址区,位于20H~2FH,用于位操作。
3. **External Data Memory**(外部数据存储区):
- `xdata`:用于外部直接寻址RAM,最大可达64KB(0000H~0FFFFH)。
- `pdata`:紧凑模式下访问1页(256Bytes)外部RAM。
4. **Special Function Register Memory**(特殊功能寄存器区):
- `sfr`:字节寻址SFR,如`sfr P0 = 0x80;`。
- `sfr16`:字寻址SFR,如`sfr16 T2 = 0xcc;`。
- `sbit`:位寻址SFR,如`sbit EA = 0xAF;`。
三、存储模式
存储模式决定未明确指定存储类型的变量和函数参数的默认存储位置。C51支持多种内存模型,例如`small`、`large`和`compact`,它们决定了变量如何在不同内存区域分配。`small`模式适合小规模程序,所有变量都在内部RAM中;`large`模式允许使用全部的外部RAM;而`compact`模式则结合了内部和外部RAM,适用于需要节省内存的情况。
了解并熟练运用这些知识点,开发者可以更好地优化8051微控制器的程序,提高代码效率,同时充分利用硬件资源。在实际编程过程中,根据项目需求选择合适的存储模式和关键字,能够显著提升程序性能和可维护性。
2007-09-01 上传
2011-08-11 上传
2014-04-22 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38700790
- 粉丝: 5
- 资源: 953
最新资源
- awesome-python-cheatsheets:针对正在学习Python编程的Java开发人员的参考速查表
- nan:Node.js的本机抽象
- 中秋喜相逢flash节日动画
- 毕业设计&课设-机器人学习的matlab代码.zip
- MLDS_2015:具有深度和结构的机器学习
- c#开发的 图像对象识别(训练好的模型)
- 电子商务商店
- 21款高大上的网页PPT情感图素材.zip
- 毕业设计&课设-基于MATLAB的IEEE配电系统仿真.zip
- Stacker-crx插件
- deployment-tracker
- hydra-head:GitHub WebCrawler
- robo_friends
- cheersee:使用Rails构建的社交网络约会应用程序
- csr:Colegio de Sta。 丽塔·德·圣卡洛斯(Rita de San Carlos)
- 毕业设计&课设-二维四旋翼系统的Matlab仿真.zip