PIC关于RAM空间变量的绝对定位及分配

发布者:shmilyde最新更新时间:2017-11-25 来源: eefocus关键字:PIC  RAM空间  变量  绝对定位  分配 手机看文章 扫描二维码
随时随地手机看文章

在目前的HI-TECH PICC中,BANK0.....BANK3这样的声明在默认情况下已经不起作用,编译器会根据RAM的使用情况尽量把变量全部安排在BANK0,我看了半天的用户手册测试也没有找到绝对定位的方法,相反,使用全局变量  unsigned long int A @ 0x70 这样的绝对定位却是非常有效的。以前的C教材中警告说这样的绝对定位编译器有可能不保留空间,转而会将其空间分配给其他变量,但目前还没发现编译器这样做,相反,如果0X70以前被别的变量占用,将0X70绝对定位后,原来占用该地址的变量被分配到其他空间。
这种绝对定位适用于多字节变量、数组、结构等多种形式,所定义的地址为数组或结构的第一字节地址
例如在下列声明中:
union CHUFA
{
struct
{
  unsigned char BEICHU_1;
  unsigned char BEICHU_2;
  unsigned char BEICHU_3;
  unsigned char BEICHU_4;
}BEI_CHU;
unsigned long int BEICHU2;

}BEICHU @ 0X70;
0x70为结构体成员 unsigned char BEICHU_1的地址,结构体下面的其他成员的地址依次递增,0X70也为联合体中的成员 unsigned long int BEICHU2 的首地址,同时也是整个联合体 BEICHU的首地址,整个联合体占用0X70--0X73 共4个字节RAM空间,

关键字:PIC  RAM空间  变量  绝对定位  分配 引用地址:PIC关于RAM空间变量的绝对定位及分配

上一篇:PIC C语言编程_PICC中变量修饰关键词
下一篇:PIC单片机用指针调用IO口

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

PIC单片机软件平台----MPLAB IDE和MPLAB X IDE
这里主要是针对PIC18单片机开发平台,当然对于16位或32位单片机的开发平台是一样的,只是编译器不一样。PIC18单片机有两个开发平台,一个是MPLAB IDE,对应的编译器为MPLAB C Compiler for PIC18 MCUs.exe;一个是MPLAB X IDE,对应的编译器为xc8-v2.00-full-install-windows-installer.exe。 下载链接如下: https://download.csdn.net/download/euxnijuoh/10889265
[单片机]
PIC16F690 最简单的实例
RA4 RA5 接SW2 SW1按键 RB7接LED delay.c #include delay.h void DelayMs(unsigned char cnt) { #if XTAL_FREQ = 2MHZ do { DelayUs(996); } while(--cnt); #endif #if XTAL_FREQ 2MHZ unsigned char i; do { i = 4; do { DelayUs(250); } while(--i); asm( clrwdt ); } while(--cnt);
[单片机]
PIC单片机I-O口单线通讯的实现
太阳能热水器因具有节能环保、使用费用低廉等优点正快速进入千家万户,与太阳能热水器配套的水温水位控制器十分方便用户的使用,产品市场前景好,被受到广泛重视和研究。但当前使用的水温水位控制器仍存在着许多缺馅,如按键功能设计不合理,需要复用按键,用户操作离不开说明书,操作仪表复杂,给用户带来了许多麻烦;选用的水温传感器参数和测量电路不合理,容易因热击穿损坏;水位传感 器容易结水垢或开裂故障多,使用寿命短,维修成本高。迄今为止,国内外还没有质量过关的水温水位控制仪。针对上述问题,为使控制器的功能更全面实用,操作更简便、直观,提高传感器的可靠性,降低维修成本,笔者结合PIC单片机和NTC热敏传感器技术,设计了一个适用于落水式太阳能热水器的
[单片机]
<font color='red'>PIC</font>单片机I-O口单线通讯的实现
PIC单片机虚拟串行通信设计
1.实例目的: 本实例完全建立在计算机软件的基础上,利用PROTEUS软件构建一个单片机系统,利用VB编写一个计算机控制软件和单片机系统串行通信,计算机上的控制软件可以发送一个值在0——999之间的数,在单片机系统上显示出来,单片机系统上也可输入一个相同值域的数并在计算机控制软件上显示出来。本实例主要是为了展示虚拟串行通信的仿真。 2.系统配置 本实例虽然简单,但是要想看到想要的仿真结果,建立虚拟的串口连接是必不可少的。要想仿真串行通信,必须要把单片机系统上的串行口与计算机上的串行口连接,这样他们之间才能传输数据,但由于是仿真,实际没有相连接,所以需要创建一对虚拟串行口并使他们相连,这里我使用的是这个软件Virtual Ser
[单片机]
<font color='red'>PIC</font>单片机虚拟串行通信设计
PICC环境写PIC单片机程序的探讨
简介:一般C语言产生的代码是比较繁琐的,所以要写出高质量、实用的C语言程序,就必须对单片机体系结构和硬件资源作详尽的了解. 目前,Microchip公司生产的PIC系列单片机以其低成本、低功耗、高性能、开发速度快且一次性用户可编程等优点迅速占领了国内市场,成为国内销售量最大的单片机.但国内介绍其C语言开发工具的书籍和文章却比较少,在开发过程中给广大程序员带来了许多困难和不便. Microchip公司没有针对中低档系列PIC单片机的C语言编译器,但很多专业的第三方公司 提供众多支持PIC单片机的C语言编译器,常见的有Hitech、CCS、IAR以及Bytecraft等公司.Hitech公司的PICC编译器稳定可靠,编译生
[单片机]
PIC单片机入门之闪灯程序
今天首先发一个关于PIC单片机的入门的一些感悟。PIC单片机有很丰富的寄存器,我所学习的PIC16f886单片机有28个引脚,却又很多I/O口,由于microchip的PIC芯片是相当比较稳定安全的芯片,所以他对端口输入输出方式的控制可谓是很细心,刚开始学习单片机得时候对于端口的配置走了很多弯路,下面做以下总结: 首先要配置输入还是输出方式(TRISA、TRISB等等),其次要配置模拟模式还是数字模式(ANSEL、ANSELH等),如果配置不正确,是读不到想要的值的,我想对于入门主要就是配置上的问题吧! 对于初学PIC,往往先做一个闪灯实验来验证器件已经开始工作,下面是我做的闪灯程序,用汇编编写,不是很规范,毕竟编写的时候也是初学
[单片机]
以单片机PIC16LF873A为核心实现便携式磁记忆检测仪的设计
工程中常采用无损检测(Nondestructive Testing简写为NDT)的方法检测设备与构件的缺陷,传统的NDT方法有超声、涡流、磁粉、着色等。但这些方法只能检测已经发展成形的缺陷,对于因应力集中而引发的疲劳断裂的早期诊断问题则无能为力。另一方面,传统的NDT方法具有设备体积大、劳动强度大、操作复杂、对人员素质要求高等缺点,且每一种方法都有各自的局限性。为了及时准确的对早期损伤特别是尚未成形的隐性不连续性变化进行评价,就必须开发出新的无损检测方法。 1997年在美国旧金山举行的第50届国际焊接学术会议上,俄罗斯科学家提出被誉为21世纪的NDT新技术--金属磁记忆(MMM)技术[3].MMM检测技术可以准确探测出被测对象
[单片机]
以单片机<font color='red'>PIC</font>16LF873A为核心实现便携式磁记忆检测仪的设计
基于PIC16F877A单片机的高分辨率频率计的设计
  1 引言   随着电子技术的迅速发展,以单片机为控制核心的控制器件,已经全面渗透到测试仪器和计量检定的各个方面。同时,频率计作为一种常用工具,在工程技术和无线电测量、计量等领域的应用十分广泛。本文介绍了一种以PIC16F87X系列单片机为控制器的高分辨率频率计的实现方法。   该方法设计的频率计主要用来测量脉冲频率。它采用LCD图形液晶显示,清晰度高,可视范围广,可外接晶体频率源,具有测量速度快、分辨率高的优点。   2 设计原理   PIC16F877A单片机内部集成有捕捉/比较/脉宽调制PWM (CCP)模块。当CCP工作在捕捉(capture)方式时,可捕捉外部输入脉冲的上升沿或下降沿,并产生相应的中断。  
[单片机]
基于<font color='red'>PIC</font>16F877A单片机的高分辨率频率计的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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