久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 9406|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

關(guān)于#include "eeprom52.h"這句單片機(jī)程序是什么意思?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:515587 發(fā)表于 2019-4-29 13:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
想請(qǐng)問(wèn)大佬們一下#include "eeprom52.h"

這段代碼是什么意思呢?有什么作用啊?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:96682 發(fā)表于 2019-4-29 17:32 | 只看該作者
單片機(jī)芯片內(nèi)部的 E2PROM 頭文件
回復(fù)

使用道具 舉報(bào)

板凳
ID:155507 發(fā)表于 2019-4-29 18:28 | 只看該作者
單片機(jī)片內(nèi)存儲(chǔ)器的功能操作頭文件
存成eeprom52.h 。H試下吧,

  1. #ifndef _EERPOM52_H_
  2. #define _EEPROM52_H_

  3. #include <reg51.h>
  4. #include "intrins.h"

  5. #define nop() _nop_()

  6. #define uint8 unsigned char
  7. #define uint16 unsigned int

  8. /*Declare SFR associated with the IAP */
  9. sfr IAP_DATA = 0xC2; //Flash data register
  10. sfr IAP_ADDRH = 0xC3; //Flash address HIGH
  11. sfr IAP_ADDRL = 0xC4; //Flash address LOW
  12. sfr IAP_CMD = 0xC5; //Flash command register
  13. sfr IAP_TRIG = 0xC6; //Flash command trigger
  14. sfr IAP_CONTR = 0xC7; //Flash control register

  15. /*Define ISP/IAP/EEPROM command*/
  16. #define CMD_IDLE 0 //Stand-By
  17. #define CMD_READ 1 //Byte-Read
  18. #define CMD_PROGRAM 2 //Byte-Program
  19. #define CMD_ERASE 3 //Sector-Erase

  20. /*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/
  21. //#define ENABLE_IAP 0x80 //if SYSCLK<30MHz
  22. #define ENABLE_IAP 0x81 //if SYSCLK<24MHz
  23. //#define ENABLE_IAP 0x82 //if SYSCLK<20MHz
  24. //#define ENABLE_IAP 0x83 //if SYSCLK<12MHz
  25. //#define ENABLE_IAP 0x84 //if SYSCLK<6MHz
  26. //#define ENABLE_IAP 0x85 //if SYSCLK<3MHz
  27. //#define ENABLE_IAP 0x86 //if SYSCLK<2MHz
  28. //#define ENABLE_IAP 0x87 //if SYSCLK<1MHz

  29. //Start address for STC11/10xx EEPROM
  30. //#define IAP_ADDRESS 0x0400

  31. //Start address for STC12C5A60S2 EEPROM
  32. #define IAP_ADDRESS 0x0000


  33. void EEPROMDelay(uint8 n)
  34. {
  35.         uint16 x;

  36.         while (n--)
  37.         {
  38.                 x =125;
  39.                 while (x--);
  40.         }
  41. }

  42. /*----------------------------
  43. * 名稱(chēng) : IapIdle();
  44. * 功能 : 關(guān)閉IAP EEPROM編輯功能,安全操作
  45. ----------------------------*/
  46. void IapIdle()
  47. {
  48.         IAP_CONTR = 0; //Close IAP function
  49.         IAP_CMD = 0; //Clear command to standby
  50.         IAP_TRIG = 0; //Clear trigger register
  51.         IAP_ADDRH = 0x80; //Data ptr point to non-EEPROM area
  52.         IAP_ADDRL = 0; //Clear IAP address to prevent misuse
  53. }


  54. /*----------------------------
  55. * 名稱(chēng) : IapReadByte(0x0000);
  56. * 功能 : 讀扇區(qū)
  57. ----------------------------*/
  58. uint8 IapReadByte(uint16 addr)
  59. {
  60.         uint8 dat; //Data buffer

  61.         IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait time
  62.         IAP_CMD = CMD_READ; //Set ISP/IAP/EEPROM READ command
  63.         IAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low
  64.         IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high
  65.         IAP_TRIG = 0x5a; //Send trigger command1 (0x5a)
  66.         IAP_TRIG = 0xa5; //Send trigger command2 (0xa5)
  67.         nop(); //MCU will hold here until ISP/IAP/EEPROM operation complete
  68.         dat = IAP_DATA; //Read ISP/IAP/EEPROM data
  69.         IapIdle(); //Close ISP/IAP/EEPROM function

  70.         return dat; //Return Flash data
  71. }

  72. /*----------------------------
  73. * 名稱(chēng) : IapEraseSector(0x0000);
  74. * 功能 : 扇區(qū)擦除
  75. ----------------------------*/
  76. void IapEraseSector(uint16 addr)
  77. {
  78.         IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait time
  79.         IAP_CMD = CMD_ERASE; //Set ISP/IAP/EEPROM ERASE command
  80.         IAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low
  81.         IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high
  82.         IAP_TRIG = 0x5a; //Send trigger command1 (0x5a)
  83.         IAP_TRIG = 0xa5; //Send trigger command2 (0xa5)
  84.         nop(); //MCU will hold here until ISP/IAP/EEPROM operation complete
  85.         IapIdle();
  86. }


  87. /*----------------------------
  88. * 名稱(chēng) : IapProgramByte(0x0000,data);
  89. * 功能 : 扇區(qū)編輯
  90. ----------------------------*/
  91. void IapProgramByte(uint16 addr, uint8 dat)
  92. {
  93.         IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait time
  94.         IAP_CMD = CMD_PROGRAM; //Set ISP/IAP/EEPROM PROGRAM command
  95.         IAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low
  96.         IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high
  97.         IAP_DATA = dat; //Write ISP/IAP/EEPROM data
  98.         IAP_TRIG = 0x5a; //Send trigger command1 (0x5a)
  99.         IAP_TRIG = 0xa5; //Send trigger command2 (0xa5)
  100.         nop(); //MCU will hold here until ISP/IAP/EEPROM operation complete
  101.         IapIdle();
  102. }

  103. /*----------------------------
  104. * 名稱(chēng) : IapProgramWord(0x0000,data);
  105. * 功能 : 十六位扇區(qū)編輯
  106. ----------------------------*/
  107. void IapProgramWord(uint16 addr, uint16 dat)
  108. {
  109.         uint8 dat_L,dat_H;
  110.         dat_L=dat;
  111.         dat_H=dat >> 8;

  112.         IAP_CONTR = ENABLE_IAP;
  113.         IAP_CMD = CMD_PROGRAM;
  114.         IAP_ADDRL = addr+0x0001;
  115.         IAP_ADDRH = (addr+0x0001)>> 8;
  116.         IAP_DATA = dat_H;
  117.         IAP_TRIG = 0x5a;
  118.         IAP_TRIG = 0xa5;
  119.         nop();
  120.         IapIdle();

  121.         IAP_CONTR = ENABLE_IAP;
  122.         IAP_CMD = CMD_PROGRAM;
  123.         IAP_ADDRL = addr;
  124.         IAP_ADDRH = addr >> 8;
  125.         IAP_DATA = dat_L;
  126.         IAP_TRIG = 0x5a;
  127.         IAP_TRIG = 0xa5;
  128.         nop();
  129.         IapIdle();

  130. }

  131. /*----------------------------
  132. * 名稱(chēng) : IapReadWord(0x0000);
  133. * 功能 : 讀十六位扇區(qū)
  134. ----------------------------*/
  135. uint16 IapReadWord(uint16 addr)
  136. {
  137.         uint16 dat; //Data buffer
  138.         uint8 dat_H,dat_L;

  139.         IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait time
  140.         IAP_CMD = CMD_READ; //Set ISP/IAP/EEPROM READ command
  141.         IAP_ADDRL = (addr+0x0001); //Set ISP/IAP/EEPROM address low
  142.         IAP_ADDRH = (addr+0x0001) >> 8; //Set ISP/IAP/EEPROM address high
  143.         IAP_TRIG = 0x5a; //Send trigger command1 (0x5a)
  144.         IAP_TRIG = 0xa5; //Send trigger command2 (0xa5)
  145.         nop(); //MCU will hold here until ISP/IAP/EEPROM operation complete
  146.         dat_H = IAP_DATA; //Read ISP/IAP/EEPROM data
  147.         IapIdle();

  148.         IAP_CONTR = ENABLE_IAP; //Open IAP function, and set wait time
  149.         IAP_CMD = CMD_READ; //Set ISP/IAP/EEPROM READ command
  150.         IAP_ADDRL = addr; //Set ISP/IAP/EEPROM address low
  151.         IAP_ADDRH = addr >> 8; //Set ISP/IAP/EEPROM address high
  152.         IAP_TRIG = 0x5a; //Send trigger command1 (0x5a)
  153.         IAP_TRIG = 0xa5; //Send trigger command2 (0xa5)
  154.         nop(); //MCU will hold here until ISP/IAP/EEPROM operation complete
  155.         dat_L= IAP_DATA; //Read ISP/IAP/EEPROM data
  156.         IapIdle(); //Close ISP/IAP/EEPROM function

  157.         dat=(dat_H << 8)+dat_L;

  158.         return dat; //Return Flash data
  159. }


  160. #endif

復(fù)制代碼


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 可以免费观看的av | 国产高清久久久 | 国产精品18hdxxxⅹ在线 | 国产二区视频 | 久久久久久av | 欧美午夜精品 | 国产精品久久久久一区二区三区 | 国产成人免费视频网站高清观看视频 | 在线一区观看 | 免费观看a级毛片在线播放 黄网站免费入口 | 性色综合 | 啪一啪| 成人精品一区二区三区 | www.狠狠操| 亚洲精品一区二区三区蜜桃久 | 狠狠色狠狠色综合日日92 | 国产成人综合久久 | 在线一区二区三区 | 久久久一二三 | 最新国产福利在线 | 日韩中文欧美 | 亚洲精品大片 | 久久新 | 国产 亚洲 网红 主播 | 最新中文字幕在线 | 中文字幕精品一区久久久久 | 国产一区91精品张津瑜 | 亚洲一区二区三区四区在线观看 | 国产中文在线观看 | 亚洲一区二区不卡在线观看 | av 一区二区三区 | 日本高清视频在线播放 | 在线观看黄色电影 | 99国产精品99久久久久久 | 九九热在线免费视频 | 国产精品久久久久999 | 伊人超碰在线 | 国产精品一区一区三区 | 久久久美女 | 国产成人精品久久 | 亚洲国产成人精品女人久久久 |