Keil软件是针对嵌入式系统开发的一款集成开发环境(IDE),它特别支持ARM和8051微控制器的开发,其中C51编译器是用于8051微控制器系列的C语言编译器。在使用Keil进行模式设置和编程时,需要了解和掌握C51编译器的扩展关键字、内存区域、存储模式、存储类型声明、变量或数据类型以及指针和函数属性等知识点,以便能够有效地进行嵌入式开发。 C51编译器对标准ANSI C的扩展包括了一些特有的关键字,如_at_、idata、sfr、sfr16、sbit、data、xdata、pdata、using、reentrant、small、compact、large、task、code、bit、idata、xdata、compacts、bitdata、sfrs等。这些关键字的引入主要是为了方便对8051系列CPU硬件的直接编程。 接下来,Keil的内存区域主要分为以下几种类型:程序存储区(PrgramArea),内部数据存储区(InternalDataMemory),外部数据存储区(ExternalDataMemory)和特殊功能寄存器存储区(SpeciacFunctionRegisterMemory)。内部数据存储区又细分为直接寻址区(data)、间接寻址区(idata)、可位寻址区(bdata)。外部数据存储区则是用xdata和pdata进行标识。特殊功能寄存器存储区则专门用于控制定时器、计数器、串口等部件。 存储模式主要有三种:Small模式、Compact模式和Large模式。Small模式下,缺省变量参数存放在内部RAM中,具有快速访问的特点,但存储空间有限。Compact模式下,缺省变量存放在外部RAM中的一页中,存取速度较Small慢,但空间更宽裕。Large模式下,则将所有变量存储在多达64KB的外部RAM中,空间最大但速度最慢。 在声明存储类型时,可以使用code、data、idata、xdata、pdata这些关键字来声明变量的存储区域。例如,可以声明一个位于外部RAM的数据数组,或者一个指向长整型的指针。 C51提供了几种扩展数据类型,包括bit位变量、sbit位变量、sfr特殊功能寄存器、sfr16用于字地址的sfr以及bitdata可位寻址的存储区域。这些扩展类型是为了在硬件级别上更精确地控制微控制器的各个部件。 在位变量与位寻址方面,C51允许开发者直接在字节中定义位变量,比如使用sbit定义特定寄存器的位地址。例如,可以将一个中断允许位定义为特定的内存地址位。 在指针方面,C51支持通用指针和特定存储器指针。通用指针的声明和使用与标准C相同,但可以指定指针的存储类型。例如,可以声明一个指向长整型的指针。 在编程时,函数属性也是需要关注的,特别是与编译器相关的属性。例如,某些函数不能返回bit型值,bit型变量不能作为指针使用,也不能声明bit数组。 在使用Keil模式设置和编程时,开发者需要深入了解C51的扩展关键字、内存区域、存储模式、存储类型声明、变量或数据类型以及指针和函数属性等知识点,这样才能够充分利用C51编译器的功能,编写出高效、可靠的嵌入式系统代码。
- 粉丝: 5
- 资源: 953
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助