• 大小: 20KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: 其他
  • 标签: STC15W  eeprom  串口  

资源简介

本例采用STC15W-408AS其它15系列都通用。 下载即用,内含hex文件。也可用keil打开编辑。 下载后打开串口助手,即可按你操作在串口助手里显示EEPROM里的数据,永久保存,省下24C02系列。操作方法详见例程开头注释。 /*操作方法: 按P32 从扇区0x0000起读一个字节。并在串口助手里显示出来。 按P33 从扇区0x0000起写一个字节。 按P33 扇区擦除。位置回到起点,即0X0000.

资源截图

代码片段和文件信息

/*操作方法:
按P32 从扇区0x0000起读一个字节。并在串口助手里显示出来。
按P33 从扇区0x0000起写一个字节。
按P33 扇区擦除。位置回到起点,即0X0000.
*/
//工作频率为11.0592MHz
#include “reg51.h“
#include “intrins.h“

typedef unsigned char BYTE;
typedef unsigned int WORD;
#define uchar unsigned char
#define uint  unsigned int

#define FOSC 11059200L          //系统频率
#define BAUD 115200             //串口波特率

#define NONE_PARITY     0       //无校验
#define ODD_PARITY      1       //奇校验
#define EVEN_PARITY     2       //偶校验
#define MARK_PARITY     3       //标记校验
#define SPACE_PARITY    4       //空白校验

#define PARITYBIT EVEN_PARITY   //定义校验位

sfr P0M1 = 0x93;
sfr P0M0 = 0x94;
sfr P1M1 = 0x91;
sfr P1M0 = 0x92;
sfr P2M1 = 0x95;
sfr P2M0 = 0x96;
sfr P3M1 = 0xb1;
sfr P3M0 = 0xb2;
sfr P4M1 = 0xb3;
sfr P4M0 = 0xb4;
sfr P5M1 = 0xC9;
sfr P5M0 = 0xCA;
sfr P6M1 = 0xCB;
sfr P6M0 = 0xCC;
sfr P7M1 = 0xE1;
sfr P7M0 = 0xE2;

sfr AUXR  = 0x8e;               //辅助寄存器
sfr T2H   = 0xd6;               //定时器2高8位
sfr T2L   = 0xd7;               //定时器2低8位

sfr P_SW1   = 0xA2;             //外设功能切换寄存器1

#define S1_S0 0x40              //P_SW1.6
#define S1_S1 0x80              //P_SW1.7

sbit P22 = P2^2;
sbit P32 = P3^2;  //读一字节。
sbit P33 = P3^3;  //写一字节。
sbit P34 = P3^4;  //扇区擦除。

bit busy;
unsigned char iii;
//======================================
sfr IAP_DATA    =   0xC2;           //IAP数据寄存器
sfr IAP_ADDRH   =   0xC3;           //IAP地址寄存器高字节
sfr IAP_ADDRL   =   0xC4;           //IAP地址寄存器低字节
sfr IAP_CMD     =   0xC5;           //IAP命令寄存器
sfr IAP_TRIG    =   0xC6;           //IAP命令触发寄存器
sfr IAP_CONTR   =   0xC7;           //IAP控制寄存器

#define CMD_IDLE    0               //空闲模式
#define CMD_READ    1               //IAP字节读命令
#define CMD_PROGRAM 2               //IAP字节编程命令
#define CMD_ERASE   3               //IAP扇区擦除命令

//#define ENABLE_IAP 0x80           //if SYSCLK<30MHz
//#define ENABLE_IAP 0x81           //if SYSCLK<24MHz
#define ENABLE_IAP  0x82            //if SYSCLK<20MHz
//#define ENABLE_IAP 0x83           //if SYSCLK<12MHz
//#define ENABLE_IAP 0x84           //if SYSCLK<6MHz
//#define ENABLE_IAP 0x85           //if SYSCLK<3MHz
//#define ENABLE_IAP 0x86           //if SYSCLK<2MHz
//#define ENABLE_IAP 0x87           //if SYSCLK<1MHz

//测试地址
#define IAP_ADDRESS 0x0000
void IapIdle(); //关闭IAP功能。
BYTE IapReadByte(WORD addr);//读一字节。
void IapProgramByte(WORD addr BYTE dat);//写一字节。
void IapEraseSector(WORD addr);//扇区擦除。
//======================================

void SendData(BYTE dat);
void SendString(char *s);
void delayms(uint z); //STC15W204S单片机即1MS延时=0.9989MS-11.0592
//=========================================================
/*----------------------------
关闭IAP
----------------------------*/
void IapIdle() //关闭IAP功能。
{
    IAP_CONTR = 0;                  //关闭IAP功能
    IAP_CMD = 0;                    //清除命令寄存器
    IAP_TRIG = 0;                   //清除触发寄存器
    IAP_ADDRH = 0x80;               //将地址设置到非IAP区域
    IAP_ADDRL = 0;
}

/*--------

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-12-14 18:35  408AS_EEPROM与串口\
     文件       10216  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口
     文件       14566  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口.LST
     文件       11422  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口.M51
     文件       11158  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口.OBJ
     文件        1423  2017-12-14 18:35  408AS_EEPROM与串口\408AS_EEPROM与串口.Opt
     文件        2213  2017-03-08 01:45  408AS_EEPROM与串口\408AS_EEPROM与串口.Uv2
     文件        8227  2017-12-14 18:35  408AS_EEPROM与串口\408AS_EEPROM与串口.c
     文件         932  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口.hex
     文件          68  2017-12-14 18:33  408AS_EEPROM与串口\408AS_EEPROM与串口.lnp
     文件         188  2017-12-14 18:35  408AS_EEPROM与串口\408AS_EEPROM与串口.plg
     文件        1423  2017-12-14 18:34  408AS_EEPROM与串口\408AS_EEPROM与串口_Opt.Bak
     文件           0  2017-03-07 23:43  408AS_EEPROM与串口\408AS_EEPROM与串口_Uv2.Bak

评论

共有 条评论