📄 1208.c
字号:
//#include <at89x52.h>
//#include <at89x55.h>
#include <reg54.h>
#include <absacc.h>
#include <math.h>
#include <intrins.h>
#define DataPort P0 // 数据端口
#define nops() {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
bit ack2;
sbit scl2 = 0x90;
sbit sda2 = 0x91;
void start_i2c2(void);
void stop_i2c2(void);
void ack_i2c2(bit a);
void writebyte2(unsigned char c);
unsigned char readbyte2(void);
bit mwritenbyte2(unsigned char suba,unsigned char number,unsigned char base[]);
bit mreadnbyte2(unsigned char suba,unsigned char number,unsigned char base[]);
void start_i2c2(void)
{
sda2=1; nops();
scl2=1; nops();
sda2=0; nops();
scl2=0; nops();
}
void stop_i2c2(void)
{
sda2=0; nops();
scl2=1; nops();
sda2=1; nops();
}
void writebyte2(unsigned char c)
{
unsigned char bitcnt;
for(bitcnt=0;bitcnt<8;bitcnt++)
{scl2=0;
if(c&0x80)sda2=1;else sda2=0;
nops();
scl2=1;
nops();
scl2=0;
c=c<<1;
}
nops();
sda2=1;
scl2=0;nops();
scl2=1;nops();
ack2=sda2;
scl2=0;nops();
}
unsigned char readbyte2(void)
{
unsigned char retc,bitcnt;
retc=0;
sda2=1;
for(bitcnt=0;bitcnt<8;bitcnt++)
{scl2=0;
nops();
scl2=1;
nops();
retc=retc<<1;
if(sda2)retc++;
nops();
}
scl2=0;
nops();
return(retc);
}
void ack_i2c2(bit a)
{
scl2=0;
nops();
sda2=a;
nops();
scl2=1;
nops();
scl2=0;
nops();
}
bit mwritenbyte2(unsigned char suba,unsigned char number,unsigned char base[])
{
unsigned char i;
start_i2c2();
//writebyte(0xa0);if(ack2)return(0);
writebyte2(0xde);if(ack2)return(0);
writebyte2(suba);if(ack2)return(0);
for(i=0;i<number;i++){writebyte2(base[i]);if(ack2)return(0);}
stop_i2c2();return(1);
}
bit mreadnbyte2(unsigned char suba,unsigned char number,unsigned char base[])
{
unsigned char i,*s;
s=base;
start_i2c2();
//writebyte(0xa0);if(ack2)return(0);
writebyte2(0xde);if(ack2)return(0);
writebyte2(suba);if(ack2)return(0);
start_i2c2();
writebyte2(0xdf);if(ack2)return(0);
for(i=0;i<number-1;i++){*s=readbyte2();ack_i2c2(0);s++;}
*s=readbyte2();ack_i2c2(1);
stop_i2c2();return(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -