单片机C语言中: 定义 int idata i;和 idata int i 的区别
还有intxdatai和intidatai的区别,,如果定义为intxdatai;那么这个时候的i存储到的地方时外部ROM,这个外部ROM指的是上面地方?是外部外接的EE...
还有 int xdata i 和 int idata i 的区别,,如果定义为int xdata i ; 那么 这个时候的i存储到的地方时外部ROM,这个外部ROM指的是上面地方?是外部外接的EEPROM么,是怎么存储进去的?应为外部EEPROM的连接方式不一样啊,有的是IIC,有的是并口,怎么指定地址的?
展开
4个回答
展开全部
idata和xdata的地址空间范围不同,以51单片机举例,idata一般就是指单片机内部128字节的RAM中,而xdata是指数据存放在外扩的RAM芯片中,导致了地址存取范围和寻址方式完全不同。从汇编语言的角度来说,idata使用MOV指令即可,而xdata必须使用MOVX指令才能寻址。
C51中变量的存储器类型有code,data,idata,xdata,bdata,pdata这几种。
code:定义的变量在程序存储区域,64Kbyte范围,变量为只读。
data:定义的变量在00H~7FH的RAM,128byte范围,变量可读写。
idata:定义的变量在00H~FFH的RAM,256byte范围,变量可读写。
bdata:定义的变量在20H~2FH的RAM,16byte范围,变量可读写。
xdata:定义的变量在扩展的外部存储区,64Kbyte范围,变量可读写。
pdata:分页寻址外部存储区,256byte范围
展开全部
你的说法是不对的,C51中变量的存储器类型有code,data,idata,xdata,bdata,pdata这几种。
code:定义的变量在程序存储区域,64Kbyte范围,变量为只读。
data:定义的变量在00H~7FH的RAM,128byte范围,变量可读写。
idata:定义的变量在00H~FFH的RAM,256byte范围,变量可读写。
bdata:定义的变量在20H~2FH的RAM,16byte范围,变量可读写。
xdata:定义的变量在扩展的外部存储区,64Kbyte范围,变量可读写。
pdata:分页寻址外部存储区,256byte范围
code:定义的变量在程序存储区域,64Kbyte范围,变量为只读。
data:定义的变量在00H~7FH的RAM,128byte范围,变量可读写。
idata:定义的变量在00H~FFH的RAM,256byte范围,变量可读写。
bdata:定义的变量在20H~2FH的RAM,16byte范围,变量可读写。
xdata:定义的变量在扩展的外部存储区,64Kbyte范围,变量可读写。
pdata:分页寻址外部存储区,256byte范围
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
idata:定义的变量在00H~FFH的RAM,256byte范围,变量可读写。
xdata:定义的变量在扩展的外部存储区,64Kbyte范围,变量可读写。int xdata i 和 int idata i 的区别:int xdata i ; i 存储在片外的RAM,片外RAM最大支持64KB,通过数据线D0~D7,地址线A0~A15访问, 不是ROM!!int idata i ; i存储在片内的RAM区域,范围是256B。所以,两个i 跟ROM与EEPOM均无关!!!
xdata:定义的变量在扩展的外部存储区,64Kbyte范围,变量可读写。int xdata i 和 int idata i 的区别:int xdata i ; i 存储在片外的RAM,片外RAM最大支持64KB,通过数据线D0~D7,地址线A0~A15访问, 不是ROM!!int idata i ; i存储在片内的RAM区域,范围是256B。所以,两个i 跟ROM与EEPOM均无关!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
idata和xdata的地址空间范围不同,以51单片机举例,idata一般就是指单片机内部128字节的RAM中,而xdata是指数据存放在外扩的RAM芯片中,导致了地址存取范围和寻址方式完全不同。从汇编语言的角度来说,idata使用MOV指令即可,而xdata必须使用MOVX指令才能寻址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询