STC89C52单片机内部EEPROM程序

发布者:hylh2008最新更新时间:2020-07-18 来源: 51hei关键字:STC89C52  单片机  内部EEPROM 手机看文章 扫描二维码
随时随地手机看文章

实验外部存储期间不方便 看了内部有2K的数据


代码如下 .C文件可直接移植


#include <STC89C5xRC.H>

#include

#define Read   0x01                                        //读指令

#define Write  0x02                                        //写指令

#define Erase  0x03                                        //擦除指令

#define ENABLE_IAP   0x81                        //速度20Mhz

//操作完成一次之后 进入待机模式 等待下一次命令  无ISP操作

void ISP_IAP_disable(void)   

{   

    ISP_CONTR = 0x00;   

    ISP_CMD = 0x00;   

    ISP_TRIG = 0x00;   

}

//读一个字节   addr是读的地址

unsigned char ReadEeProm(unsigned int addr)

{

        unsigned char dat;

        ISP_CONTR = ENABLE_IAP;

        ISP_CMD = Read;

        ISP_ADDRH = (unsigned char)(addr>>8);

        ISP_ADDRL = (unsigned char)addr;

        ISP_TRIG = 0x46;

        ISP_TRIG = 0xB9;

        _nop_();

        ISP_IAP_disable();

        dat = ISP_DATA;

        return dat;

}

//擦除一个扇区的内容 addr擦除扇区的地址

void EraseEeProm(unsigned int addr)

{

        ISP_CONTR = ENABLE_IAP;

        ISP_CMD = Erase;

        ISP_ADDRH = (unsigned char)(addr>>8);

        ISP_ADDRL = (unsigned char)addr;

        ISP_TRIG = 0x46;

        ISP_TRIG = 0xB9;

        _nop_();

        ISP_IAP_disable();

}

//写一个字节的内容 addr地址 dat待写入数据

void WriteEeProm(unsigned int addr,unsigned char dat)

{

        //EraseEeProm(addr);    //一个字节需要先擦除这个扇区

        ISP_CONTR = ENABLE_IAP;

        ISP_CMD = Write;

        ISP_ADDRH = (unsigned char)(addr>>8);

        ISP_ADDRL = (unsigned char)addr;

        ISP_DATA = dat;

        ISP_TRIG = 0x46;

        ISP_TRIG = 0xB9;

        _nop_();

        ISP_IAP_disable();

}

//连续读多个字节 *str存储读到数据缓冲区  addr从哪个地址开始读 len读多少个字节

void Reading(unsigned char *str,unsigned int addr,unsigned char len)

{

        while(len--)

        {

                *str++ = ReadEeProm(addr++);

        }

}

void ValToString(unsigned char *str,unsigned int dat)

{

        unsigned char len = 0; //计算当前转换到多少

        unsigned char buf[5];

        do{

                buf[len] = dat%10 + '0';

                dat /=10;

                len++;

        }while(dat>0);

        

        while(len--)

        {

                *str++ = buf[len];

        }

        *str = '';

        

}


关键字:STC89C52  单片机  内部EEPROM 引用地址:STC89C52单片机内部EEPROM程序

上一篇:单片机AT89C51 正反转可控的步进电机
下一篇:TB6560两相混合式步进电机驱动板设计

推荐阅读最新更新时间:2024-11-17 01:18

基于单片机的嵌入式SNMP代理器设计与实现
0 引言 SNMP(简单网络管理协议)应用广泛,功能强大,只要管理软件驻留有MIB(管理信息库),并且拥有适当的权限,管理器就可以访问SNMP代理器。SNMP一般用于计算机网络和电信网络,本文提出了用SNMP进行控制。由于其传输媒介是Internet,所以传输距离不受限制,这相对于其他工业控制总线有不可比拟的优势,SNMP最大的优点是协议简洁,适合嵌入式应用。SNMP体系可扩展性强,只要将新的MIB装载在管理软件上就可以实现对新的终端的控制与访问,本文介绍了一种基于廉价的微控制器的实现嵌入式代理器的方案,以微处理器核心实现相关硬件及软件。 1 SNMP体系结构 SNMP的体系结构(见图1)以简单的查询/回答模型为基础,发送查
[单片机]
单片机c语言之矩阵按键
程序为当按下第一个矩阵按键,数码管显示1,按第2个矩阵按键,数码管显示2,以此类推,直到第十五个按键显示F。第十六个按键显示o为止 #include reg52.h #define uint unsigned int #define uchar unsigned char sbit dula=P2^6; sbit wela=P2^7; uchar code table ={ 0x00,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0 }; uchar num,temp,num
[单片机]
意法半导体推出安全微控制器ST33
意法半导体(ST)的先进微控制器 确保下一代移动和消费电子系统具有最高的数字安全性 全面锁定先进的NFC通用集成电路卡和嵌入式安全单元应用 中国,2013年11月29日 ——横跨多重电子应用领域、全球领先的半导体供应商、世界最大的NFC通用集成电路卡(Universal Integrated Circuit Cards ,UICC) 和嵌入式安全单元(embedded Secure Element ,eSE) 芯片供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)发布了最新的ST33安全微控制器,可实现更先进的性能,更强的安全性,更低的功耗以及更高的多接口灵活性。 意法半导体的ST
[单片机]
2019MCU变数多,全面战役打响
在不同地域、不同战争阶段和不同战斗规模的情况下,战术的运用也各不相同。根据时机、实力等不同情况,灵活运用和变换战术,对夺取战斗胜利具有重要意义。而对在市场已经驰骋多年的MCU来说,当时间进入2019年,应该做出哪些新的战术选择呢?毕竟MCU增势强劲,不仅销售额在2022年将达到近239亿美元,出货量更将以11.1%的复合年增长率增至约438亿片。 全面竞争 对于MCU厂商来说,除了在芯片本身的集成度、成本、功耗、安全层面不断进化,打造一个广阔的产品系列平台外,还需要从多重维度来推进,应对层出不穷的应用需求。 意法半导体(ST)中国区微控制器事业部市场及应用总监曹锦东指出,随着应用的深入,MCU需更多的合作伙伴在硬
[嵌入式]
2019<font color='red'>MCU</font>变数多,全面战役打响
51单片机驱动继电器可以使用这样的几种芯片
继电器是一种电子控制器件,它具有控制系统(又称输入回路)和被控制系统(又称输出回路),通常应用于自动控制电路中,它实际上是用较小的电流去控制较大电流的一种“自动开关”。故在电路中起着自动调节、安全保护、转换电路等作用。在大多数的情况下,继电器就是一个电磁铁,这个电磁铁的衔铁可以闭合或断开一个或数个接触点。当电磁铁的绕组中有电流通过时,衔铁被电磁铁吸引,因而就改变了触点的状态。继电器一般可以分为电磁式继电器、热敏干簧继电器、固态继电器等。增强型PIC实验板上配置的继电器如图1所示。 电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的
[单片机]
51<font color='red'>单片机</font>驱动继电器可以使用这样的几种芯片
单片机ADC采样算法----限幅消抖滤波法
限幅消抖滤波法相当于“限幅滤波法”+“消抖滤波法” 。 下面直接看C代码的实现 #define A 200 #define N 20 //返回两个整数差 unsigned int num_sub( unsigned int a, unsigned int b ) { return ( a = b ? ( a - b ) : ( b - a ) ); } unsigned int filter10( void ) { unsigned int count = 0; unsigned int new_value = 0; static unsigned int last_value = 0; new
[单片机]
<font color='red'>单片机</font>ADC采样算法----限幅消抖滤波法
提高单片机系统可靠性的设计方法
  目前,大量的嵌入式系统均采用了单片机,并且这样的应用正在更进一步扩展;但是多年以来人们一直为单片机系统的可靠性问题所困惑。在一些要求高可靠性的控制系统中,这往往成为限制其应用的主要原因。 1 单片机系统的失效分析   一个单片机系统的可靠性是其自身软硬件与其所处工作环境综合作用的结果,因此系统的可靠性也应从这两个方面去分析与设计。对于系统自身而言,能不能在保证系统各项功能实现的同时,对系统自身运行过程中出现的各种干扰信号及直接来自于系统外部的干扰信号进行有效的抑制,是决定系统可靠性的关键。有缺陷的系统往往只从逻辑上去保证系统功能的实现,而对于系统运行过程中可能出现的潜在的问题考虑欠缺,采取的措施不足,在干扰信号真正袭来的时候
[单片机]
单片机应用范围
按照单片机的特点,单片机的应用分为单机应用与多机应用。在一个应用系统中,只使用一片单片机称为单机应用。单片机的单机应用的范围包括: (1) 测控系统。 用单片机可以构成各种不太复杂的工业控制系统、自适应控制系统、数据采集系统等, 达到测量与控制的目的。 (2) 智能仪表。 用单片机改造原有的测量、控制仪表, 促进仪表向数字化、智能化、多功能化、综合化、柔性化方向发展。 (3) 机电一体化产品。单片机与传统的机械产品相结合, 使传统机械产品结构简化, 控制智能化。 (4) 智能接口。 在计算机控制系统, 特别是在较大型的工业测、控系统中, 用单片机进行接口的控制与管理, 加之单片机与主机的并行工作, 大大提高了系统的运行速度。 (5)
[焦点新闻]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved