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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

AT24C0X掉電存儲模塊原理圖+PCB工程+單片機(jī)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
Altium Designer畫的AT24C08掉電存儲模塊原理圖和PCB圖如下:(51hei附件中可下載工程文件)

ATMEL24C08掉電存儲模塊
簡要說明:
一、尺寸:全長30mm寬15mm高10mm
二、主芯片:ATMEL24C08芯片
三、工作電壓:直流5V
四、特點(diǎn):電路簡單實(shí)用,接線簡單。
電路支持:ATMEL24C02\ ATMEL24C04\ ATMEL24C08\ ATMEL24C16\ ATMEL24C32.
適用場合:單片機(jī)學(xué)習(xí)、電子競賽、產(chǎn)品開發(fā)、畢業(yè)設(shè)計(jì)。。。
【標(biāo)注說明】
【參考原理圖】
PCB尺寸圖】

單片機(jī)源程序如下:
  1. #include <reg52.H>
  2. #include <stdio.h>
  3. #include <absacc.h>
  4. unsigned char code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x40};
  5. signed char sec=1; //定義計(jì)數(shù)值,每過1 秒,sec加1
  6. unsigned int tcnt; //定時中斷次數(shù)
  7. unsigned char jd=0;
  8. unsigned char gd=0;
  9. bit write=0; //寫24C08 的標(biāo)志;
  10. sbit gewei=P2^6; //個位選通定義
  11. sbit shiwei=P2^5; //十位選通定義
  12. sbit baiwei=P2^7; //百位選通定義
  13. sbit qianwei=P2^4; //千位選通定義
  14. sbit P10=P1^0;
  15. sbit P11=P1^1;
  16. sbit P12=P1^2;
  17. sbit P13=P1^3;
  18. sbit P14=P1^4;
  19. sbit P15=P1^5;
  20. sbit P16=P1^6;
  21. sbit P17=P1^7;
  22. sbit P30=P3^0;
  23. sbit P31=P3^1;
  24. sbit P32=P3^2;
  25. sbit P35=P3^5;



  26. sbit jia=P2^0;
  27. sbit jian=P2^1;
  28. sbit res=P2^2;

  29. /////////24C08 讀寫驅(qū)動程序////////////////////
  30. sbit scl=P3^3; // 24c08 SCL
  31. sbit sda=P3^4; // 24c08 SDA
  32. void delay1(unsigned char x)
  33. { unsigned int i;
  34. for(i=0;i<x;i++);
  35. ;}
  36. void flash()
  37. { ; ; }
  38. void x24c08_init() //24c08 初始化子程序
  39. {scl=1; flash(); sda=1;                     flash();}
  40. void start() //啟動(I方C)總線
  41. {sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();}
  42. void stop() //停止(I方C)總線
  43. {sda=0; flash(); scl=1; flash(); sda=1; flash();}
  44. void writex(unsigned char j) //寫一個字節(jié)
  45. { unsigned char i,temp;
  46. temp=j;
  47. for (i=0;i<8;i++)
  48. {temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();}
  49. scl=0; flash(); sda=1; flash();
  50. }
  51. unsigned char readx() //讀一個字節(jié)
  52. {
  53. unsigned char i,j,k=0;
  54. scl=0; flash(); sda=1;
  55. for (i=0;i<8;i++)
  56. {
  57. flash(); scl=1; flash();
  58. if (sda==1) j=1;
  59. else j=0;
  60. k=(k<<1)|j;
  61. scl=0;}
  62. flash(); return(k);
  63. }
  64. void clock() //(I方C)線時鐘
  65. {
  66. unsigned char i=0;
  67. scl=1; flash();
  68. while ((sda==1)&&(i<255))i++;
  69. scl=0; flash();
  70. }
  71. ////////從24c02 的地址address 中讀取一個字節(jié)數(shù)據(jù)/////
  72. unsigned char x24c08_read(unsigned char address)
  73. {
  74. unsigned char i;
  75. start(); writex(0xa0);
  76. clock(); writex(address);
  77. clock(); start();
  78. writex(0xa1); clock();
  79. i=readx(); stop();
  80. delay1(10);
  81. return(i);
  82. }
  83. //////向24c02 的address                     地址中寫入一字節(jié)數(shù)據(jù)info/////
  84. void x24c08_write(unsigned char address,unsigned char info)
  85. {
  86. EA=0;
  87. start(); writex(0xa0);
  88. clock(); writex(address);
  89. clock(); writex(info);
  90. clock(); stop();
  91. EA=1;
  92. delay1(50);
  93. }
  94. /////////////24C08 讀寫驅(qū)動程序完/////////////////////
  95. void Delay(unsigned int tc) //延時程序
  96. {
  97. while( tc != 0 )
  98. {unsigned int i;
  99. for(i=0; i<100; i++);
  100. tc--;}
  101. }
  102. void LED() //LED顯示函數(shù)
  103. {
  104. qianwei=0; P0=0xc0; Delay(3); qianwei=1;
  105. baiwei=0; P0=0xc0; Delay(3); baiwei=1;
  106. shiwei=0; P0=table[sec/10]; Delay(3); shiwei=1;
  107. gewei=0; P0=table[sec%10]; Delay(3); gewei=1;

  108. }

  109. void t0(void) interrupt 1 using 0 //定時中斷服務(wù)函數(shù)
  110. {
  111. TH0=(65536-50000)/256; //對TH0 TL0 賦值
  112. TL0=(65536-50000)%256; //重裝計(jì)數(shù)初值
  113. tcnt++; //每過250ust tcnt 加一
  114. if(tcnt==1) //計(jì)滿20次(1 秒)時
  115. {
  116. tcnt=0; //重新再計(jì)
  117. write=1; //1 秒寫一次24C08
  118. }
  119. }
  120. void main(void)
  121. {
  122. TMOD=0x01; //定時器工作在方式1
  123. ET0=1; EA=1;
  124. x24c08_init(); //初始化24C08
  125. sec=x24c08_read(2);//讀出保存的數(shù)據(jù)賦于sec
  126. TH0=(65536-50000)/256;                     //對TH0 TL0 賦值
  127. TL0=(65536-50000)%256; //使定時器0.05 秒中斷一次
  128. TR0=1; //開始計(jì)時*/

  129. while(1)
  130. {


  131. if(jia==0){Delay(8);   while(!jia){LED();}; {sec++;if(sec==36){sec=0;}} }
  132. if(jian==0){ Delay(8); while(!jian){LED();};{sec--;if(sec<0){sec=35;}} }
  133. if(res==0){sec=0;}
  134. switch(sec)
  135. {
  136. case 0:P1=0X81;P30=1;P31=1;P32=1;P35=1;break;
  137. case 1:P1=0X82;P30=1;P31=1;P32=1;P35=1;break;
  138. case 2:P1=0X84;P30=1;P31=1;P32=1;P35=1;break;
  139. case 3:P1=0X88;P30=1;P31=1;P32=1;P35=1;break;
  140. case 4:P1=0X90;P30=1;P31=1;P32=1;P35=1;break;
  141. case 5:P1=0XA0;P30=1;P31=1;P32=1;P35=1;break;
  142. case 6:P1=0X41;P30=1;P31=1;P32=1;P35=1;break;
  143. case 7:P1=0X42;P30=1;P31=1;P32=1;P35=1;break;
  144. case 8:P1=0X44;P30=1;P31=1;P32=1;P35=1;break;
  145. case 9:P1=0X48;P30=1;P31=1;P32=1;P35=1;break;
  146. case 10:P1=0X50;P30=1;P31=1;P32=1;P35=1;break;
  147. case 11:P1=0X60;P30=1;P31=1;P32=1;P35=1;break;
  148. case 12:P1=0XC1;P30=0;P31=1;P32=1;P35=1;break;
  149. case 13:P1=0XC2;P30=0;P31=1;P32=1;P35=1;break;
  150. case 14:P1=0XC4;P30=0;P31=1;P32=1;P35=1;break;
  151. case 15:P1=0XC8;P30=0;P31=1;P32=1;P35=1;break;
  152. case 16:P1=0XD0;P30=0;P31=1;P32=1;P35=1;break;
  153. case 17:P1=0XE0;P30=0;P31=1;P32=1;P35=1;break;
  154. case 18:P1=0XC1;P30=1;P31=0;P32=1;P35=1;break;
  155. case 19:P1=0XC2;P30=1;P31=0;P32=1;P35=1;break;
  156. case 20:P1=0XC4;P30=1;P31=0;P32=1;P35=1;break;
  157. case 21:P1=0XC8;P30=1;P31=0;P32=1;P35=1;break;
  158. case 22:P1=0XD0;P30=1;P31=0;P32=1;P35=1;break;
  159. case 23:P1=0XE0;P30=1;P31=0;P32=1;P35=1;break;
  160. case 24:P1=0XC1;P30=1;P31=1;P32=0;P35=1;break;
  161. case 25:P1=0XC2;P30=1;P31=1;P32=0;P35=1;break;
  162. case 26:P1=0XC4;P30=1;P31=1;P32=0;P35=1;break;
  163. case 27:P1=0XC8;P30=1;P31=1;P32=0;P35=1;break;
  164. case 28:P1=0XD0;P30=1;P31=1;P32=0;P35=1;break;
  165. case 29:P1=0XE0;P30=1;P31=1;P32=0;P35=1;break;
  166. case 30:P1=0XC1;P30=1;P31=1;P32=1;P35=0;break;
  167. case 31:P1=0XC2;P30=1;P31=1;P32=1;P35=0;break;
  168. case 32:P1=0XC4;P30=1;P31=1;P32=1;P35=0;break;
  169. case 33:P1=0XC8;P30=1;P31=1;P32=1;P35=0;break;
  170. case 34:P1=0XD0;P30=1;P31=1;P32=1;P35=0;break;
  171. case 35:P1=0XE0;P30=1;P31=1;P32=1;P35=0;break;
  172. default:break;
  173. }
  174. LED();
  175. if(write==1) //判斷計(jì)時器是否計(jì)時一秒
  176. {
  177. write=0; //清零
  178. x24c08_write(2,sec); //在24c08 的地址2 中寫入數(shù)據(jù)sec
  179. }
  180. }
  181. }
復(fù)制代碼

所有資料51hei提供下載:

掉電存儲模塊DXP資料.rar

54.42 KB, 下載次數(shù): 27, 下載積分: 黑幣 -5

ATMEGAL24C08掉電存儲模塊設(shè)計(jì)產(chǎn)品使用手冊.doc

3.78 MB, 下載次數(shù): 20, 下載積分: 黑幣 -5

掉電存儲模塊原理圖.doc

23.5 KB, 下載次數(shù): 21, 下載積分: 黑幣 -5

掉電存儲模塊測試程序.rar

27.44 KB, 下載次數(shù): 22, 下載積分: 黑幣 -5

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

使用道具 舉報(bào)

沙發(fā)
ID:194257 發(fā)表于 2018-2-24 09:01 | 只看該作者
EEPROM的擦寫次數(shù)是有限的,每秒寫一次的話很快就會導(dǎo)致EEPROM失效的,最好的辦法是用一顆大電容或者法拉電容,單片機(jī)檢測到掉電后利用大電容或者法拉電容的電將資料保存到EEPROM中去。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女久久久av超清 | 久久小视频 | 欧美在线日韩 | 免费观看色 | 特级毛片爽www免费版 | 人人人艹 | 欧美一级免费看 | 国产日韩一区二区三区 | 一级特黄在线 | 在线观看免费av网 | 香蕉久久a毛片 | 国产精品99一区二区 | 久久亚洲一区二区 | 免费不卡av| 日韩在线免费视频 | 久久一区二区三区四区 | 99视频在线免费观看 | 午夜免费视频 | 日韩黄a| 亚洲精品在线视频 | av毛片| 成人不卡在线 | 欧美1页| 特级毛片 | 在线播放精品视频 | 精品久久久久久久人人人人传媒 | 精品久久久久久久 | 91综合网 | 日韩中文字幕免费在线 | 中文字幕在线三区 | 91影院在线观看 | 国产精品久久一区 | 日韩高清一区 | 亚洲国产情侣 | 一区二区三区四区不卡 | 蜜桃av鲁一鲁一鲁一鲁 | 午夜影院在线观看 | 最新黄色在线观看 | 中文字幕在线观看一区 | 一级毛片大全免费播放 | 亚洲欧美视频一区二区 |