您的位置 首页 方案

STC11F02E_EEPROM 头文件

/*************************************************************//*****FileFunction:STC11F02E_EEPROMRe

/*************************************************************/

/*****File Function : STC11F02E_EEPROM Read and Write *****/
/*****Program Author : ZhengWen(ClimberWin) *****/
/*****Compile Date : 2009/3/3 *****/
/*****Edition Info : V1.0 *****/
/*************************************************************/
/*****Amend Date : 2009.3.3 *****/
/*****修正内容:修正读写子程序,使得愈加的简练********/
/*************************************************************/
#ifndef __STC11FXX_EEPROM_CLIMBERWIN__
#define __STC11FXX_EEPROM_CLIMBERWIN__
#define uchar unsigned char
#define uint unsigned int
#include
/*******************************************************/

/*****STC11FXX特别功用寄存器界说********/
sfr isp_wdt = 0xc1;
sfr isp_data = 0xc2;
sfr isp_addrh = 0xc3;
sfr isp_addrl = 0xc4;
sfr isp_cmd = 0xc5;
sfr isp_trig = 0xc6;
sfr isp_contr = 0xc7;
/*****************************************/

/***************STC11FXX扇区擦除程序*************************/
void STC89CXX_EEPROM_Erase(unsigned char t_addr)
{
isp_addrh = t_addr; //能够不要 扇区里恣意一个字节的地址都是扇区地址,无需求首地址,单片机会自己处理
isp_addrl = 0;
EA = 0; //关中止
isp_contr = 0x81;
isp_cmd = 3; //扇区擦除,要某字节为空,有必要擦除1个扇区
isp_trig = 0x5a; //先送0x5a再送 0xa5 ISP/IAP 触发寄存器,每次都需求如此
isp_trig = 0xa5; //送完0xa5后 ISP/IAP 立即被触发发动
_nop_();
_nop_();
isp_contr = 0;
isp_cmd = 0;
isp_trig = 0;
isp_addrh = 0;
isp_addrl = 0;
// EA = 1; // 开中止
}
/***********************************************/

/***************STC11FXX_EEPROM字节写程序*************************/

void STC89CXX_EEPROM_Char_Write(unsigned int Write_addr ,unsigned char Write_data)
{

isp_data = Write_data;
isp_addrh = Write_addr/256; //送地址高位
isp_addrl = Write_addr%256; //地址低位
EA = 0; /* 关中止 */
isp_contr = 0x81;
isp_cmd = 2; //送扇区指令
isp_trig = 0x5a;;
isp_trig = 0xa5;
_nop_();
_nop_();
isp_contr = 0;
isp_cmd = 0;
isp_trig = 0;
isp_addrh = 0;
isp_addrl = 0;
// EA = 1; /* 开中止 */

}
/**************************************************************/

/***************STC11FXX_EEPROM字节读程序*************************/

STC89CXX_EEPROM_Char_Read(unsigned int Read_addr)
{

isp_addrh = Read_addr/256; //送地址高字节
isp_addrl = Read_addr%256; //送地址低字节(从0开端到num-1停止)
EA = 0; /* 关中止 */
isp_contr = 0x81; /*20M,是0x80 orl 1 */
isp_cmd = 1; // 1表明字节读
isp_trig = 0x5a; //先送0x5a再送 0xb9 ISP/IAP 触发寄存器,每次都需求如此
isp_trig = 0xa5; //送完0xa5后 ISP/IAP 立即被触发发动
_nop_(); //空指令
_nop_(); //空指令
isp_contr = 0; //制止ISP/IAP 操作
isp_cmd = 0; //去除ISP/IAP 指令
isp_trig = 0; //避免 ISP/IAP 指令误触发
isp_addrh = 0; //地址指向非EEPROM地址区,避免误操作
isp_addrl = 0;
// EA = 1; /* 开中止 */
return(isp_data);

}
/**************************************************************/

/*******************************************************************************/

#endif

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/267214.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部