51单片机程序存储器扩展的一些问题

来源:百度知道 编辑:UC知道 时间:2024/06/10 17:10:48
我在AT89S51上扩展了AT28C64程序存储器之后之后 就将单片机系统的EA引脚接了低电平 ,我通过编程器将用汇编写的跑马灯程序写入AT28C64中 上电系统之后跑马灯能跑起来,但是我烧入了C语言写的其它的程序到AT28C64之后(注:有自定义的变量),我也将EA接地,系统却没有出现我想要的效果,是不是EA接地之后,单片机片内的数据存储器就没法用了?,是不是只能扩展数据存储器了? 哪位大哥、大姐姐帮解决一下疑惑。小弟弟急着哦。
其实我现在做的是一个样板,目的就是想熟悉程序存储器的扩展,熟悉之后我要将外部程序存储器扩展到32K,52我用过 它的容量我也知道,

RAM还是RAM,当然有起作用了,如果RAM不够就要扩展,51RAM只有128B,有时确实不够用,也可以用52、53的单片机,看看程序有没写错了。

有点奇怪,为什么要用AT28C64呢,可以用AT89S52内部就有8KB的FLASH,而且两种价格相当,我这52跟51是一样的。

还是建议你不要用扩展的ROM,用来玩还可以,用来做设计不实用,占用太多IO口不说,安全性不高,你也不想自己苦写的程序被人盗走吧。
你可以提高编程技巧,使程序简捷,减少占用空间。或改用其它内带大容量ROM的芯片。
51的ROM确实小,不过我还没写出超出8K的(汇编),用AVR的吧如:ATmega32吧,内部就有32K的FLASH,2KBRAM,1KBEEPROM跟51一样40个脚,速度大约是51的8倍。ATmega128有128K的FLASH(不过管脚有点多),跟AT89S51是同一个厂家.

片外rom可能跟片内ROM的地址空间重复.使其不能正常工作.
另外要确定"其他程序"必须正确.
EA接地跟内部RAM无关,可以继续放心使用.

其实是这样的,ea接高就先用片内的存储器,接低先用片外扩展存储器,应该是这样的,可以找个数据手册看看,一般不用外部扩展的就够了