KEIL C51中的_at_关键字

发布者:算法之手最新更新时间:2016-12-14 来源: eefocus关键字:KEIL  C51  关键字 手机看文章 扫描二维码
随时随地手机看文章

绝对位置变量

变量可以在你的C程序中的绝对内存地址位于源模块使用_at_关键字。此功能的用法是:

类型 _ memory_space _ 变量名 _at _  常数 ;

其中:memory_space是为变量的内存空间。如果缺少声明,默认的存储器空间使用。请参阅第94页的“记忆体模型”的更多信息默认的内存空间。

类型是可变的类型。

变量名是变量名。

不变的是哪个地址找到变量。

_at _ 后的绝对地址必须符合的物理边界,为变量的内存空间。C X 51的编译器检查无效地址规范。

注意:如果您使用_at_关键字来声明一个变量,访问XDATA外设,你可能需要的volatile关键字,以确保C编译器不优化所需的内存访问。

  绝对位置变量以下限制:

a、绝对变量不能被初始化。

b、函数和变量类型位不能设在一个绝对地址。


关键字:KEIL  C51  关键字 引用地址:KEIL C51中的_at_关键字

上一篇:C51指针类型和存储区的关系详解
下一篇:Keil C51中变量和函数的绝对地址定位问题

推荐阅读最新更新时间:2024-03-16 15:25

51单片机c语言定义寄存器r,c51特殊功能寄存器定义及作用
单片机C51语言是由C语言继承而来的。和C语言不同的是,C51语言运行于单片机平台,而C语言则运行于普通的桌面平台。C51语言具有C语言结构清晰的优点,便于学习,同时具有汇编语言的硬件操作能力。对于具有C语言编程基础的读者,能够轻松地掌握单片机C51语言的程序设计。 c51主要特点 单片机C51语言兼备高级语言与低级语言的优点。 语法结构和标准C语言基本一致,语言简洁,便于学习。 单片机C51实验板 运行于单片机平台,支持的微处理器种类繁多,可移植性好。对于兼容的8051系列单片机,只要将一个硬件型号下的程序稍加修改,甚至不加改变,就可移植到另一个不同型号的单片机中运行。 具有高级语言的特点,尽量减少底层硬件寄存器的操
[单片机]
51单片机c语言定义寄存器r,<font color='red'>c51</font>特殊功能寄存器定义及作用
STC单片机做的电子表C51程序
电路很简单我就不画了,是stc系列的单片机做的,显示部分就是2个74hc573芯片连到P1口,然后用p3.0控制段选,按键的定义程序里有说明。很容易就能搭出来,下图是效果图,自己用万用板焊的,技术不行。到处都是飞线呵呵,请大家多多指教 程序的c51语言完整版本的下载地址: http://www.51hei.com/f/biaoc4.rar #include stc90.h #define uchar unsigned char #define uint unsigned int uchar d0,ss,gs,sf,gf,sm,gm; uchar e1,e2,e3,e4,e5,e6; uchar s1,q1; uchar
[单片机]
STC单片机做的电子表<font color='red'>C51</font>程序
Keil C51编写的192*64液晶片驱动程序
/*--------------------------------------------------------------------------------------------------- Keil C51编写的192*64液晶片驱动程序,感谢很多网友提供了参考源程序, 本程序是在网友们提供的程序基础上改写而成,有很多地方得到高手们的耐 心指导,在此深表谢意。这是一个完整的C51源程序,我觉得对一位初学C51 的人来说,提供一个完整的简单程序比较容易上手。 ---------------------------------------------------------------------------------
[单片机]
Keil(MDK-ARM-STM32)系列教程(七)菜单
Ⅰ、写在前面 本文带来关于Keil软件菜单的内容,系列教程中前面讲述的内容都可以通过菜单而找到,只是大部分内容都可以通过快捷按钮或快捷键找到,该文就讲述主菜单里每一个子菜单的内容。 Keil有些菜单在编辑模式和调试模式下可能有所不同,也就是说在不同模式下有些功能或许不能使用,下面内容会将每项菜单在不同模式下的区别提出来。 按照前面文章编辑方式,为了使文章内容精简,过于简单和不常用且过于复杂的内容只简述。 Ⅱ、File文件菜单 File文件菜单在两种模式下略有不同。比较简单,只简述。 1.New:新建文件 2.Open:打开文件 3.Close:关闭文件 4.Save:保存当前文件 5.Save As:文件
[单片机]
<font color='red'>Keil</font>(MDK-ARM-STM32)系列教程(七)菜单
C51 两种对内存空间地址写数据的方法
方法一: unsigned char volatile xdata CH375_CMD_PORT _at_ 0xBDF1; /* CH375命令端口的I/O地址 */ CH375_CMD_PORT = Data; 方法二: *((unsigned char xdata *) 0xBDF1) = Data; 类似:DSP2407的头文件 voatile unsigned int * IMR = (volatile unsigned int *)0x0004; *IMR = value;
[单片机]
【自学51单片机】2 --​keil软件编写程序、烧录程序和点亮LED
1、 外设 LED 介绍 LED小灯 即发光二极管,发光二极管为二极管中的一种,二极管中有阳极和阴极,电流从正极流向负极导通,反向阻断。其中贴片发光二极管,正向导通电压在1.8V — 2.2V之间,靠电流驱动,工作电流在1mA – 20mA之间,1mA – 5 mA之间LED小灯亮度变化明显,5 mA – 20mA之间LED小灯亮度变化不大,20mA以上LED小灯易烧坏。 贴片发光二极管 2、计算限流电阻 LED小灯电路 1. 限流电阻: 电阻的阻值大小变化可以直接改变整条电路的电流大小,称为限流电阻。 2. 该开发板VCC电压为5V,GND接地为0V,贴片LED电压大概在2V左右,限流电阻电压为3V左右,要使LED灯
[单片机]
【自学51单片机】2 --​<font color='red'>keil</font>软件编写程序、烧录程序和点亮LED
初学C51者应注意的地方
这里讲述一些初学者学习C51的一些误区和注意事项。高手的特别应用不包括在内。 1)C忌讳绝对定位。 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned char data x;后,x的地址就是&x, 你只要查看这个参数,就可以在程序中知道具体的地址了。所以俺一看见要使用绝对定位的人,第一印象就是:这大概是个初学者。 2)设置SP的问题。 原因和1差不对,编译器在把所有变量和缓冲区赋予地址后,自动把最后一个字节开始的地方,作为SP的开始位置,所以初学者
[单片机]
51单片机 (5) C51实现单片机串口通信仿真
1、效果图 2、虚拟串口 通过VSPD虚拟串口工具虚拟出两个串口用于通信 VSPD虚拟串口工具下载: http://download.csdn.net/detail/leytton/7565589 3、串口调试 打开两份串口调试工具,第一个打开com1,第二个打开com2,这时在任一串口调试工具发送信息,另一个串口调试工具中能接收到信息 串口调试工具下载: http://download.csdn.net/detail/leytton/7565561 4、Proteus电路设计图 P1串口:属性原件值COMPIM,Physical port为com2,Physical Baud rate为960
[单片机]
51单片机 (5)  <font color='red'>C51</font>实现单片机串口通信仿真
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved