📄 24c02.c
字号:
#include "pic.h"
#define uint unsigned int
#define uchar unsigned char
uchar num1,num2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void I2Cinit(void) //I2C初始化
{
SSPSTAT=0X00;
SSPCON=0X38;
SSPADD=9;
}
void I2C_WR(void) //I2C数据写入
{
SEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0XA0;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0X03;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0Xc0;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0XF9;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
}
PEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
}
}
}
}
}
}
void I2C_RD(void) //I2C数据写入读出
{
SEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0XA0;
delay(1) ;
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0X03;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
RSEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
SSPBUF=0XA1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
RCEN=1;
delay(1);
if(SSPIF==1)
{
delay(1);
num1=SSPBUF;
ACKEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
RCEN=1;
delay(1);
if(SSPIF==1)
{
delay(1);
num2=SSPBUF;
ACKEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
PEN=1;
delay(1);
if(SSPIF==1)
{
SSPIF=0;
}
}
}
}
}
}
}
}
}
}
}
void dsp(void) //数码管显示
{
PORTB&=0XFC;
PORTB|=0X01;
PORTD=num1;
delay(2);
PORTB&=0XFC;
PORTB|=0X02;
PORTD=num2;
delay(2);
}
void main()
{
TRISC=0X18;
TRISB=0X00;
TRISD=0X00;
PORTB=0X00;
PORTD=0X00;
RB3=1;
I2Cinit();
I2C_WR();
delay(50);
I2C_RD();
while(1)
{
dsp();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -