⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 epr.c

📁 STC单片机eeprom测试c语言程序(带串口发送程序)
💻 C
字号:
#include "reg52.h"
#include "intrins.h"

#define uchar unsigned char
#define uint unsigned int

sfr isp_data=0xe2; 
sfr isp_addrh=0xe3; 
sfr isp_addrl=0xe4; 
sfr isp_cmd=0xe5; 
sfr isp_trig=0xe6; 
sfr isp_contr=0xe7; 

uchar eeprom_read(uint addres); 
uint one_byte;

void delay(void)
{
unsigned char m,n;
for(m=50;m>0;m--)
for(n=50;n>0;n--);
}
uchar eeprom_read(uint addres) 
     {uchar i,z; 
      isp_addrl=addres;     //低位地址 
      isp_addrh=addres>>8;  //高位地址 
      isp_contr=0x01; 
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。 
      isp_cmd=0x01;         //写命令 
      isp_trig=0x46;        //触发 
      isp_trig=0xb9;        //触发启动。 
      for(i=0;i<3;i++); 
      isp_addrl=0xff; 
      isp_addrh=0xff; 
      isp_contr=0x00; 
      isp_cmd=0x00; 
      isp_trig=0x00; 
      z=isp_data; 
      return(z); 
     } 
void eeprom_eares(uint addres)//扇区擦除。 
     {uint i; 
      isp_addrl=addres;     //低位地址 
      isp_addrh=addres>>8;  //高位地址 
      isp_contr=0x01; 
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。 
      isp_cmd=0x03;         //扇区命命令 
      isp_trig=0x46;        //触发 
      isp_trig=0xb9;        //触发启动。 
      for(i=0;i<3;i++); 
      isp_addrl=0xff; 
      isp_addrh=0xff; 
      isp_contr=0x00; 
      isp_cmd=0x00; 
      isp_trig=0x00; 
      } 
void eeprom_write(uint addres,uchar write_data)//写数据。 
     {unsigned char i; 
      isp_data=write_data;   //要写入的数据。 
      isp_addrl=addres;     //低位地址 
      isp_addrh=addres>>8;  //高位地址 
      isp_contr=0x01; 
      isp_contr=isp_contr|0x80; //设时间与充ISP操作。 
      isp_cmd=0x02;         //写命令 
      isp_trig=0x46;        //触发 
      isp_trig=0xb9;        //触发启动。 
      for(i=0;i<3;i++); 
      isp_addrl=0xff; 
      isp_addrh=0xff; 
      isp_contr=0x00; 
      isp_cmd=0x00; 
      isp_trig=0x00; 

     
       }

void sendbyte(one_byte)
{  
 TI=0;
 SBUF=one_byte;
 while (TI==0);
 TI=0;
 }

void init_uart(void)
{
 ES=0;
 TMOD=0x20; //定时器1,内部RC	
 SCON=0x50;	//串口方式1,波特率4800
 TH1=0xfd;
 TL1=0xfd;
 TR1=1;
 ES=1;
 }

void main(void)
{
  init_uart();
  eeprom_eares(0x2800);
  eeprom_write(0x2a00,0xbb);

  while(1)
  {
   sendbyte(0xaa);
   delay();
   delay();
   delay();
   delay();

   sendbyte(eeprom_read(0x2800));
   delay();
   delay();
   delay();
   delay();
   sendbyte(eeprom_read(0x2a00));
   delay();
   delay();
   delay();
   delay();
   sendbyte(0xff);
   delay();
   delay();
   }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -