So, hier ist der fertige und korrigierte Code.

Die 3x4 Tastatur kann man wie im Schaltplan anschliessen.

Ich habe das Programm so geschrieben, dass der PIC zwichen den Tasten 1, 2 und 3 und den Zeilen 2, 3 und 4 unterscheiden kann.
Ich brauche halt nicht alle 12 Tasten.
Wer sie doch braucht, muss nur den Code der ersten Zeile Kopieren und die Pins ändern.

Der Code ist schwar nicht sehr "sauber", aber ich hoffe man kann ihn verstehen und es nützt ja vieleicht auch noch jemanden der auch eine Tastatur an einen PIC anschliessen will.

Code:
#include <pic1687x.h>
#define PORTBIT(adr, bit)	((unsigned)(&adr)*8+(bit))
//-------------------------------------------------------------------------

unsigned int zahl;		

void main (void) 
{ 
    ADCON1=6; // PortA Pins als digital definiert 
    TRISA = 0x00;             //Port A  = Ausgang mit LEDs
    TRISB = 0b00011111;       //RB0 - RB4 = Eingänge, RB5 - RB7 = Ausgänge 
                              //RB0 brauchen wir im Moment nicht
    PORTA = 0b00000000;
    PORTB = 0b00011110;       // RB5-RB7 auf Low  und RB1-RB4 auf High
                             //RB1 - RB4 auch mit Pull-up Wiederständen auf High
//--------------------------------------------------------------------------------                                                                                                  
//  3x4 Matrix  Tastatur 
    do{   
      zahl=0; 
      if (RB1 == 0){  // 1, 2 oder 3.  RB5-7 werden nacheinander auf 
                            //High  gesetzt          
               
                 
               RB5=1;                   
               if (RB1==1){             //Taste=1
                   zahl=zahl+1; 
                   RB5=0;   
               }              
               else{
                   RB5=0;
                   RB6=1;
                   if (RB1==1){         //Taste=2
                       zahl=zahl+2; 
                       RB6=0;    
                   }
                   else{
                       RB6=0;
                       RB7=1;
                       if (RB1==1){     //Taste=3
                           zahl=zahl+3;
                           RB7=0;
                       } 
                   }   
               }    
        } //if (RB1==0)
        else if (RB2 == 0){     // 4, 5 oder 6  
            zahl=3;             // hier kann man den selben Code wie bei den 
                                   //Tasten 1-3 schreiben
            zahl=3+1;           //nur RB1 durch RB2 ersetzen  usw.
        }               
        else if (RB3 == 0){    // 7, 8 oder 9   das selbe wie eben 
            zahl=6;
            zahl=6+1;
        }
        else if (RB4 == 0){        //#, 0 oder *    
            zahl=10;               //10 ist eigendlich 0
        }                 
        else {                    
            PORTA = 0b00000000;   
        }  
       
       for(j=0;j<2;j++){  // wenn j=2, dann muss resetet werden um eine 
        //andere Zahl zu drücken
                          // Schutz vor nicht gewollter Tasten-Eingabe 
           
              if (zahl==1){
                  PORTA = 0b00000001;    //An dieser Stelle könnte auch ein 
                                                      //Unterprogramm starten. 
              }
              else if (zahl==2){
                  PORTA = 0b00000010;  
              }
              else if (zahl==3){
                  PORTA = 0b00000011;  
              }
              else if (zahl==4){//der Code müsste geändert werden. Im 
                      //Moment würde er das hier
                  PORTA = 0b00000100;  //Für die Tasten 4,5 und 6 ausgeben.
              }    
              else if (zahl==7){
                  PORTA = 0b00001001;  
              }
              else if (zahl==10){
                  PORTA = 0b00001010;  
              }
              else{
              PORTA = 0b00000000; 
              }              
       }
       //zahl=0;
                                                                    
   }while (1);                    //immer wiederholen 
}//()
Viele Grüsse und noch mal Danke an alle die geholfen haben,
Tornado