单片机EEPROM问题

来源:百度知道 编辑:UC知道 时间:2024/09/23 10:58:01
假设我现在用一块单片机利用EEPROM进行程序存储器扩展。请问我怎样才能把单片机程序写进EEPROM中去?
编程过程是不是类似向片内rom一样编程?如果单片机同时拥有片内rom,和EEPROM,是分开编程还是整体编程,体统自动分配空间?

理论上是统一地址,编程然后烧录,51片外会有4K与片内重合,运行时由EA选择.实际一般会选容量合适的单片机进行编程开发.

你要是用C语言就建议买一个高档单片机。51系列低档还是汇编语言编程的话,一版64k的地方绝对够用,你没编过所以觉得需要扩展,但如果你编带运算的尤其是浮点运算乘法的,可能就不够用了。你把浮点预算程序写到rom里,之后调用浮点预算子程序首地址,或者你直接接上2个单片机一个转门做浮点运算,之后往非易存储器里写之后,另外一个单片机从里面读数就行。现在已经有直接带负电运算的单片机,你也可以买来用。我以前用过51系列低档单片机编程,现在全用c语言高档单片机编,所以基本没用不够用的情况。你要是8m晶振活11.0592晶振,我40m晶振都能补上c执行率低的问题。长久解决问题建议用C,
你要急着做电子大赛之类的就用两块单片机通信也行,比如有运算了你就让p3.0置1,并且加个上拉电阻,之后把你要算的数写到一个中间锁存器里,之后第二片单片机设一个循环djnz 或cjne 只要有晕算信息就开始读数,运算。之后把结果写入中间存储。之后set p2.几告诉已经运算结束。第一片读数。这样就解决问题了。

用烧写器,不过现在都不流行这样做了,一般的单片机容量都够大了,而且也很便宜

扩展,最大也就是64K。
现在就有片内带有64K ROM的单片机,选对型号就不用扩展。

看时序图,一般资料上都写的很详细

我给你一个程序吧,保管好用的
#include<reg52.h>
#define uchar unsigned char
sbit scl=P1^0;
sbit sda=P1^1;
uchar a;
void delay()
{
;;
}

void start() //开始信号
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();
}

void stop() //停止信号