数组前不加“code”或“data”,则默认将数组存放在程序存储器中;

code 指定数据是存储在代码区,数据是在编程的时候跟代码一起写入代码存储器,运行过程中不能改变;

xdata 指定数据是存储在外部数据存储器了;

data 指定数据存储在内部低128字节数据存储器里,如果变量不指定存储位置,默认就是data型,这部分存储器寻址速度最快;

idata 指定数据存储在内部低256字节数据存储器里,但51只有128字节内部RAM,52才有256字节;

pdata 指定数据存储在外部低256字节数据存储器里,这时候寻址用8位寄存器R0和R1,而不用16位的DPTR,寻址速度比xdata快。

单片机C语言unsigned char code table[] code 是什么作用?

code的作用是告诉单片机,我定义的数据要放在ROM(程序存储区)里面,写入后就不能再更改,其实是相当与汇编里面的寻址MOVC(好像是), 因为C语言中没办法详细描述存入的是ROM还是RAM(寄存器),所以在软件中添加了这一个语句起到代替汇编指令的作用,对应的还有data是存入RAM 的意思。

程序可以简单的分为code(程序)区,和data (数据)区,code区在运行的时候是不可以更改的,data区放全局变量和临时变量,是要不断的改变的,cpu从code区读取指令,对data区的数 据进行运算处理,因此code区存储在什么介质上并不重要,像以前的计算机程序存储在卡片上,code区也可以放在rom里面,也可以放在ram里面,也 可以放在flash里面(但是运行速度要慢很多,主要读flash比读ram要费时间),因此一般的做法是要将程序放到flash里面,然后load到 ram里面运行的;DATA区就没有什么选择了,肯定要放在RAM里面,放到rom里面改动不了。

附:

c51中的存储类型

code :程序存储区(64KB),

data :可直接寻址的内部数据存储区(128B)

idata:不可直接寻址的内部数据存储区(256B)

bdata:可位寻址内部数据存储区(16B)

xdata:外部数据存储区(64KB)

pdata:分页的外部数据存储区

data ---> 可寻址片内ram

bdata ---> 可位寻址的片内ram

idata ---> 可寻址片内ram,允许访问全部内部ram

pdata ---> 分页寻址片外ram (MOVX @R0) (256 BYTE/页)

xdata ---> 可寻址片外ram (64k 地址范围)

code ---> 程序存储区 (64k 地址范围),对应MOVC @DPTR

const 表示本数组不可修改 数组为常量数组 code 表示本数组生成后是在ROM区中 同样不可修改 idata 表示数组生成后在在0x00~0xff的256个RAM中,使用指针寻址具体的参考下面 data,bdata,idata,pdata,xdata,code存储类型与存储区

bit是在内部数据存储空间中 20H .. 2FH 区域中一个位的地址,或者 8051 位可寻址 SFR 的一个位地址。

code是在 0000H—0FFFFH 之间的一个代码地址。

data是在 0—127 之间的一个数据存储器地址,或者在 128—255 范围内的一个特殊功能寄存器(SFR)地址。

idata是 0—255 范围内的一个 idata 存储器地址。

xdata 是 0—65535 范围内的一个 xdata 存储器地址。

51单片机C语言code定义,51单片机数组的定义方法(code与data的作用)相关推荐

  1. 51单片机c语言试题及答案,单片机考试复习题及答案

    <单片机考试复习题及答案>由会员分享,可在线阅读,更多相关<单片机考试复习题及答案(14页珍藏版)>请在人人文库网上搜索. 1.选择题1.主频为12MHz的单片机他的机器周期为 ...

  2. 51单片机c语言试题及答案,单片机C语言期末考试题..

    单片机C语言期末考试题..,单片机的c语言应用程序设计,单片机c语言编程,51单片机c语言程序100例,单片机c语言,单片机c语言编程思想,c语言开发单片机,c语言单片机程序,新概念51单片机c语言教 ...

  3. 单片机c语言屏蔽第四位,单片机C语言学习

    单片机C语言学习(推荐*精简实用) 关键词: 单片机 C语言 单片机C语言之一_______________________________预处理 一>宏定义: 1.不带参数: #define ...

  4. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

  5. java数组定义便利,java数组的定义(菜鸟教程)

    数组 数组有两种定义形式. 数组的定义: 这一种形式使用的频率高,推荐使用. int[] ints={1,2,3}; 第二种形式(容易使人混淆因为在开发中可能把这个看成一个数组类型而不是变量名) in ...

  6. 51单片机c语言编程100,51单片机C语言编程100例.doc

    51单片机C语言编程100例.doc 目 录实例3用单片机控制第一个灯亮3实例4用单片机控制一个灯闪烁认识单片机的工作频率3实例5将 P1口状态分别送入P0.P2.P3口认识I/O口的引脚功能4实例6 ...

  7. 51单片机c语言内存使用,51单片机C语言编程之内存优化

    原标题:51单片机C语言编程之内存优化 最常见的是以下两种 ① 超过变量128后必须使用compact模式编译 实际的情况是只要内存占用量不超过 256.0 就可以用 small 模式编译 ② 128 ...

  8. 单片机C语言DA转换,51单片机PCF8591的DA转换程序详解[含HL-1与HJ-c52 DA代码AD/DA原理图](可直接复......

    以下是补充(能想到的范围有限有没想到的还请谅解) DA工作原理 基于PCF8591芯片 DA是什么? n DA指数模转换(Digital to Analog),顾名思义,就是把数字信号转换成模拟信号. ...

  9. 51单片机c语言工作手册,51单片机C语言编程手册

    51单片机C语言编程手册 1 第一章 介绍 这是一本关于Intel 80C51 以及广大的51 系列单片机的书这本书介绍给读者一些 新的技术使你的8051 工程和开发过程变得简单请注意这本书的目的可不 ...

  10. 51单片机c语言复位程序,51单片机如何实现软件复位系统(C语言),谢谢

    满意答案 waterMM 推荐于 2017.09.02 采纳率:57%    等级:13 已帮助:6010人 单片机实现软件复位(软复位)的方法及讨论 单片机实现软件复位(软复位)的方法及讨论 (天堂 ...

最新文章

  1. linux shell数组深入学习理解
  2. Visual.Assist.X.V10.7.1949的汉化破解补丁
  3. ubunt16.04 安装3090显卡驱动 cuda cudnn pytorch
  4. 命令窗 创建vue 项目过程
  5. Java线程专栏文章汇总(转)
  6. 分治法经典问题-逆序对个数
  7. Viewflipper
  8. 正则表达式[\w]+,\w+,[\w+] 三者区别? [],[ABC]+,[\w./-]+ 表达什么?
  9. termux python 打开摄像头_python+opencv 电脑调用手机的摄像头
  10. 基于OBD系统的量产车评估测试(PVE)
  11. 西安市建筑物矢量数据(Shp格式+带高度)
  12. 九龙证券|通信巨头火了!地产板块异动拉升,龙头获主力资金追捧
  13. openssl自签名ca证书,以及签发服务端/客户端证书
  14. SV function
  15. HTML Parser Jsoup - 网页抓取百度百科信息的例子
  16. PPC E500内核寄存器
  17. 解决size mismatch for embedding.embed_dict.userid.weight
  18. axure读取服务器文件,Axure教程|云盘案例原型:文件管理
  19. 计算机专业调研报告ppt,武侯区四年级调研报告 电脑基础知识 it计算机 专业资料.ppt...
  20. 基于Android的航班查询系统的设计与实现

热门文章

  1. SVN创建分支 并且把分支代码合并到主干
  2. ffplay 播放 USB camera
  3. python挖矿木马_kworkerds 挖矿木马简单分析及清理
  4. oracle存档模式,oracle归档模式管理
  5. Ansible、Ansible Tower 下载安装
  6. IOS多线程开发详解
  7. 双门限法语音端点检测(Python实现)
  8. playwright--登录识别验证码实例
  9. 旋转机械 | 基于ANSYS WB平台的滑动轴承分析工具(一)
  10. 在 Windows 上卸载 Creative Cloud 桌面应用程序