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;   
    } 

  • 相关阅读:
    Domino+Qucikplace+Sametime构建企业办公平台图文攻略(一)
    GridPanel如果不设宽度,在IE下会变得很宽问题解决
    Domino+Qucikplace+Sametime构建企业办公平台图文攻略(二)
    extjs可视化开发工具
    JSON
    Domino的命名空间
    封装的ExtGrid 实现增、删、改、查等功能
    lotus 附件的存、 取 、删
    asp.net DateTime的使用
    SQL Server里面可能经常会用到的日期格式转换方法
  • 原文地址:https://www.cnblogs.com/pulan/p/2921619.html
Copyright © 2011-2022 走看看