<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        STC單片機內部EEPROM程序

        作者:liumei   來源:本站原創   點擊數:  更新時間:2014年03月31日   【字體:

        #include <reg51.h>
        #include<intrins.h>
        #define uchar unsigned char
        #define uint unsigned int
         
        sfr ISP_DATA  = 0x00E2;    //EEPORM數據寄存器
        sfr ISP_ADDRH = 0x00E3;    //地址寄存器高八位
        sfr ISP_ADDRL = 0x00E4;    // 地址寄存器低八位
        sfr ISP_CMD   = 0x00E5;    //EEPORM命令寄存器
        sfr ISP_TRIG  = 0x00E6;    //EEPROM(ISP/IAP) 命令觸發寄存器
        sfr ISP_CONTR = 0x00E7;    //(ISP/IAP)控制寄存器
         
        /********打開ISP,IAP功能********/
        void ISP_IAP_enable(void)
        {
          //  EA=0;
              ISP_CONTR |= 0X18;
              ISP_CONTR |= 0X00;
              ISP_CONTR |= 0X80;
        }
        /********關閉ISP,IAP功能********/
        void ISP_IAP_disable(void)
        {
              ISP_CONTR &= 0X7f;
              ISP_TRIG   = 0X00;
          //  EA=1; 
        }
        /********公用的觸發代碼*********/
        void ISPgoon(void)
        {
              ISP_IAP_enable();
              ISP_TRIG = 0X46;
              ISP_TRIG = 0Xb9;
              _nop_();_nop_();
        }
        /*******讀字節*****************/
        uchar byte_read(uint byte_adder)
        {
              ISP_ADDRH = (uchar)(byte_adder>>8);
              ISP_ADDRL = (uchar)(byte_adder & 0x00ff);
              ISP_CMD   = ISP_CMD & 0xf8;
              ISP_CMD   = ISP_CMD | 0X01;
              ISPgoon();
              ISP_IAP_disable();
              return(ISP_DATA);
        }
        /********擦除扇區*************/
        void SectorErase(uint sector_adder)
        {
              static uint iSector;
              iSector     = sector_adder & 0xfe00;
              ISP_ADDRH   = (uchar)(iSector>>8);
              ISP_ADDRL   = 0X00;
              ISP_CMD    &= 0XF8;
              ISP_CMD    |= 0X03;
              ISPgoon();
              ISP_IAP_disable();
        }
        /***********寫字節***********/
        void byte_write(uint byte_adder,uchar orginal_data)
        {
              ISP_ADDRH    =  (uchar)(byte_adder>>8);
              ISP_ADDRL    =  (uchar)(byte_adder & 0X00FF);
              ISP_CMD     &= 0xf8;
              ISP_CMD     |= 0x02;
              ISP_DATA     =  orginal_data;
              ISPgoon();
              ISP_IAP_disable();
        }

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮