最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

c51写的24c02的读写程序

来源:动视网 责编:小OO 时间:2025-10-08 00:06:21
文档

c51写的24c02的读写程序

c51写的24c02的读写程序#include//对24C02的读、写//externvoidDelayMs(unsignedint);//externvoidRead24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);//externvoidWrite24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);/***
推荐度:
导读c51写的24c02的读写程序#include//对24C02的读、写//externvoidDelayMs(unsignedint);//externvoidRead24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);//externvoidWrite24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);/***
c51写的24c02的读写程序

#i nclude

// 对24C02的读、写

// extern void DelayMs(unsigned int);

// extern void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes);

// extern void Write24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes);

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

#define WriteDeviceAddress 0xa0

#define ReadDviceAddress 0xa1

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

sbit SCL=P1^4;

sbit SDA=P1^3;

sbit DOG=P3^7;

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

void DelayMs(unsigned int number) {

unsigned char temp;

for(;number!=0;number--,DOG=!DOG) {

for(temp=112;temp!=0;temp--) {

}

}

}

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

void Start() {

SDA=1;

SCL=1;

SDA=0;

SCL=0;

}

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

void Stop() {

SCL=0;

SDA=0;

SCL=1;

SDA=1;

}

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

void Ack() {

SDA=0;

SCL=1;

SCL=0;

SDA=1;

}

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

void NoAck() {

SDA=1;

SCL=1;

SCL=0;

}

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

bit TestAck() {

bit ErrorBit;

SDA=1;

SCL=1;

ErrorBit=SDA;

SCL=0;

return(ErrorBit);

}

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

bit Write8Bit(unsigned char input) {

unsigned char temp;

for(temp=8;temp!=0;temp--) {

SDA=(bit)(input&0x80);

SCL=1;

SCL=0;

input=input<<1;

}

}

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

void Write24c02(unsigned char *Wdata,unsigned char RomAddress,unsigned char number) {

Start();

Write8Bit(WriteDeviceAddress);

TestAck();

Write8Bit(RomAddress);

TestAck();

for(;number!=0;number--) {

Write8Bit(*Wdata);

TestAck();

Wdata++;

}

Stop();

DelayMs(10);

}

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

unsigned char Read8Bit() {

unsigned char temp,rbyte=0;

for(temp=8;temp!=0;temp--) {

SCL=1;

rbyte=rbyte<<1;

rbyte=rbyte|((unsigned char)(SDA));

SCL=0;

}

return(rbyte);

}

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

void Read24c02(unsigned char *RamAddress,unsigned char RomAddress,unsigned char bytes) {

unsigned char temp,rbyte;

Start();

Write8Bit(WriteDeviceAddress);

TestAck();

Write8Bit(RomAddress);

TestAck();

Start();

Write8Bit(ReadDviceAddress);

TestAck();

while(bytes!=1) {

*RamAddress=Read8Bit();

Ack();

RamAddress++;

bytes--;

}

*RamAddress=Read8Bit();

NoAck();

Stop();

}

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

文档

c51写的24c02的读写程序

c51写的24c02的读写程序#include//对24C02的读、写//externvoidDelayMs(unsignedint);//externvoidRead24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);//externvoidWrite24c02(unsignedchar*RamAddress,unsignedcharRomAddress,unsignedcharbytes);/***
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top