Sie sind auf Seite 1von 5

#include <pic.

h>

#include "delay.c"

__CONFIG(0x3f72);

#define LC01CTRLIN 0xa0

#define LC01CTRLOUT 0xa1

#define BAUD 100

#define FOSC 4000

unsigned char data[17]={"I2C Test Program"};

int i;

void I2CWrite(void);

void WaitMSSP(void);

void I2CRead(void);

void i2c_init(void);

void serial_init(void);

void main()

DelayMs(100);

i2c_init();

serial_init();

DelayMs(20);

// I2CWrite();
DelayMs(50);

TXREG = 0x0c;

while(1)

I2CRead();

DelayMs(500);

void I2CWrite()

SEN=1;

WaitMSSP();

SSPBUF=LC01CTRLIN;

WaitMSSP();

SSPBUF=0x00;

WaitMSSP();

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

SSPBUF=data[i];

WaitMSSP();

PEN=1;
WaitMSSP();

void I2CRead()

int y;

SEN=1;

WaitMSSP();

SSPBUF=LC01CTRLIN;

WaitMSSP();

SSPBUF=0x00;

WaitMSSP();

for(y=0;y<16;y++)

RSEN=1;

WaitMSSP();

SSPBUF=LC01CTRLOUT;

WaitMSSP();

RCEN=1;

WaitMSSP();

ACKDT=1;

ACKEN=1;

PEN=1;
WaitMSSP();

TXREG=SSPBUF;

DelayMs(30);

PEN=1;

WaitMSSP();

void WaitMSSP()

while(!SSPIF);

SSPIF=0;

void i2c_init()

TRISC3=1;

TRISC4=1;

SSPCON=0x28;

SSPADD=(FOSC / (4 * BAUD)) - 1;

SSPSTAT=80;

void serial_init()

TRISC6=1;

TRISC7=1;
TXSTA=0x24;

SPBRG=64;

RCSTA=0x90;

TXIF=1;

Das könnte Ihnen auch gefallen