找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12620|回復(fù): 10
收起左側(cè)

單片機驅(qū)動24c02存儲器讀寫實驗 Proteus仿真和源代碼

  [復(fù)制鏈接]
ID:175881 發(fā)表于 2017-4-5 03:50 | 顯示全部樓層 |閱讀模式
單片機驅(qū)動24c02存儲器讀寫實驗的仿真原理圖(proteus仿真工程文件可到本帖附件下載):

0.png

單片機24c02讀寫源代碼:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. sbit  sda=P2^1;
  4. sbit  scl=P2^0;

  5. void delay()        //延時應(yīng)大于4.7us
  6. { ;;;}

  7. void start()        //開始發(fā)送數(shù)據(jù)
  8. {  sda=1;
  9.    delay();         //scl在高電平期間,sda由高到低
  10.    scl=1;
  11.    delay();
  12.    sda=0;
  13.    delay();
  14. }

  15. void stop()         //停止發(fā)送數(shù)據(jù)
  16. {  sda=0;             //scl在高電平期間,sda由高到低
  17.    delay();
  18.    scl=1;
  19.    delay();
  20.    sda=1;
  21.    delay();
  22. }

  23. void response()
  24. {  uchar i;
  25.    scl=1;
  26.    delay();
  27.    if((sda==1)&&i<250) i++;        //應(yīng)答sda為0,非應(yīng)答為1
  28.    scl=0;                          //釋放總線
  29.    delay();
  30. }

  31. void  noack()
  32. {  scl=1;
  33.    delay();
  34.    scl=1;
  35.    delay();
  36.    scl=0;
  37.    delay();
  38.    sda=0;
  39.    delay();
  40. }
  41. void init()                      //初始化
  42. {  sda=1;
  43.    delay();
  44.    scl=1;
  45.    delay();
  46. }
  47. void write_byte(uchar date)     //寫一個字節(jié)
  48. {  uchar i,temp;
  49.    temp=date;
  50.    for(i=0;i<8;i++)
  51.    {  temp=temp<<1;
  52.       scl=0;                    //scl上跳沿寫入
  53.       delay();
  54.       sda=CY;                   //溢出位
  55.       delay();
  56.       scl=1;
  57.       delay();
  58. scl=0;
  59. delay();
  60.    }
  61.    scl=0;
  62.    delay();
  63. sda=1;
  64. delay();
  65. }
  66. uchar read_byte()
  67. {  uchar i,k;
  68.    scl=0;
  69.    delay();
  70.    sda=1;
  71.    delay();
  72.    for(i=0;i<8;i++)
  73.    {  scl=1;
  74.       delay();
  75.       k=(k<<1)|sda;
  76.       scl=0;
  77.       delay();
  78.    }
  79.    return k;
  80. }
  81. void delay1(uchar x)
  82. {  uchar a,b;
  83.    for(a=x;a>0;a--)
  84.    for(b=200;b>0;b--);
  85. }

  86. void write_add(uchar address,uchar date)
  87. {  start();
  88.    write_byte(0xa0);                    //設(shè)備地址
  89.    response();
  90.    write_byte(address);
  91.    response();
  92.    write_byte(date);
  93.    response();
  94.    stop();
  95. }

  96. uchar read_add(uchar address)
  97. {  uchar date;
  98.    start();
  99.    write_byte(0xa0);
  100.    response();
  101.    write_byte(address);
  102.    response();
  103.    start();
  104.    write_byte(0xa1);                //1表示接收地址
  105.    response();
  106.    date=read_byte();
  107.    noack();
  108.    stop();
  109.    return date;
  110. }
  111. void main()
  112. {  uchar kk;
  113.    init();

  114.    kk=0;
  115.    
  116.    write_add(kk,0x55);               //向0單元寫入數(shù)據(jù)0fH,
  117.   
  118.    delay1(100);
  119.    
  120.   
  121.     P1=read_add(kk);                  //低電平燈亮
  122.    
  123. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

0.png


該系列源碼包含有很多非常經(jīng)典,代碼風(fēng)格十分規(guī)范,而且注釋詳細(xì)的單片機例程,還帶仿真,對于MCU學(xué)習(xí)特別是初學(xué)者是很有幫助的,全部源碼下載(共幾十個項目):http://www.torrancerestoration.com/bbs/dpj-80575-1.html

本例程下載(含proteus仿真工程文件與源碼):
單片機驅(qū)動24c02存儲器讀寫實驗.rar (47.11 KB, 下載次數(shù): 411)

回復(fù)

使用道具 舉報

ID:197885 發(fā)表于 2017-5-7 20:44 | 顯示全部樓層
感謝樓主,幫了我大忙
回復(fù)

使用道具 舉報

ID:458444 發(fā)表于 2018-12-30 10:35 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

ID:72065 發(fā)表于 2019-1-8 13:46 | 顯示全部樓層

謝謝樓主分享,正好需要這個
回復(fù)

使用道具 舉報

ID:464808 發(fā)表于 2019-1-8 18:53 | 顯示全部樓層
支持謝謝分享

回復(fù)

使用道具 舉報

ID:740744 發(fā)表于 2020-4-29 11:38 | 顯示全部樓層
仿真中能看出24C02的存儲效果嗎?
回復(fù)

使用道具 舉報

ID:717673 發(fā)表于 2020-5-29 18:12 | 顯示全部樓層
感謝分享
回復(fù)

使用道具 舉報

ID:546037 發(fā)表于 2020-6-10 20:27 | 顯示全部樓層
支持謝謝分享
回復(fù)

使用道具 舉報

ID:976070 發(fā)表于 2021-12-19 16:26 | 顯示全部樓層
24C02存儲器可以掉電保存數(shù)據(jù)嗎?
回復(fù)

使用道具 舉報

ID:9932 發(fā)表于 2024-10-12 15:41 | 顯示全部樓層
感謝樓主,幫了我大忙
回復(fù)

使用道具 舉報

ID:492633 發(fā)表于 2024-10-16 22:43 | 顯示全部樓層
tommy5201314 發(fā)表于 2020-4-29 11:38
仿真中能看出24C02的存儲效果嗎?

完全沒問題,每頁可以存儲0-255,有255頁
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表