使用keil开发51单片机下位机程序,希望使用dbata型全局变量。首先了解一下51的片内RAM.

51单片机中,片内RAM分为data,bdata,和idata,

data指前面0x00-0x7f 128个字节。

idata指的是0-0xFF 这256个字节存储区。前128个字节同data完全相同。

bdata是片类可位寻址的存储区,地址位0x20-0x2f 的16字节存储区,和可位寻址的特殊功能寄存器。

不同于一般的全局变量,用bdata申明的变量在头文件中不能添加extern关键字,否则编译器提示my.h(6): error C142: 't1': invalid base address。

为此写了一个测试,并设置断点观察变量的变化。

my.h

#ifndef __my_h__
#define __my_h__
#include <reg52.h>
char bdata t1 ;//_at_ 0x20;
sbit t2=P1^0;
sbit t1_7=t1^7;
extern void test();
#endif

my.c

#include "my.h"
//char bdata t1 _at_ 0x20;
void test()
{t1_7=0;
}

test.c

#include <reg52.h>
#include "my.h"
main()
{while(1){t2=~t2;t1_7=~t1_7;test();//在此设置断点}
}

调试时候打开,view/watch windows 查看t1_7的变化。

在keil中使用bdata型可位寻址全局变量相关推荐

  1. c语言中整形精确到后面几位,C语言中普通整型变数在记忆体中占几个位元组

    C语言中普通整型变数在记忆体中占几个位元组以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中普通整型变数在记忆体中 ...

  2. keil中c语言bit怎么用,关于keil多c文件工程中bit变量的声明定义问题

    为了这个问题,浪费好长时间,挤进了脑汁,伤透了脑筋,曾一度有个现在看来应该是挺好笑的想法--怀疑keil不向标准c一样,不能很好的支持多c文件工程,在多c文件共享变量时,尚无法很好处理. 不过就在要点 ...

  3. CC++中的整型常识

    很多人对C/C++中的整型不太了解,导致代码移植的时候出现问题,本人在此总结一下,若有描述错误,请务必指出,谢谢! a. C/C++对整型长度的规定是为了执行效率,将int定义为机器字长可以取得最大的 ...

  4. 在Power BI Desktop中实施星型架构

    In this article, you will see how to implement a star schema in Power BI. Microsoft Power BI is a bu ...

  5. c语言编程中的或逻辑的符号 符号如何输入,C语言中逻辑运算符(,||,!)和位运算符号(,|,^)...

    1. C语言中逻辑运算符(&&,||,!)和位运算符号(&,|,^)的区别 在C语言中,编程者经常混淆两组运算符:(&&,||,!)和(&,|,^).第 ...

  6. 在KEIL中生成bin文件的方法

    生成hex文件 KEIL中默认生成的是axf文件. 如果想要生成hex文件,则只需要简单地勾一下: 生成bin文件 要生成bin文件,则需要用到fromelf. Keil自带了一个小工具,可以通过执行 ...

  7. c51语言定义位变量,C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 。...

    C51中定义一个可位寻址的变量LED访问P1口访问P1.1引脚的方法是 . 更多相关问题 铸造全冠颈部肩台通常为A.0.2-0.4mmB.0.03mmC.0.3mmD.0.5-0.8mmE.1.0mm ...

  8. C语言整型量包括哪些,C语言中的整型量

    整型量 整型量包括整型常量.整型变量.整型常量就是整常数.在C语言中,使用的整常数有八进制.十六进制和十进制三种. 整型常量 1.八进制整常数八进制整常数必须以0开头,即以0作为八进制数的前缀.数码取 ...

  9. 隐式类型转换——C语言中的整型提升

    整型提升概念: C语言中的整型算术运算总是至少以缺省整型类型的精度来进行的. 为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升. 整型提升的意义 三点说明 ...

最新文章

  1. Android应用系列:完美运行GIF格式的ImageView(附源码)
  2. 宝塔控制面板创建ftp后链接不上的解决方法
  3. java中let_java Signleton模式详解及示例代码
  4. 一组匹配中国大陆手机号码的正则表达式
  5. (论坛答疑点滴)DataGrid的EditCommandColumn如何使用图片作为按钮?
  6. 【BZOJ】1649: [Usaco2006 Dec]Cow Roller Coaster(dp)
  7. [vue] 如果将axios异步请求同步化处理?
  8. oracle 12c缩容磁盘组,oracle 表收缩
  9. 第 1 节:前端面试指南 — 简历篇
  10. 企业网络之间资源互访
  11. 数组指定位置添加元素_访问数组的任意位置元素的性能真的一样?
  12. 约瑟夫环-单向循环链表
  13. 拳皇97c语言编码,拳皇97金手指代码
  14. vue打包多个html,vue多页面应用打包配置
  15. python利用range生成包含1-10的列表_Python列表干货:创建数字列表:range()函数用法...
  16. WD_考研计算机C语言基础002【统考中的C语言】
  17. 打桥位程序lisp_【下载】借花献佛,AutoLISP程序的安装包制作,感谢秋枫大侠的程序...
  18. 行业研究报告-全球与中国PH/ORP变送器市场现状及未来发展趋势
  19. 张一鸣:不甘平庸的年轻人 全都有同一个特质
  20. 深度分享:中国老年消费市场最新趋势/机会是什么?六位老年行业创新创业实践者精彩观点!

热门文章

  1. 使用D触发器完成带有异步清零clrn和同步使能wen的8位寄存器
  2. android recovery分区内刷镜像,Android手机Recovery模式取证方法研究.pdf
  3. laravel 实现微博第三方登陆
  4. 这是你事业做不大的原因
  5. 掌门教育:品质为本,全面打造高质量教学核心驱动力
  6. k8s 亲和、反亲和、污点、容忍
  7. 中国象棋对局软件设计(一)
  8. eclipse的jdt简介
  9. 身份证照片打印出复印件效果
  10. Python基本数据类型大集合