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

QQ登錄

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

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

N76E003新唐mcu做從機(jī)模擬AT24C02程序(已測(cè)試)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:435160 發(fā)表于 2018-12-4 15:27 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
單片機(jī)源碼:
  1. #include "N76E003.h"
  2. #include "Common.h"
  3. #include "Delay.h"
  4. #include "SFR_Macro.h"
  5. #include "Function_define.h"


  6. #define EEPROM_SLA              0xA0   //AT24C02

  7. UINT8 data_received[64]= 0;    //change to 256 if the rom space is enough
  8. UINT8 data_num = 0;   

  9. UINT8 irxdata =0;
  10. UINT8 isubaddr =0;


  11. void I2C_ISR(void) interrupt 6
  12. {

  13.     static UINT8 islavecount=0;
  14.    
  15.     switch (I2STAT)
  16.     {
  17.         case 0x00:
  18.             STO = 1;
  19.         
  20.             break;

  21.         case 0x60:   
  22.             AA = 1;
  23.         
  24.             islavecount=0;
  25.         
  26.             break;
  27.                                
  28.         case 0x68:   
  29.                                 P02 = 0;
  30.         
  31.             while(1);
  32.             break;
  33.         
  34.         
  35.         case 0x80:   
  36.         
  37.             if(islavecount==0)
  38.             {
  39.                isubaddr = I2DAT;
  40.                AA = 1;
  41.                islavecount++;
  42.                
  43.                data_num = isubaddr;
  44.                
  45.             }
  46.             else  
  47.             {
  48.                irxdata = I2DAT;
  49.                AA = 1;  
  50.                
  51.                data_received[data_num++]=irxdata;
  52.                
  53.                islavecount++;               
  54.             }        
  55.         
  56.             break;      
  57.         

  58.         case 0x88:
  59.         
  60.             data_received[data_num] = I2DAT;
  61.             data_num = 0;
  62.             AA = 1;
  63.         
  64.             break;


  65.         case 0xA0:     
  66.             
  67.             AA = 1;
  68.             break;
  69.         
  70.         case 0xA8:     
  71.         
  72.             data_num=isubaddr;
  73.         
  74.             I2DAT = data_received[data_num];
  75.             data_num++;
  76.             AA = 1;
  77.         
  78.             break;        
  79.         
  80.         case 0xB8:   
  81.         
  82.             I2DAT = data_received[data_num];
  83.             data_num++;
  84.             AA = 1;
  85.         
  86.             break;

  87.         case 0xC0:      
  88.             AA = 1;
  89.             break;

  90.         case 0xC8:     
  91.         
  92.             AA = 1;

  93.             break;        
  94.     }

  95.     SI = 0;
  96.    
  97. }


  98. void Init_I2C_SLAVE(void)
  99. {
  100.     P13_Quasi_Mode;                         //set SCL (P13) is Quasi mode
  101.     P14_Quasi_Mode;                         //set SDA (P14) is Quasi mode
  102.    
  103.     SDA = 1;                                //set SDA and SCL pins high
  104.     SCL = 1;
  105.    
  106.     //--set_P0SR_6;                             //set SCL (P06) is  Schmitt triggered input select.
  107.    
  108.     set_EI2C;                               //enable I2C interrupt by setting IE1 bit 0
  109.     set_EA;

  110.     I2ADDR = EEPROM_SLA;                    //define own slave address
  111.     set_I2CEN;                              //enable I2C circuit
  112.     set_AA;
  113. }


  114. void main(void)
  115. {

  116.    Set_All_GPIO_Quasi_Mode;

  117.    Init_I2C_SLAVE();                                 

  118.    while (1);

  119. }
復(fù)制代碼

所有資料51hei提供下載:
IIC_slave_24c02.rar (56.5 KB, 下載次數(shù): 73)


評(píng)分

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

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:553514 發(fā)表于 2019-6-3 10:35 | 只看該作者
看看,學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

板凳
ID:412497 發(fā)表于 2019-7-30 11:05 | 只看該作者
怎么用呀,主函數(shù)沒(méi)有
回復(fù)

使用道具 舉報(bào)

地板
ID:216667 發(fā)表于 2019-9-13 18:10 | 只看該作者
壓根兒就不是模擬!瞎扯淡
回復(fù)

使用道具 舉報(bào)

5#
ID:138649 發(fā)表于 2019-9-23 18:00 | 只看該作者
中斷的 下載看看 最近搞個(gè)項(xiàng)目IIC等很久
回復(fù)

使用道具 舉報(bào)

6#
ID:450849 發(fā)表于 2021-1-29 10:45 | 只看該作者
有人成功了嗎? 急需要調(diào)試
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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