zoukankan      html  css  js  c++  java
  • STC单片机EEPROM读写

     
    //**************************************************************** 
    //  STC单片机EEPROM读写--最简洁的的拿来就用保证没错^_^简洁至上! 
    //---------------------------------------------------------------- 
    
    //--------------------------------//-------------------------------- 
    //注意:以下为STC89系列的地址 
    //--------------------------------//-------------------------------- 
    
    sfr isp_data  = 0xe2;//ISP/IAP操作时的数据寄存器 
    sfr isp_addrh = 0xe3;//高地址 
    sfr isp_addrl = 0xe4;//低地址 
    sfr isp_cmd   = 0xe5;//命令模式寄存器 
    sfr isp_trig  = 0xe6;//命令触发寄存器 
    sfr isp_contr = 0xe7;//ISP/IAP控制寄存器 
    */ 
    /* 
    //--------------------------------//-------------------------------- 
    //注意:以下为1T新STC系列的地址 
    //--------------------------------//-------------------------------- 
    sfr isp_data  = 0xc2;//ISP/IAP操作时的数据寄存器 
    sfr isp_addrh = 0xc3;//高地址 
    sfr isp_addrl = 0xc4;//低地址 
    sfr isp_cmd   = 0xc5;//命令模式寄存器 
    sfr isp_trig  = 0xc6;//命令触发寄存器 
    sfr isp_contr = 0xc7;//ISP_IAP控制寄存器 
    
    //---------------------------------------------------------------- 
    uchar eeprom_read(uint addres);// 
    void  eeprom_write(uint address,uchar wdata);// 
    void  eeprom_eares(uint addres);//扇区擦除 
    //**************************************************************** 
    //  扇区擦除 
    //---------------------------------------------------------------- 
    void eeprom_eares(uint addres) 
    {      
        uchar 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;  
    } 
    //**************************************************************** 
    //  读数据 
    //---------------------------------------------------------------- 
    unsigned char eeprom_read(unsigned int addres) 
    { 
        unsigned char 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_write(unsigned int addres,unsigned char 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;   
    } 

  • 相关阅读:
    MSSQL大量数据时,建立索引或添加字段后保存更改超时该这么办
    POJ 3261 Milk Patterns (后缀数组)
    POJ 1743 Musical Theme (后缀数组)
    HDU 1496 Equations (HASH)
    694. Distinct Substrings (后缀数组)
    POJ 1222 EXTENDED LIGHTS OUT (枚举 或者 高斯消元)
    POJ 1681· Painter's Problem (位压缩 或 高斯消元)
    POJ 1054 The Troublesome Frog (hash散列)
    HDU 1716 排列2
    HDU 4405 Aeroplane chess (概率DP & 期望)
  • 原文地址:https://www.cnblogs.com/pulan/p/2921619.html
Copyright © 2011-2022 走看看