The I2C protocol bus is two bi-directional wires, serial data (SDA) and serial clock (SCL), that transmit information between the devices connected to the bus. Each device has a recognized unique address (i.e. microcontrollers, LCD driver or keyboard interface) and operates as either a transmitter or receiver, depending on the function of the device.
Obviously an LCD driver is only a receiver, whereas micro-controllers can both receive and transmit data. In addition to transmitters and receivers, devices can also be considered as masters or slaves during data transfers.
The device that initiates a data transfer on the bus and generates the clock signals to permit that transfer is called the master. At that time, any device addressed will be considered a slave. I have used PORTC (RC3 and RC4) on the PIC18F452 as serial clock (SCL) and serial data (SDA) connection respectively.
I2C - this is a Serial Interface that uses only two signals to serially exchange data with another device.
SDA - All data sent from one device to another goes on this line or bus. This signal is called as Serial Data.
SCL - It is generated by the master device and controls when data is sent and read. The signal can be forced low to prevent clock occurrence. It is done by a device that has become too busy to receive more data. This signal is called as Serial Clock.