Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Pic16f877a i2c software

Status
Not open for further replies.

ahmet2004

Member level 3
Joined
Jan 1, 2004
Messages
63
Helped
3
Reputation
6
Reaction score
2
Trophy points
1,288
Activity points
383
pic16f877a i2c

Pic16f877a i2c


#Master#
#include <16f877a.h>
#fuses NOWDT,HS, NOPROTECT, BROWNOUT, NOPUT, NODEBUG, NOLVP
#use delay(clock=20000000)
#use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3, FORCE_HW)

#byte PORTD = 0x08

void main()
{
set_tris_D(0xb11111111);
OUTPUT_d(0xff);
delay_ms(250);

while(1)
{
i2c_start();
delay_ms(100);
i2c_write(0xa0);
delay_ms(100);
i2c_write(PORTD);
delay_ms(100);
i2c_stop();
}
}

#Slave#
#include <16f877a.h>
#use delay(clock=20000000)
#fuses NOWDT,HS, NOPROTECT, BROWNOUT, NOPUT, NODEBUG, NOLVP

#use i2c(SLAVE, SDA=PIN_C4, SCL=PIN_C3, address=0xa0, FORCE_HW)
#use rs232(baud=9600,parity=N,bits=8,xmit=PIN_C6,rcv=PIN_C7)

#byte PORTD = 0x08

char DEGER2;
int DEGER1;

#INT_SSP
void ssp_interupt ()
{
//i2c_start();
DEGER2 = i2c_read();
delay_ms( 100 );
DEGER1 = i2c_read();
delay_ms( 100 );
//i2c_stop();
}

void main()
{
set_tris_D(0x00);

enable_interrupts(GLOBAL);
enable_interrupts(INT_SSP);
DEGER1 = 0;

while(1)
{
OUTPUT_D(DEGER1);
printf("DEGER1: %x\r\n",DEGER1);
printf("DEGER2: %02x\r\n\r\n",DEGER2);
delay_ms( 100 );
}

}


Projes:
**broken link removed**
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top