Source: https://www.microchip.com/content/dam/mchp/documents/MCU08/ApplicationNotes/ApplicationNotes/Getting_Started_With_I2C_Using_MSSP_onPIC18_90003281A.pdf