① 为什么c52单片机没有扩展也可以用xdata
XDATA是扩展片外数据存储器的,可是所谓的数据存储器只是存储数据,所以不需要扩展。
实际上所有的片外资源都可以当数据存储器用的。打印机、数码管、液晶、步进电机.....只要你让它的引脚按照片外数据存储器的变化规律变化就行了。对单片机来说,不在乎外面接了什么,只要你传递的引脚电平跟它进行片外数据存储器数据传递时要求的规律一样就行。
有些器件用/C/S选通,你可以把/C/S接P2的某一位(假如是第7位)。当这个芯片用作片外数据存储器时,P2的这个引脚低电平时,选通这个芯片。你可以让片外数据存储器的地址为0x7F??。(高八位是p2口输出,只要最高位为0),此时这个芯片就选通,至于如何操作,就要你按照ALE 、P0、p2在传递数据时的电平变化规律设计了。
② STC89C52单片机xdata存储数据使用问题
以标准的8052内核,XDATA只有256Byte,你定义一个时就已经越界了,定义第二个时自然不行,如果要外扩SDATA空间,只能使用增强型的8051单片机,像国产的宏晶等。
如果要把数据定义到FLASH区,不能使用XDATA关键字,好久不用8051了,不太记得关键字了,像Cortex-M系列使用MDK编译器,使用const unsigned char[1000]={0};就能在FLASH区定义常量数组。
③ 关于单片机 xdata data ram sram code的关系
对于51/52单片机,data是内部低128字节的ram,可以省略data符号 idata是内部高128字节的ram, 51没有,52才有,对于stc单片机,片上超过256字节的那部分ram,相当于外部ram,,使用时加xdata 修饰
code是相当于flash,最大是否可以到8k,可以试一下
④ 51单片机定义一个大数组存在idata与xdata中有什么区别
区别如下:1、位置不同 idata定义在高128字节中,xdata定义在外部RAM中,一些单片机内部集成了外部RAM。
2、访问速度不一样 访问idata的速度稍快。
3、最后,可能也是最重要的,二者在初始化上区分很大。
在基本所有编译器下,unsigned char idata num[3]={1,2,3};可以正确编译,在idata区中,可以看到该数组。
但是unsigned char xdata num[3]={1,2,3},在一些编译器下,xdata中,看不到该数组,程序可能不正确运行。
⑤ xdata 是什么
xdata表示vucid这个变量存放在外部存储区中。xdata,为定义在单片机00h-ffh之外的地址内,就是指外部存储空间。
对于这条多项式,更正确的描述是这条多项式附合任何4个限制。限制可以是一点(x,y)、角度或曲率(即半径的倒数 1/R)。角度和曲率的限制通常在曲线的终端,因此称为终端条件。为了样条(spline) 的交接平滑,通常会用到全等的终端条件。
也可以增加如曲率变化等高阶约束。例如,在高速公路立体交叉点cloverleaf的设计中,可以用来理解当汽车绕着交叉点运动时作用在汽车上的力,并依此设定合理的限定时速。
拟合直线或多项式曲线:
在笛卡尔平面上是一条直线,而这条直线的斜率是a。因为任何两点可以决定一条直线,因此总能找到次数不多于1的多项式来串起任何两个x值相异的点。
如果把多次式的次数增加到2。那么只要给定x值各异的3点,总会有次数不多于2的多项式可以把它们串起。
如果把多次式的次数再增加到3。那么只要给定x值各异的4点,总会有次数不多于3的多项式可以把它们串起。
以上内容参考:网络-数据拟合
⑥ 如果在51单片机的外部RAM中定义变量,需要将变量用xdata修饰,请问这个变量必须是静态变量吗
不需要。不论静态动态都可以分配到外部RAM空间的。
⑦ 51单片机定义一个大数组存在idata与xdata中有什么区别
存储的区域不同
idata 是存在 内部RAM 80H--FFH,(对汇编指令来说,不可直接寻址,只能间接寻址)。
xdata 是存在外部RAM ,有些单片机会在芯片内扩展一些RAM,这部分也要用 xdata,因为是同外部RAM共同编址的,汇编指令中都是用 MOVX来寻址。
⑧ xdata是什么意思国民神车
xdata表示vucid这个变量存放在外部存储区中。xdata,为定义在单片机00h-ffh之外的地址内,就是指外部存储空间。
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型。
⑨ 单片机里xbyte和xdata到底什么关系啊
首先说明:由于C语言是字符大小写敏感的,所以没有xbyte,而只有XBATE!
下面说一下,XBATE和xdata的意思。
xdata是C51关键字,说明变量的存储区间,它是指单片机的扩展存储区域(也称外部存储、片外存储,尽管物理存储器也可能在单片机芯片内部),最大64kByte,在汇编语言中,需要通过用16位指针DPTR来访问。
XBATE在ABSACC.H文件中为一个宏定义
#define XBYTE ((unsigned char volatile xdata *) 0)
也就是说,通过直接地址引用该位置的值。例如在xdata的04H单元内存放了一个字符'c',则
XDATA[4]就是引用了04H的内容,也就是'c'。
同样的还有DBYTE,CBYTE,PBYTE等单字节引用data、pdata,code空间的数据,还有XWORD,DWORD,CWORD,PWORD等双字节引用xdata,data,code,pdata空间的数据的,但要注意它们是以2字节为一个计数单元。例如 XWORD[4]是引用xdata空间中08H,09H两个单元构成的unsigned int。
不知道说明清楚了没有?