日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STC單片機EEPROM功能模塊

          STC單片機EEPROM功能模塊

          作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
          // STC單片機EEPROM功能模塊

          #include
          #include

          本文引用地址:http://yuyingmama.com.cn/article/201611/320339.htm

          // 聲明與IAP相關(guān)的SFR
          sfr IAP_DATA = 0xE2;
          sfr IAP_ADDRH = 0xE3;
          sfr IAP_ADDRL = 0xE4;
          sfr IAP_CMD = 0xE5;
          sfr IAP_TRIG = 0xE6;
          sfr IAP_CONTR = 0xE7;

          // 定義ISP/IAP/EEPROM命令
          #define CMD_IDLE 0
          #define CMD_READ 1
          #define CMD_PROGRAM 2
          #define CMD_ERASE 3

          // 定義IAP_CONTR的值ENABLE_IAP,根據(jù)時鐘頻率有所不同
          //#define ENABLE_IAP 0x80 // 時鐘頻率<30MHz
          //#define ENABLE_IAP 0x81 // 時鐘頻率<24MHz
          //#define ENABLE_IAP 0x82 // 時鐘頻率<20MHz
          #define ENABLE_IAP 0x83 // 時鐘頻率<12MHz
          //#define ENABLE_IAP 0x84 // 時鐘頻率<6MHz
          //#define ENABLE_IAP 0x85 // 時鐘頻率<3MHz
          //#define ENABLE_IAP 0x86 // 時鐘頻率<2MHz
          //#define ENABLE_IAP 0x87 // 時鐘頻率<1MHz

          // EEPROM數(shù)據(jù)保存的首地址
          #define IAP_ADDRESS 0x0800 // 應(yīng)跳過程序所占空間的位置

          // 禁止ISP/IAP/EEPROM功能
          void IapIdle()
          {
          IAP_CONTR = 0;
          IAP_CMD = 0;
          IAP_TRIG = 0;
          IAP_ADDRH = 0;
          IAP_ADDRL = 0;
          }

          // 從EEPROM中讀一個字節(jié)
          BYTE IapReadByte(WORD addr)
          {
          BYTE dat;

          IAP_CONTR = ENABLE_IAP;
          IAP_CMD = CMD_READ;
          IAP_ADDRL = addr;
          IAP_ADDRH = addr >> 8;
          // 注意對于STC12C2052(AD)單片機,應(yīng)先寫入0x46,再寫入0xb9
          // 而對于STC12C5A60S2單片機,應(yīng)先寫入0x5a,再寫入0xa5
          IAP_TRIG = 0x46;
          IAP_TRIG = 0xb9;
          _nop_();

          dat = IAP_DATA;
          IapIdle();

          return (dat);
          }

          // 寫一個字節(jié)到EEPROM
          void IapProgramByte(WORD addr, BYTE dat)
          {
          IAP_CONTR = ENABLE_IAP;
          IAP_CMD = CMD_PROGRAM;
          IAP_ADDRL = addr;
          IAP_ADDRH = addr >> 8;
          IAP_DATA = dat;
          IAP_TRIG = 0x46;
          IAP_TRIG = 0xb9;
          _nop_();

          IapIdle();
          }

          // 擦除EEPROM中的一個扇區(qū)
          void IapEraseSector(WORD addr)
          {
          IAP_CONTR = ENABLE_IAP;
          IAP_CMD = CMD_ERASE;
          IAP_ADDRL = addr;
          IAP_ADDRH = addr >> 8;
          IAP_TRIG = 0x46;
          IAP_TRIG = 0xb9;
          _nop_();

          IapIdle();
          }




          關(guān)鍵詞: STC單片機EEPROM功能模

          評論


          技術(shù)專區(qū)

          關(guān)閉