您的位置:首页 > 其它

EEPROM通过IIC协议进行读写操作

2016-11-24 09:33 120 查看
EEPROM通过IIC协议可以进行快速简单的读写操作:

写操作:

1,简单随机写入一个8字节的数据

2,一次写入一页数据,而不需要再次写入从机地址和单元地址,一页数据为32个字节。

每次页操作之间要间隔10ms

可以不硬性规定页操作的间隔时间,用另一种方法,轮询法进行连续的页操作,即不断地往EEPROM写入从机地址(第一个需要写入的数据),通过应答信号检测数据端口是否忙,如果忙,则写入失败,继续访问,知道成功为止。

读操作:

读操作就相对比较简单,只要写入一次从机地址等信息,就可以把EEPROM数据全部读出来

要注意读写时序,保证时钟的均匀和稳定

/******************************************************/

iic_start:

   set1 IIC_SDA

    nop

   set1 IIC_SCL

    nop

   set0 IIC_SDA

    nop

   set0 IIC_SCL

iic_start_end:

   ret

/******************************************************/

iic_stop:

   set0 IIC_SCL

   nop

   set0 IIC_SDA

   nop

   set1 IIC_SCL

   nop

   set1 IIC_SDA

iic_stop_end:

   ret

/******************************************************/

iic_test_ack:

   set1 IIC_SCL

   t0sn IIC_SDA

   set0 bflag_ack

   t1sn IIC_SDA

   set1 bflag_ack

   set0 IIC_SCL

iic_test_ack_end:

   ret

/******************************************************/

iic_send_ack:

   set0 IIC_SDA

   nop

   set1 IIC_SCL

   nop

   set0 IIC_SCL

iic_send_ack_end:

   ret

/******************************************************/

iic_send_no_ack:

   set0 IIC_SCL

   nop

   set1 IIC_SDA

   nop

   set1 IIC_SCL

   nop

   set0 IIC_SCL

iic_send_ack_no_end:

   ret

/******************************************************/

iic_writebyte:

   mov a,8

   mov iic_data_bit_numb,a

iic_writebyte_1:                   

   sl iic_data_write 

   swapc IIC_SDA

   set1 IIC_SCL

   nop

   set0 IIC_SCL

   dzsn iic_data_bit_numb

   goto iic_writebyte_1

iic_writebyte_end:

   ret

/******************************************************/

iic_readbyte:

   mov a,8

   mov iic_data_bit_numb,a

iic_readbyte_1:

   set1 IIC_SCL

   t1sn IIC_SDA

   set0 CF

   t0sn IIC_SDA

   set1 CF

   slc iic_data_receive                

   set0 IIC_SCL

   dzsn iic_data_bit_numb

   goto iic_readbyte_1

iic_readbyte_end:

   ret

/******************************************************/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: