A. 51单片机能扩展内部内存吗如果能怎么扩展,求大神指导
不能,内部内存不够的话,只能增加外部硬件内存了。还有你用的是什么的,一般同一品牌的单片机都有内存不一样的(比如,SCT80C52就比STC80C51内存大)
B. 89C52单片机的内存8K不够用了怎么办
1.可不可以用24C0*2系列呢?那程序要怎么写了(有关些读一整个函数的),比如我现在有要把温控程序和时钟程序放到52外部,计算器程序放到内部,同时可以使52正常工作,扫描完内部后继续扫描内部。
答:不行.
2.如果用扩展外部存储芯片,那芯片型号是什么,程序又怎么写?
答:可以扩展.典型的并行存储芯片一般都可.电路非常经典.程序设计上做配合,参考Keil的Band模式.
另外,要不直接扩一个足够大的外部程序芯片算了.
3.如果改用大内存的单片机芯片,那程序又不一样了吧?
答:只要单片机还是51系列的,程序基本不会大变动,甚至不用变动.
价格方面不要贵啊,我只会52的C程序的(我是菜鸟),所以要完全兼容的,不需要太大,再有8K或4K就OK。那又怎么办?跪求,献上我的大部分分,搞定了可以追加。内存确实不够了。。。
答:简单啊,直接扩带16k/32K/64k Flash程序空间的51芯片就行了.
C. 51单片机定义数组太大RAM不够用如何扩展
选用内存比较大的单片机或按8080总线扩展内存
不管是片上256B以外的内存还是外扩内存,编程中变量前都要加xdata 修饰
其实你只要用xdata 修饰,编译就能通过,但如果你实际上没有扩展内存,运行时才会出错
D. 单片机问题。 8051有128byte 的内存空间。但是他们说最大能扩充到64kb 请问该如何扩充
有扩从的话你定义这个数组就可以加XDATA,这样编译时自动将数组变量分配到扩充内存中去了。当然,硬件上没扩充你也可以编译,只是下载到单片机执行时会有意想不到的结果而已。
E. 单片机的内存不够用如何来扩展
一个是外倍扩散,参考51单片机,占用不少的I/O口,
二是换大容量的单片机,比如说C8051F020,指令和51完全兼容,有64K的程序ROM.
F. 单片机内存扩展是怎么回事请仔细讲解
最早的标准51单片机8051片内只有128字节RAM,4KROM
如果内存空间不够,特别是ROM不能容下全部程序,就需要扩展外部的ROM,51单片机支持扩展最大64KROM,64KRAM.
扩展外部内存需要用到P2P0口和P3口的一部分及PSEN,ALE等引脚,占用比较多的I/O口。
现在很多的增强型的51单片机已经做到内存足够大,基本上不再需要扩展。
G. 怎么升级电脑内存~如何让电脑运行速度快!
让计算机启动更快的十五招 嫌计算机启动太慢是每个计算机迷的共同心病,让计算机启动更快是大家的共同心愿 ,本人在使用计算机过程中总结了加快计算机启动速度的“十五式”,与您分享。 一、bios的优化设置 在bios设置的首页我们进入“advanced bios features”选项,将光标移到“frist boot device”选项,按“pageup”和“pagedown”进行选择,默认值为“floppy”,这表示启动时系统会先从软驱里读取启动信息,这样做会加长机器的启动时间,减短软驱的寿命。所以我们要选“hdd-0”直接从硬盘启动,这样启动就快上好几秒。 另外,对于bios设置中的“above 1mbmemorytest”建议选“disabled”,对于“quickpoweronselftest”建议选择enabled。在“advanced chipset features”项中的设置对机子的加速影响非常大,请大家多加留意。将“bank 0/1 dram timing”从“8ns/10ns”改为“fast”或“turbo”。“turbo”比“fast”快,但不太稳定,建议选“fast”。如果记忆体质量好可以选“turbo”试试,不稳定可以改回“fast”。对于内存品质好的内存条建议在“sdram cas latency”选项中设置为“2”,这样 可以加快速度哦。较新的主板都支持agp4x,如果你的显卡也支持agp4x,那么就在“agp-4xmode”处 将这项激活,即选为“enabled”,这才会更好的发挥显卡的能力,加快系统启动速度。 二、启动dma方式,提高硬盘速度 采用udma/33、66、100技术的硬盘最高传输速率是33mb/s、66mb/s、100mb/s,从理论上来说是ide硬盘(这里是指pio mode4 模式,其传输率是16.6mb/s)传输速率的3~6倍,但是在windows里面缺省设置中,dma却是被禁用的,所以我们必须将它打开。具体方法是:打开“控制面板→系统→设备管理器”窗口,展开“磁盘驱动器”分支,双击udma硬盘的图标,进入“属性→设置→选项”,在“dma”项前面“√”,然后按确定,关闭所有对话框,重启计算机即可。 三、去掉windows的开机标志。 首先你要打开“开始”→“设置”→“活页夹选项”,从“查看”标签里的“高级设置”列表框中勾选“显示所有文件”。然后打开c盘,找到msdos.sys这个文件,并取消它的“只读”属性,打开它,在“option”段落下,加上一行语句:logo=0,这样windows的开机图案就不会被加载运行,开机时间也可以缩短3秒钟。 四、优化“启动”组。 计算机初学者都爱试用各种软件,用不多久又将其删除,但常常会因为某些莫名其妙的原因,这些软件还会驻留在“启动”项目中(尤其是在使用一些d版软件时),windows启动时就会为此白白浪费许多时间。要解决这个问题,其实很简单,你可以打开“开始”→“运行”,在出现的对话框的“打开”栏中选中输入“msconfig”,然后点击“确定”,就会调出“系统配置实用程序”,点击其中的“启动”标签,将不用加载启动组的程序前面的“√”去掉就可以了。如此一来,至少可以将启动时间缩短10秒。 五、整理、优化注册表。 windows在开机启动后,系统要读取注册表里的相关资料并暂存于ram(内存)中,windows开机的大部分时间,都花费了在这上面。因此,整理、优化注册表显得十分必要。有关注册表的优化,可以使用windows优化大师等软件。以windows优化大师,点击“注册信息清理”→“扫描”,软件就会自动替你清扫注册表中的垃圾,在扫描结束后,会弹出个菜单让你选择是否备份注册表,建议选择备份,备份后再点击“清除”即可。 六、经常维护系统。 如果在系统中安装了太多的游戏、太多的应用软件、太多的旧资料,会让你的计算机运行速度越来越慢,而开机时间也越来越长。因此,最好每隔一段时间,对计算机做一次全面的维护。点击“开始”→“程序”→“附件”→“系统工具”→“维护向导”,然后点击“确定”按钮即可对计算机进行一次全面的维护,这样会使你的计算机保持在最佳状态。对于硬盘最好能每隔2个星期就做一次“磁盘碎片整理”,那样会明显加快程序启动速度的,点击“系统工具”→“磁盘碎片整理程序”即可。注意在整理磁盘碎片时系统所在的盘一定要整理,这样才能真正加快windows的启动顺序。 七、扩大虚拟内存容量。 如果你的硬盘够大,那就请你打开”控制面板“中的“系统”,在“性能”选项中打开“虚拟内存”,选择第二项:用户自己设定虚拟内存设置,指向一个较少用的硬盘,并把最大值和最小值都设定为一个固定值,大小为物理内存的2倍左右。这样,虚拟内存在使用硬盘时,就不用迁就其忽大忽小的差别,而将固定的空间作为虚拟内存,加快存取速度。虚拟内存的设置最好在“磁盘碎片整理”之后进行,这样虚拟内存就分不在一个连续的、无碎片文件的空间上,可以更好的发挥作用。 八、去掉“墙纸”、“屏幕保护”等花哨的设置。 这些设置占用系统资源不说,还严重影响windows的启动顺序。去掉它们的方法是:在桌面空白处点击鼠标右键,在弹出的菜单中选择“属性”,在弹出的对话框中分别选择“背景”和“屏幕保护程序”标签,将“墙纸”和“屏幕保护程序”设置为“无”即可。 九、删除autoexec.bat和config.sys。 系统安装盘根目录下的autoexec.bat和config.sys这两个文件,windows已经不需要 它们了,可以将它们安全删除,这样可以加快windows的启动速度。 十、精简*.ini文件,尤其是system.ini和win.ini的内容。 在system.ini的[boot]和[386enh]小节中加载了许多驱动程序和字体文件,是清除重点。尤其要注意的是,[boot]字段的shell=explorer.exe是木马喜欢的隐蔽加载之所,木马们通常会将该句变为这样:shell=explorer.exe file.exe,注意这里的file.exe就是木马服务端程序!有了木马随后加载运行不仅对系统安全造成了威胁,计算机启动也慢了许多;对win.ini中的“run”及“load”后面加载的、不是每次开机必须运行的程序,可以暂时清除,等以后要用时再点击运行。这样开机时windows调用的相关文件就会减少许多,启动速度自然就会快多了。 十一、关闭磁盘扫描。 用文本编辑器打开msdos.sys,会看到以下内容: [options] bootmulti=1 bootgui=1 autoscan=1 如果不想非正常关机后运行磁盘扫描程序,可以把atuoscan=1改为autoscan=0,这样在非正常关机后计算机的启动速度也会快上一些(因为scandisk没有运行嘛)。 十二、让引导信息停留时间最短。 用文本编辑器打开msdos.sys,设置[options]中的bootdelay为0即可。 十三、减少不必要的字体文件。 字体文件占用系统资源多,引导时很慢,并且占用硬盘空间也不少。因此尽量减少不必要的字体文件。但如果删错了字体文件,搞不好会使windows不正常。因此可以采用 下面这个“偷梁换柱”的方法(可以实现字体文件的安装,而不占用大量的磁盘空间):首先打开字库活页夹(如f:\zk),选中全部truetype字体文件,用鼠标的右键将它们 拖动到c:\windows\fonts活页夹中,在弹出的菜单中选择“在当前位置创建快捷方式”,这样就可以在系统的字体活页夹下建立字库文件的快捷方式了。当需要使用这些字库 文件时,只要插入字库光盘,不用时取出就可以了。 十四、删去多余的dll文件。 在window操作系统的system子目录里有许多的dll文件,这些文件可能被许多文件共享,但有的却没有没有一个文件要使用它,也就是说这些 文件没用了,为了不占用硬盘空间和提高启动运行速度,完全可以将其删除。 十五、“旁门左道”的办法。 如采用系统悬挂,即将当前系统状态在关机后保存,下次开机后,系统会直接进入上次关机前的桌面,用这种方法,开机时间最快可以达到 4-5秒钟,但不是所有的主板bios都支持的,设置起来也稍显麻烦。 打开注册表,展开到hkey_local_machine\software\microsoft\windows\currentversion\shareddlls子键,在右边的有许多dll文件,如果资料为0,则可以判定该dll文件没有程序共享,可以删掉它。 如果按以上的方法做了计算机启动速度仍不够快,除了升级硬件(cpu、内存、硬盘等)外,另一个好办法是重装系统,这样可以明显加快计算机启动速度,不信就试试看。
H. 89c51单片机怎么扩展储存
书上一般都用并行扩展,比如用74HC373或者573,然后连接ROM什么的,而要在工程上,这么用就被人笑话了,典型的本本主义.
一般都采用串行ROM,比如AT24C04什么的,采用I2C总线方式工作,占用的IO口少,效率很高。
当然也可以选用内存比较大的MCU,但这样做,成本上升很快,对于一些中低档产品控制原料成本不利。
I. 单片机自带boot loader 怎么实现无线升级
Boot Loader 是在操作系统内核运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。
⒈ Boot Loader 所支持的 CPU 和嵌入式板
每种不同的 CPU 体系结构都有不同的Boot Loader。有些 Boot Loader 也支持多种体系结构的 CPU,比如U-Boot 就同时支持 ARM 体系结构和MIPS 体系结构。除了依赖于 CPU的体系结构外,Boot Loader 实际上也依赖于具体的嵌入式板级设备的配置。这也就是说,对于两块不同的嵌入式板而言,即使它们是基于同一种 CPU 而构建的,要想让运行在一块板子上的 Boot Loader 程序也能运行在另一块板子上,通常也都需要修改 Boot Loader 的源程序。
⒉ Boot Loader 的安装媒介(Installation Medium)
系统加电或复位后,所有的CPU 通常都从某个由 CPU 制造商预先安排的地址上取指令。比如,基于 ARM7TDMI core 的 CPU 在复位时通常都从地址 0x00000000 取它的第一条指令。而基于CPU 构建的嵌入式系统通常都有某种类型的固态存储设备(比如:ROM、EEPROM 或 FLASH 等)被映射到这个预先安排的地址上。因此在系统加电后,CPU 将首先执行Boot Loader 程序。
⒊ 用来控制 Boot Loader 的设备或机制
主机和目标机之间一般通过串口建立连接,Boot Loader 软件在执行时通常会通过串口来进行输入、输出,比如:输出打印信息到串口,从串口读取用户控制字符等。
⒋ Boot Loader 的启动过程
BootLoader 的启动过程可分为单阶段(Single-Stage)和多阶段(Multi-Stage)两种。通常多阶段的Boot Loader 具有更复杂的功能,更好的可移植性。从固态存储设备上启动的Boot Loader 大多采用两阶段,即启动过程可以分为 stage1和stage2:stage1完成初始化硬件,为stage2准备内存空间,并将stage2复制到内存中,设置堆栈,然后跳转到stage2。
⒌ Boot Loader 的操作模式 (Operation Mode)
大多数Boot Loader都包含两种不同的操作模式。启动加载模式和下载模式。
(1)启动加载(Boot loading)模式:这种模式也称为“自主”模式,也即Boot Loader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是Boot Loader的正常工作模式。
(2)下载(Down loading)模式:在这种模式下目标机上的Boot Loader将通过串口连接或网络连接等通信手段从主机下载文件。从主机下载的文件通常首先被Boot Loader保存到目标机的RAM中然后再被Boot Loader写到目标机上的固态存储设备中。
⒍ Boot Loader 与主机之间进行文件传输所用的通信设备及协议
分为两种情况。一种是目标机使用串口与主机相连。这时的传输协议通常是xmodem/ymodem/zmodem中的一种。第二种可以用网络连接的方式传输文件,这时使用的协议多为tftp。
J. 单片机RAM如何扩展
1、我用89s52有256的RAM,但也只能够用一半。个人猜测可能有点像电脑上的进程那样,每个进程都有4G的虚拟内存,但只有2G是用户空间,还有2G是系统空间。可能这个也一样。因为系统也要帮你做一些事,你都用完了RAM,系统怎么帮你做事呀?
2、这个没用过,不懂。
3、这个最后再讲。
4、5、像上面讲的一样,把你要显示的东西定义在ROM上面,
而不是定义在RAM上,定义的时候用个code 关键字就得了。
就拿89S52来说ROM有8K 而RAM 才256.就样的话还有必要扩展吗?数码管,点阵的显示代码定义在ROM上,用的时候和RAM上的一样,但要注意一点,定义的时候必须初始化,因为在ROM上定义的,你对他赋值是错误的,你可以写个小程序试下。
最后说下3、强烈建议楼主再好好看看书。
在子程序中定义的变量,可以理解为一种临时变量吧。
因为出了子程序它的生命周期就结束了,回到主函数是不能
再用了的。子函数里面的变量,和形参,是函数被调用时才对他们分配内存的。调用结束后它们的空间就被释放了,到下次调用时再分配。(申明为静态变量和外部变量除外,他们的生命周期是和主函数一样的)
你最好搞明白各种变量的在哪分配,生命周期是多长。不然你引用一个被销毁了的东西当然就会出错了。
还有个函数形参和实参之间的关系的。以前答的。你可以去看下,希望对你有帮助。
http://..com/question/97142601.html