如图所示
ram512,不过变量较多,请教别人说有1k扩展ram,我datasheet里面没看到啊,就看到如图所示的1k的EEPROM,
并且他要我定义要用char xdata flag _at_0x0000;的形式
1.下载程序的时候不要禁止什么,我搞不清楚了?
2.EEPROM可以随意做扩展RAM用么?EEPROM不是rom嘛,怎么做ram用了啊?
3.Flash程序存储器8K就是当ROM用?flash不是可以擦除还是什么的嘛,我以为可以做ram用呢,全部混掉了,请教高手指导下,麻烦能一个一个回答,我好做笔记整理
满意回答追分
在STC89C52
非常感谢你,我说下我的理解:
在Memory Model下设置compact,程序中就可以直接char i;默认的就是用的xram?
不设置Memory Model,默认small,不过我在程序里面用pdata,编译后,也会使用xram?
Program Size: data=159.1 xdata=0 code=5628这个data=159.1是不是编译时候检测到的变量定义使用ram情况,不包含程序处理中堆栈和局部变量的使用?
我要使用xram用idata还是pdata?
data不够我要存储数组怎么用?
1、在Memory Model下设置compact,程序中就可以直接char i;默认的就是用的xram?
对。就是在外部RAM,不过应该是pdata,只是访问方式和xdata不一样,这点可以不用关心。
2、不设置Memory Model,默认small,不过我在程序里面用pdata,编译后,也会使用xram?
没错!
3、Program Size: data=159.1 xdata=0 code=5628这个data=159.1是不是编译时候检测到的变量定义使用ram情况,不包含程序处理中堆栈和局部变量的使用?
局部变量肯定包含在里面,堆栈我说不大好,没有在如此的极限状态下用过。不过如果编译能通过说明堆栈、局部变量等都够用。所以在建立工程前应选择好芯片。
4、我要使用xram用idata还是pdata?
用xram应使用pdata或xdata。idata和data都属于内部RAM,只是idata采用的是间接访问模式,data是直接访问模式,效率上后者更高。
5、data不够我要存储数组怎么用
编译时可以选择small模式,然后声明数组是用比如:uchar xdata xx[100],就行了,这样的话其它的变量都会使用内部RAM,只有数组由于声明了xdata会放到外部RAM中。其实这也是常规做法,只有内部变量不够的时候才会选用中模式或大模式,然后相提高代码效率时,再将那些局部变量什么的去声明为data、idata等,倒过来做。如果嫌麻烦直接使用大模式也行。
就STC89c52,定义要用char xdata flag _at_0x0000;的形式说
追答那你只能在外部扩展SRAM了,比如6116、6264、62256或者能掉电保存数据的HK1235.
追问查到说STC89C52资源如下:
RAM(MOV访问):256B
XRAM(MOVX访问):256B
ROM:8KB
那应该就是512了
没办法啊,只能外部扩展SRAM了。
追问在data紧张的情况下,我要是还想存大的数组,shuzu[30],应该怎么弄啊 ,是不是用compact模式然后用idata shuzu[30]?,听人说idata占用过多的话会导致堆栈溢出的?
追答既然有256字节的XRAM,那就用xdata关键字把这些变量定义到XRAM中,那就避免RAM不够用的问题了。
STC89C52,51增强型单片机内部资源问题
1、51单片机的C语言中有个需要关注的概念就是变量或数据的存储模式(PC机是否有类似的情况我不了解)。在C51中的存储模式是data、bdata、idata、pdata、xdata、code共6种:data、bdata、idata:就是说变量或数据位于单片机的内部RAM中(ST89C52有256字节),访问速度最快。pdata、xdata:就是说变量或...
求stc89c52详细介绍。说说它与51的区别,以及stc系列单片机的...
STC89C52是一种采用STC生产的增强型Flash型单片机。其内部集成Flash存储器,允许用户在不需要额外编程器的情况下,通过简单的操作直接对芯片进行程序烧录。这种单片机具有高性能、低功耗的特点,适用于各种嵌入式系统的开发和应用。二、STC89C52与51系列单片机的区别 1. 性能提升:相对于传统的51系列单片机,ST...
stc89c52和51单片机的区别有哪些
STC89C52RC是宏晶公司的增强型MCS-51单片机,与Atmel公司的AT89C52相比,有以下优点:支持STC的2线制下载方式,下载程序更方便 支持6T模式(在6T模式下,6个时钟周期就是一个机器周期)片内集成了4kB容量的E²PROM 带有P4口,具有更多的I\/O 程序存储器拥有更多的擦写寿命(STC标称可以擦写10万次...
stc89c52和51单片机有什么不同呢?
1、电压不同,STC89C51电压为4.5V-5.5V,STC89LE52的电压为2.0V-3.8V;2、内部程序存储器不同,一个是FLASH,可以ISP,一个是EPROM,只能通过编程器烧录STC89c51\/52的存储器不一样,51有4K,52有8K;3、52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型;...
stc89c51和stc89c52有什么区别?
FLASH PERAM,而。AT89C52 的内部FLASH PERAM 增加1倍,达到8K。3、52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型;4、中断源增加:AT89C52 除了具备 AT89C51 的定时器\/计数器 T0 和定时器\/计数器 T1,还额外增加了一个定时器\/计数器 T2。单机片:...
STC89c52与51系列的单片机相比,有点是什么?尽量具体。
第一,ROM 89c51是4K,但89c52是8K。第二,RAM89c51是128字节,但89c52是256字节 第三,c51只有2个定时器,c52有3个定时器,多了个T2定时器,相应的增加了定时器2中断。 、增加了有关定时器2的特殊功能寄存器T2MOD、T2CON、RCAP2L、RCAP2H、TH2、TL2等,还有诸如T2、ET2等控制位 其它方面均与5...
51单片机跟89c51的区别有哪些
1、内部FLASH容量不同 AT89C51和AT89C52是单片机的两种型号,AT89C52是AT89C51的各个方面的升级版,AT89C51 有 4K 字节的内部FLASH PERAM,而AT89C52 的内部FLASH PERAM 相比AT89C51 增加了1倍,其容量达到8K。2、随机存取数据存储器(RAM)不同 AT89C51 有128 字节的内部 RAM,AT89C52 的内部 RAM 扩展为 ...
STC89C52 单片机的内部程序存储器与数据存储器容量各为多少?
STC89C52 单片机的内部程序存储器为8K字节;内部数据存储器容量为512字节。
AT89C51\/52与STC89C51\/52的单片机有什么区别,
1、AT89C51\/52:采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。2、STC89C51\/52:使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统的51单片机不具备的功能。三、特点不同 1、AT89C51\/52:4k 字节Flash 闪速存储器,256字节片内数据存储器,32 个I\/O ...
stc89c52和51单片机有什么区别?
提供了51单片机所不具备的功能。在硬件特性上,AT89C51\/52的特点包括4K字节Flash,256字节片内数据存储器,32个I\/O口线等,以及串行通信口和内置振荡器。而STC89C52更进一步,拥有8K字节程序存储空间、512字节数据存储空间,以及内建的4K字节EEPROM存储空间,这些特性为其提供了更多的存储和扩展选项。