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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AVR內(nèi)部EEPROM讀寫函數(shù) EEPROM.H

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:3721 發(fā)表于 2015-1-5 16:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #pragma used+
  2. ///寫單字節(jié)EEPROM
  3. void EEPROM_write(unsigned int uiAddress, unsigned char ucData);

  4. ///讀單字節(jié)EEPROM
  5. unsigned char EEPROM_read(unsigned int uiAddress);

  6. ///寫雙字節(jié)EEPROM
  7. void EEPROM_write2(unsigned int uiAddress, unsigned int ucData);

  8. ///讀雙字節(jié)EEPROM
  9. unsigned int EEPROM_read2(unsigned int uiAddress);

  10. ///讀4字節(jié)EEPROM
  11. unsigned long EEPROM_read4(unsigned int uiAddress);

  12. ///寫4字節(jié)EEPROM
  13. void EEPROM_write4(unsigned int uiAddress, unsigned long ucData);



  14. #pragma used-

  15. #pragma library eeprom.lib

  16. EEPROM.C

  17. //#include "eeprom.h"

  18. /* EEPROM Control Register */
  19. #define    EERIE        3
  20. #define    EEMWE        2
  21. #define    EEWE         1
  22. #define    EERE         0

  23. #if  funcused EEPROM_write
  24. ///寫單字節(jié)EEPROM
  25. void EEPROM_write(unsigned int uiAddress, unsigned char ucData)
  26. {
  27. //#asm("cli")
  28. ////* 等待上一次寫操作結(jié)束
  29. while(EECR & (1<<EEWE));
  30. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  31. EEAR = uiAddress;
  32. EEDR = ucData;
  33. ////* 置位EEMWE
  34. EECR |= (1<<EEMWE);
  35. ////* 置位EEWE 以啟動寫操作
  36. EECR |= (1<<EEWE);

  37. //#asm("sei")
  38. }
  39. #endif


  40. #if  funcused EEPROM_read
  41. ///讀單字節(jié)EEPROM
  42. unsigned char EEPROM_read(unsigned int uiAddress)
  43. {
  44. #asm("cli")
  45. ///* 等待上一次寫操作結(jié)束
  46. while(EECR & (1<<EEWE));
  47. ///* 設(shè)置地址寄存器*/
  48. EEAR = uiAddress;
  49. ///* 設(shè)置EERE 以啟動讀操作
  50. EECR |= (1<<EERE);
  51. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  52. return EEDR;

  53. //#asm("sei")
  54. }
  55. #endif

  56. #if  funcused EEPROM_read2
  57. ///讀雙字節(jié)EEPROM
  58. unsigned int EEPROM_read2(unsigned int uiAddress)
  59. { unsigned int  ucdata;
  60. // #asm("cli")
  61. ///* 等待上一次寫操作結(jié)束


  62. while(EECR & (1<<EEWE));
  63. ///* 設(shè)置地址寄存器*/
  64. EEAR = uiAddress+1;
  65. ///* 設(shè)置EERE 以啟動讀操作
  66. EECR |= (1<<EERE);
  67. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  68. ucdata = EEDR;
  69. ucdata =ucdata<<8;

  70. while(EECR & (1<<EEWE));
  71. ///* 設(shè)置地址寄存器*/
  72. EEAR = uiAddress;
  73. ///* 設(shè)置EERE 以啟動讀操作
  74. EECR |= (1<<EERE);
  75. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  76. ucdata |= EEDR;

  77. return ucdata;
  78. //#asm("sei")
  79. }
  80. #endif

  81. #if  funcused EEPROM_write2
  82. ///寫雙字節(jié)EEPROM
  83. void EEPROM_write2(unsigned int uiAddress, unsigned int ucData)
  84. {

  85. //#asm("cli")
  86. ////* 等待上一次寫操作結(jié)束
  87. while(EECR & (1<<EEWE));
  88. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  89. EEAR = uiAddress;

  90. EEDR = ucData & 0x00ff;
  91. ////* 置位EEMWE
  92. EECR |= (1<<EEMWE);
  93. ////* 置位EEWE 以啟動寫操作
  94. EECR |= (1<<EEWE);

  95. while(EECR & (1<<EEWE));
  96. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  97. EEAR = uiAddress+1;

  98. EEDR = (ucData & 0xff00)>>8;
  99. ////* 置位EEMWE
  100. EECR |= (1<<EEMWE);
  101. ////* 置位EEWE 以啟動寫操作
  102. EECR |= (1<<EEWE);
  103. //#asm("sei")
  104. }
  105. #endif

  106. #if  funcused EEPROM_read4
  107. ///讀4字節(jié)EEPROM
  108. unsigned long EEPROM_read4(unsigned int uiAddress)
  109. { unsigned long  ucdata;
  110. // #asm("cli")
  111. ///* 等待上一次寫操作結(jié)束


  112. while(EECR & (1<<EEWE));
  113. ///* 設(shè)置地址寄存器*/
  114. EEAR = uiAddress+3;
  115. ///* 設(shè)置EERE 以啟動讀操作
  116. EECR |= (1<<EERE);
  117. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  118. ucdata = EEDR;
  119. ucdata =ucdata<<8;

  120. EEAR = uiAddress+2;
  121. ///* 設(shè)置EERE 以啟動讀操作
  122. EECR |= (1<<EERE);
  123. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  124. ucdata |= EEDR;
  125. ucdata =ucdata<<8;

  126. EEAR = uiAddress+1;
  127. ///* 設(shè)置EERE 以啟動讀操作
  128. EECR |= (1<<EERE);
  129. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  130. ucdata |= EEDR;
  131. ucdata =ucdata<<8;

  132. while(EECR & (1<<EEWE));
  133. ///* 設(shè)置地址寄存器*/
  134. EEAR = uiAddress;
  135. ///* 設(shè)置EERE 以啟動讀操作
  136. EECR |= (1<<EERE);
  137. ///* 自數(shù)據(jù)寄存器返回數(shù)據(jù)
  138. ucdata |= EEDR;

  139. return ucdata;
  140. //#asm("sei")
  141. }
  142. #endif

  143. #if  funcused EEPROM_write4
  144. ///寫4字節(jié)EEPROM
  145. void EEPROM_write4(unsigned int uiAddress, unsigned long ucData)
  146. {

  147. //#asm("cli")
  148. ////* 等待上一次寫操作結(jié)束
  149. while(EECR & (1<<EEWE));
  150. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  151. EEAR = uiAddress;

  152. EEDR = ucData & 0x000000ff;
  153. ////* 置位EEMWE
  154. EECR |= (1<<EEMWE);
  155. ////* 置位EEWE 以啟動寫操作
  156. EECR |= (1<<EEWE);

  157. ucData = ucData>>8;
  158. while(EECR & (1<<EEWE));
  159. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  160. EEAR = uiAddress+1;
  161. EEDR = ucData & 0x000000ff;
  162. ////* 置位EEMWE
  163. EECR |= (1<<EEMWE);
  164. ////* 置位EEWE 以啟動寫操作
  165. EECR |= (1<<EEWE);

  166. ucData = ucData>>8;
  167. while(EECR & (1<<EEWE));
  168. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  169. EEAR = uiAddress+2;
  170. EEDR = ucData & 0x000000ff;
  171. ////* 置位EEMWE
  172. EECR |= (1<<EEMWE);
  173. ////* 置位EEWE 以啟動寫操作
  174. EECR |= (1<<EEWE);

  175. ucData = ucData>>8;
  176. while(EECR & (1<<EEWE));
  177. ////* 設(shè)置地址和數(shù)據(jù)寄存器
  178. EEAR = uiAddress+3;
  179. EEDR = ucData & 0x000000ff;
  180. ////* 置位EEMWE
  181. EECR |= (1<<EEMWE);
  182. ////* 置位EEWE 以啟動寫操作
  183. EECR |= (1<<EEWE);
  184. //#asm("sei")
  185. }
  186. #endif
復(fù)制代碼


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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久久久免费 | 伊人久久一区二区 | 久久久久国产一区二区三区 | 中文字幕av一区 | 国产精品亚洲视频 | 国产一区二区三区在线视频 | 成人精品一区二区三区 | 国产一区不卡在线观看 | 亚洲天堂二区 | 亚洲国产精品久久久久婷婷老年 | 亚洲网一区 | 国产精品视频一区二区三区不卡 | av日韩精品 | 日韩美女一区二区三区在线观看 | 国精产品一区一区三区免费完 | 国产欧美日韩精品在线观看 | 欧美日韩高清免费 | 久久er精品 | 天天看天天爽 | 国际精品鲁一鲁一区二区小说 | 成人性生交大免费 | 欧美视频二区 | 国产无人区一区二区三区 | 精品国产一区二区在线 | 国产精品久久久久久久久久久久久 | 国产精品久久久久影院色老大 | 亚洲电影第三页 | 中文字幕亚洲欧美日韩在线不卡 | 成人免费视频观看视频 | 成人国产精品久久久 | 在线不卡视频 | 在线观看亚洲 | 亚洲一区二区三 | 亚洲影视在线 | 在线天堂免费中文字幕视频 | 日日夜夜天天干 | 欧美高清视频一区 | 成人区精品一区二区婷婷 | 亚洲精品自在在线观看 | 国产精品中文字幕在线 | 国产精品视频免费观看 |