void START() { P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data P1 &= ~(1<<6); //P1.6 = SCL Clock } void Adresse() { //Initialisierung //P1 &= ~(1<<7); //P1.7 = SDA Data //P1 &= ~(1<<6); //P1.6 = SCL Clock //1. Takt Adresse: 0 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock warte(1); P1 &= ~(1<<6); //P1.6 = SCL Clock warte(1); //2. Takt Adresse: 01 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data //3. Takt Adresse: 010 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //4. Takt Adresse: 0100 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock //warte(1); P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //5. Takt Adresse: 01000 0 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //6. Takt Adresse: 0100 00 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //7. Takt Adresse: 0100 000 //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //8. Takt Adresse: 0100 0000 SDA->1 = Lesen SDA->0 = Schreiben //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //9. Takt Adresse: 0100 0000 1 Acknowldge bit P1 |= 1<<7; //P1.7 = SDA Data warte(1); P1 |= 1<<6; //P1.6 = SCL Clock if ((P1 & (1<<7)) == 0) { printf ("Alles OK - ACKN ist OK"); } if ((P1 & (1<<7)) == 1) { printf ("Fehler - ACKN "); } P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data } void DATA() { //Initialisierung //P1 &= ~(1<<7); //P1.7 = SDA Data //P1 &= ~(1<<6); //P1.6 = SCL Clock //1. Takt Adresse: 1 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data warte(1); //2. Takt Adresse: 11 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data //3. Takt Adresse: 100 //P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //4. Takt Adresse: 1111 //P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //5. Takt Adresse: 1111 1 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data //6. Takt Adresse: 1111 11 //P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock //P1 &= ~(1<<7); //P1.7 = SDA Data //7. Takt Adresse: 1111 111 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data //8. Takt Adresse: 1111 1111 P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data // 9. Takt Adresse: 1111 1111 1 Acknowldge bit P1 |= 1<<7; //P1.7 = SDA Data warte(1); P1 |= 1<<6; //P1.6 = SCL Clock if ((P1 & (1<<7)) == 0) { printf ("Alles OK - ACKN ist OK \n"); } if ((P1 & (1<<7)) == 1) { printf ("Fehler - ACKN \n"); } P1 &= ~(1<<6); //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data } void STOP () { //P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<7; //P1.7 = SDA Data P1 |= 1<<6; //P1.6 = SCL Clock P1 &= ~(1<<7); //P1.7 = SDA Data P1 |= 1<<7; //P1.7 = SDA Data }