找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機(jī)仿真I2C-EEPROM 24C02存儲芯片源程序

[復(fù)制鏈接]
ID:57095 發(fā)表于 2023-4-9 21:45 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif

單片機(jī)源程序如下:
  1. /**************************************************************************************
  2. 實驗名稱:I2C-EEPROM實驗
  3. 接線說明:       
  4. 實驗現(xiàn)象:下載程序后,數(shù)碼管右3位顯示0,按K1鍵將數(shù)據(jù)寫入到EEPROM內(nèi)保存,
  5.                   按K2鍵讀取EEPROM內(nèi)保存的數(shù)據(jù),按K3鍵顯示數(shù)據(jù)加1,按K4鍵顯示數(shù)據(jù)清零,
  6.                   最大能寫入的數(shù)據(jù)是255。
  7. 注意事項:                                                                                                                                                                  
  8. ***************************************************************************************/
  9. #include "public.h"
  10. #include "24c02.h"
  11. #include "key.h"
  12. #include "lcd1602.h"
  13. #include "stdio.h"


  14. #define EEPROM_ADDRESS        0        //定義數(shù)據(jù)存入EEPROM的起始地址

  15. /*******************************************************************************
  16. * 函 數(shù) 名       : main
  17. * 函數(shù)功能                 : 主函數(shù)
  18. * 輸    入       : 無
  19. * 輸    出             : 無
  20. *******************************************************************************/
  21. void main()
  22. {       
  23.         char buffer[10];
  24.         u8 key_temp=0;
  25.            int save_value=0;
  26.         int save_buf[3];
  27.         lcd1602_init();//LCD1602初始化
  28.         lcd1602_show_string(0,0,"24c02save");//第二行顯示
  29.         while(1)
  30.         {                       
  31.                 key_temp=key_scan(0);
  32.                 if(key_temp==KEY1_PRESS)
  33.                 {
  34.                         at24c02_write_one_byte(EEPROM_ADDRESS,save_value);
  35.                 }
  36.                 else if(key_temp==KEY2_PRESS)
  37.                 {
  38.                         save_value=at24c02_read_one_byte(EEPROM_ADDRESS);
  39.                 }
  40.                 else if(key_temp==KEY3_PRESS)
  41.                 {
  42.                         save_value++;
  43.                         if(save_value==255)save_value=255;
  44.                 }
  45.                 else if(key_temp==KEY4_PRESS)
  46.                 {
  47.                         save_value=0;       
  48.                 }
  49.                 save_buf[0]=save_value/100;
  50.                 save_buf[1]=save_value%100/10;
  51.                 save_buf[2]=save_value%100%10;
  52.                 sprintf(buffer,"%d%d%d",save_buf[0],save_buf[1],save_buf[2]);
  53.                 lcd1602_show_string(0,1,buffer);//第二行顯示
  54.         }               
  55. }
復(fù)制代碼

Keil代碼與Proteus8.13仿真下載: I2C-EEPROM實驗LCD顯示存儲情況protues仿真.7z (74.4 KB, 下載次數(shù): 32)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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