📄 main_s.c
字号:
#include"3552.h"
#include "i2cm.h"
#define SLA_R 0x26;
#define SLA_W 0x27;
extern unsigned char idata Slave_Adr;
extern unsigned char idata FReceive_Done;
extern unsigned char idata FTransmitted_Done;
unsigned char code DATA1[]={0x55,0xAA,0xA5,0x5A};
extern unsigned char idata SDATA[10];
void init_i2c();
//=====================================================
//====================================================
int main()
{
SP =0x30;
Init_uart();
init_i2c();
//---------------------------------------------------
//Slave receive mode
//----------------------------------------------------
while(1)
{
#if 1
FReceive_Done = 0;
transs("---slave receive mode!!---\n\r");
while(!FReceive_Done){}
transs("---slave receive end!!---\n\r");
Compare_Data();
#endif
//---------------------------------------------------
//Slave transmit mode
//---------------------------------------------------
FTransmitted_Done =0;
transs("---slave transmitted mode!!---\n\r");
while(!FTransmitted_Done){}
transs("---slave transmitted end!!---\n\r");
//---------------------------------------------------
}
while(1);
return 0;
}
//====================================================
void Init_uart()
{
SCON = 0x50;
TI = 0x00;
TMOD = 0x20;
TL1 = 0x00;
TH1 = 0xF3; //12M 2400
TR1 = 0x01;
}
//--------------------------------------
void init_i2c()
{
EA=1;
ES1=1;
S1CON=ENABLE_I2C;
S1ADR=SLA_R;
}
//=======================================
//---------------------------------------
//* transmit a char*/
void transc (char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
//---------------------------------------
//---------------------------------------
void transreg(char c)
{
int tmp;
int tmpc;
tmp=c;
tmp=(tmp>>4)&0x0F;
ACC=tmp;
tmpc=hextoascii(tmp);
transc(tmpc);
tmp=c&0x0F;
tmpc=hextoascii(tmp);
transc(tmpc);
transs("\n\r");
}
//-----------------------------------------
int hextoascii(int hex2)
{
int tmp1;
tmp1=hex2;
if (tmp1 >= 0x0A )
{
tmp1 += 0x37;
}
else
{
tmp1+=0x30;
}
return tmp1;
}
//-------------------------------------------
/* transmit a string */
void transs(char *s)
{
while (*s!='\0')
{
SBUF=*s;
while(!TI);
TI = 0 ;
s++;
}
}
//-------------------------------------------
void Compare_Data()
{
unsigned int data i ;
unsigned char idata compare_Flag = 0;
for(i=0;i<4;i++)
{
if(DATA1[i]==SDATA[i])
{
compare_Flag =0;
//transreg(DATA1[i]);
//transreg(SDATA[i]);
}
else
{
//transreg(DATA1[i]);
//transreg(SDATA[i]);
compare_Flag =1;
}
}
if(!compare_Flag)
{
transs("-----ok!-----\n\r");
FReceive_Done = 0;
}
else
{
transs("-----fail!-----\n\r");
FReceive_Done = 0;
}
}
//--------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -