#include #include //定义类型,方便代码移植 typedef unsigned char UINT8; typedef unsigned int UINT16; typedef unsigned long UINT32; typedef char INT8; typedef int INT16; typedef long INT32; static UINT8 i=0; /* 定义寄存器 ISP */ sfr ISP_DATA= 0xe2; // Flash数据寄存器 sfr ISP_ADDRH= 0xe3;// Flash高字节地址寄存器 sfr ISP_ADDRL= 0xe4;// Flash低字节地址寄存器 sfr ISP_CMD= 0xe5;// Flash命令模式寄存器 sfr ISP_TRIG= 0xe6;// Flash命令触发寄存器 sfr ISP_CONTR= 0xe7;// ISP/IAP 控制寄存器 #define NOP() _nop_() #define EEPROM_START_ADDRESS 0X2000 #define LED_PORT P2 //微秒级延时 void DelayNus(UINT16 t) { UINT16 d=0; d=t; do { NOP(); }while(--d > 0); } //毫秒级延时 void DelayNms(UINT16 t) { do { DelayNus(1000); }while(--t > 0); } //EEPROM使能 void EEPROMEnable(void) { ISP_CONTR=0x81;//使能并设置好等待时间 } //EEPROM禁用 void EEPROMDisable(void) { ISP_CONTR=0x00;//禁止EEPROM ISP_CMD = 0X00;//无ISP操作 ISP_TRIG = 0X00;//清零 ISP_ADDRH = 0X00;//清零 ISP_ADDRL = 0X00;//清零 } //eeprom 设置读写地址(相对地址) void EEPROMSetAddress(UINT16 addr) { addr+=EEPROM_START_ADDRESS;//初始化地址 ISP_ADDRH=(UINT8)(addr>>8);//设置读写地址高字节 ISP_ADDRL=(UINT8) addr; //设置读写地址低字节 } //EEPROM启动 void EEPROMStart(void) { ISP_TRIG=0x46; ISP_TRIG=0xB9; } //EEPROM读取单个字节 UINT8 EEPROMReadByte(UINT16 addr) { ISP_DATA=0X00; ISP_CMD=0X01; EEPROMEnable(); EEPROMSetAddress(addr); EEPROMStart(); DelayNus(10);//读取一个字节需要10us EEPROMDisable(); return (ISP_DATA); } //EEPROM写入单个字节 UINT8 EEPROMWriteByte(UINT16 addr,UINT8 byte) { EEPROMEnable(); ISP_CMD=0X02; EEPROMSetAddress(addr); ISP_DATA=byte; EEPROMStart(); DelayNus(60); EEPROMDisable(); } //EEPROM扇区擦除 UINT8 EEPROMSectorErase(UINT16 addr) { ISP_CMD=0X03; EEPROMEnable(); EEPROMSetAddress(addr); EEPROMStart(); DelayNus(10);// EEPROMDisable(); } void main(void) { EEPROMSectorErase(0); EEPROMWriteByte(0,0x0f); i=EEPROMReadByte(0); LED_PORT = i; while(1); } 现象:
上一篇:《8051单片机C语言创新教程》笔记 03
下一篇:stc89c52rc单片机下载hex文件失败的情况
推荐阅读最新更新时间:2024-11-12 07:39
设计资源 培训 开发板 精华推荐
- SI2434FS18-EVB,带有 UART 接口的 SI2434 ISOmodem 芯片评估板
- 使用 LTC2400 的差分桥式数字转换器设计电路
- 使用 Analog Devices 的 LTC1148 的参考设计
- 小电视天气时钟
- 具有 BFU768F 的低噪声快速开启/关闭 5-5.9 GHz Wi-Fi LNA
- Si5355-EVB,用于 Si5355 1-200 MHz、四频、8 路输出时钟发生器的评估板
- LTM8052EY 具有 4.75A 准确电流限制的 36Vin、3.3Vout 降压转换器的典型应用
- LimeSDR:灵活的下一代开源软件定义无线电
- 使用 ROHM Semiconductor 的 BU4234 的参考设计
- MIKROE-3214,Stepper 6 Click Board 是完整的集成双极步进电机驱动器解决方案