找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4056|回复: 5
收起左侧

N76E003新唐mcu做从机模拟AT24C02程序(已测试)

[复制链接]
ID:435160 发表于 2018-12-4 15:27 | 显示全部楼层 |阅读模式
单片机源码:
  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. }
复制代码

所有资料51hei提供下载:
IIC_slave_24c02.rar (56.5 KB, 下载次数: 72)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:553514 发表于 2019-6-3 10:35 | 显示全部楼层
看看,学习
回复

使用道具 举报

ID:412497 发表于 2019-7-30 11:05 | 显示全部楼层
怎么用呀,主函数没有
回复

使用道具 举报

ID:216667 发表于 2019-9-13 18:10 | 显示全部楼层
压根儿就不是模拟!瞎扯淡
回复

使用道具 举报

ID:138649 发表于 2019-9-23 18:00 | 显示全部楼层
中断的 下载看看 最近搞个项目IIC等很久
回复

使用道具 举报

ID:450849 发表于 2021-1-29 10:45 | 显示全部楼层
有人成功了吗? 急需要调试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表