最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

R8025T调试C程序

IT圈 admin 48浏览 0评论

2024年1月13日发(作者:孔贝)

#pragma sfr

#pragma di

#pragma ei

#pragma NOP

#define uchar unsigned char

#define uint unsigned int

#define SECOND P8.2

#define PM_SECOND PM8.2

#define BATEST

#define PM_BATEST

#define TIME_SCL

#define PM_TIME_SCL

#define PU_TIME_SCL

#define TIME_SDA

#define PM_TIME_SDA

#define PU_TIME_SDA

#define PM_ACK

#define WSlave_Addr

#define RSlave_Addr

void NEC_int()

{

WDTE=0xAC;

CMC=0x00;

CSC=0x80;

CKC=0x09;

PER0=0xFF;

PER1=0x01;

OSMC=0x00;

OSTS=0x01;

}

void delay3us()

{

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

}

void wait100us()

{

int i;

P15.6

PM15.6

P5.5

PM5.5

PU5.5

P5.4

PM5.4

PU5.4

PM0.2

0x64

0x65

for(i=0;i<200;i++)

{

NOP();

NOP();

}

}

void Start()

{

TIME_SDA=1;

delay3us();

TIME_SCL=1;

delay3us();

TIME_SDA=0;

delay3us();

TIME_SCL=0;

delay3us();

}

void Stop()

{

TIME_SDA=0;

delay3us();

TIME_SCL=1;

delay3us();

TIME_SDA=1;

delay3us();

}

int Write(x)

{

int i;

PM_TIME_SDA=0;

PM_TIME_SCL=0;

for(i=0;i<8;i++)

{

TIME_SCL=0;

if(x&0x80)

TIME_SDA=1;

else

TIME_SDA=0;

delay3us();

TIME_SCL=1;

delay3us();

x=x<<1;

}

TIME_SCL=0;

delay3us();

PM_TIME_SDA=1;

TIME_SCL=1;

delay3us();

i=0;

while(TIME_SDA)

{

if(++i>10)

{TIME_SCL=0;

return(0);

}

}

TIME_SCL=0;

PM_TIME_SDA=0;

return(1);

}

uchar Read()

{

int i;

uchar rdata=0;

PM_TIME_SDA=1;

PM_TIME_SCL=0;

delay3us();

TIME_SCL=0;

for(i=0;i<8;i++)

{

rdata=rdata<<1;

TIME_SCL=1;

NOP();

NOP();

if(TIME_SDA==1)

rdata++;

TIME_SCL=0;

NOP();

NOP();

}

return rdata;

}

int Ram_write()

{

int i;

WDTE=0xAC;

PM_TIME_SDA=0;

PM_TIME_SCL=0;

wait100us();

Start();

if(Write(WSlave_Addr)==0)

{

Stop(); return(0);

}

if(Write(0x00)==0)

{

Stop(); return(0);

}

Write(0x59);

Write(0x58);

Stop();

return(1);

}

void main()

{

int i,j=2;

uchar data=0xFF;

PU_TIME_SDA=1;

PU_TIME_SCL=1;

NEC_int();

j=Ram_write();

Start();

Write(WSlave_Addr);

Write(0x01);

Start();

Write(RSlave_Addr);

data=Read();

Stop();

}

2024年1月13日发(作者:孔贝)

#pragma sfr

#pragma di

#pragma ei

#pragma NOP

#define uchar unsigned char

#define uint unsigned int

#define SECOND P8.2

#define PM_SECOND PM8.2

#define BATEST

#define PM_BATEST

#define TIME_SCL

#define PM_TIME_SCL

#define PU_TIME_SCL

#define TIME_SDA

#define PM_TIME_SDA

#define PU_TIME_SDA

#define PM_ACK

#define WSlave_Addr

#define RSlave_Addr

void NEC_int()

{

WDTE=0xAC;

CMC=0x00;

CSC=0x80;

CKC=0x09;

PER0=0xFF;

PER1=0x01;

OSMC=0x00;

OSTS=0x01;

}

void delay3us()

{

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

NOP();NOP();

}

void wait100us()

{

int i;

P15.6

PM15.6

P5.5

PM5.5

PU5.5

P5.4

PM5.4

PU5.4

PM0.2

0x64

0x65

for(i=0;i<200;i++)

{

NOP();

NOP();

}

}

void Start()

{

TIME_SDA=1;

delay3us();

TIME_SCL=1;

delay3us();

TIME_SDA=0;

delay3us();

TIME_SCL=0;

delay3us();

}

void Stop()

{

TIME_SDA=0;

delay3us();

TIME_SCL=1;

delay3us();

TIME_SDA=1;

delay3us();

}

int Write(x)

{

int i;

PM_TIME_SDA=0;

PM_TIME_SCL=0;

for(i=0;i<8;i++)

{

TIME_SCL=0;

if(x&0x80)

TIME_SDA=1;

else

TIME_SDA=0;

delay3us();

TIME_SCL=1;

delay3us();

x=x<<1;

}

TIME_SCL=0;

delay3us();

PM_TIME_SDA=1;

TIME_SCL=1;

delay3us();

i=0;

while(TIME_SDA)

{

if(++i>10)

{TIME_SCL=0;

return(0);

}

}

TIME_SCL=0;

PM_TIME_SDA=0;

return(1);

}

uchar Read()

{

int i;

uchar rdata=0;

PM_TIME_SDA=1;

PM_TIME_SCL=0;

delay3us();

TIME_SCL=0;

for(i=0;i<8;i++)

{

rdata=rdata<<1;

TIME_SCL=1;

NOP();

NOP();

if(TIME_SDA==1)

rdata++;

TIME_SCL=0;

NOP();

NOP();

}

return rdata;

}

int Ram_write()

{

int i;

WDTE=0xAC;

PM_TIME_SDA=0;

PM_TIME_SCL=0;

wait100us();

Start();

if(Write(WSlave_Addr)==0)

{

Stop(); return(0);

}

if(Write(0x00)==0)

{

Stop(); return(0);

}

Write(0x59);

Write(0x58);

Stop();

return(1);

}

void main()

{

int i,j=2;

uchar data=0xFF;

PU_TIME_SDA=1;

PU_TIME_SCL=1;

NEC_int();

j=Ram_write();

Start();

Write(WSlave_Addr);

Write(0x01);

Start();

Write(RSlave_Addr);

data=Read();

Stop();

}

发布评论

评论列表 (0)

  1. 暂无评论