单片机控制ic读写串行eeprom.docxVIP

  • 3
  • 0
  • 约3.6千字
  • 约 8页
  • 2021-04-14 发布于广东
  • 举报
公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08] 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08] 单片机控制IC读写串行EEPROM 程序 /******************************************************************** 文件名:I2C读写串行EEPROM 功能描述*实现字节写读,页写读操作显示 创作人:KEVIN 2011-09-07 ********************************************************************/ #includereg52.h #includeintrins.h #define uchar unsigned char #define uint unsigned int sbit scl=P1^5; sbit sda=P3^6; sbit key1=P3^2; sbit key2=P3^3; sbit key3=P3^4; uchar a[10]={0xff}; /*****************************延时10ms*del**************************/ void Delay_10ms(uint del) { uint i,j; for(i=0; idel; i++) for(j=0; j1827; j++) ; } /*****************************起始信号******************************/ void start() { sda=1; _nop_(); scl=1; _nop_(); sda=0; _nop_(); scl=0; _nop_(); } /*****************************终止信号******************************/ void stop() { sda=0; _nop_(); scl=1; _nop_(); sda=1; _nop_(); scl=0; _nop_(); } /*****************************非应答信号*****************************/ void nack() { sda=1; _nop_(); scl=1; _nop_(); scl=0; _nop_(); sda=0; } /*******************************应答信号*****************************/ void ack() { sda=0; _nop_(); scl=1; _nop_(); scl=0; _nop_(); sda=1; } /*****************************应答位检查信号**************************/ void ack_test() { // uchar i; scl=1; _nop_(); sda=1; while(1) { if(sda==1) ; else break; } scl=0; _nop_(); } /***************************写一个字节子程序**************************/ void writebyte(uchar input) { uchar i,temp; temp=input; for(i=0;i8;i++) { temp=temp1; scl=0; _nop_(); sda=CY; _nop_(); scl=1; _nop_(); scl=0; _nop_(); } } /*****************************读一个字节子程序**************************/ uchar readbyte() { uchar i,rbyte; for(i=0;i8;i++) { scl=1; _nop_(); rbyte=(rbyte1)|sda; scl=0; _nop_(); } return rbyte; } /*******************************页写程序*****************

文档评论(0)

1亿VIP精品文档

相关文档