Tastatur auf LCD anzeigen

hier daswasichbis jetzt geschafft habe :
ob das alles korrekt ist keine Ahnung aber es tut was ich will bis jetzt

#include <LiquidCrystal.h>

define RS 8

define E 9

define D4 4

define D5 5

define D6 6

define D7 7

define COLS 16

define ROWS 2

LiquidCrystal lcd(RS,E, D4, D5, D6, D7);
int q11 = A0;// 8870 pin 11
int q12 = A1;// 8870 pin 12
int q13 = A2;// 8870 pin 13
int q14 = A3;// 8870 pin 14
int q15 = A4;// 8870 pin 14
int DTMFA = 2;// DTMF auswertung für A
int DTMFB = 3;// DTMF auswertung für B
int DTMFelse = A5;//DTMF auswertung für alle anderen DTMF Werte
int qr11 ; //Variable für read für 8870 Ausgänge mit Kontrolle q15
int qr12 ; //Variable für read für 8870 Ausgänge mit Kontrolle q15
int qr13 ; //Variable für read für 8870 Ausgänge mit Kontrolle q15
int qr14 ; //Variable für read für 8870 Ausgänge mit Kontrolle q15
int qr15 ; //Variable für read für 8870 Ausgänge mit Kontrolle q15
const int DTMF_1 = 1;
const int DTMF_2 = 2;
const int DTMF_3 = 3;
const int DTMF_4 = 4;
const int DTMF_5 = 5;
const int DTMF_6 = 6;
const int DTMF_7 = 7;
const int DTMF_8 = 8;
const int DTMF_9 = 9;
const int DTMF_0 = 0;
void setup() {
Serial.begin(9600);
pinMode(q11,INPUT);
pinMode(q12,INPUT);
pinMode(q13,INPUT);
pinMode(q14,INPUT);
pinMode (q15,INPUT);
pinMode(DTMFA,OUTPUT);
pinMode(DTMFB,OUTPUT);
pinMode(DTMFelse,OUTPUT);
digitalWrite(DTMFA, 0) ;
digitalWrite(DTMFB, 0) ;
digitalWrite(DTMFelse, 0);
lcd.begin(16, 1);
lcd.setCursor(1,0);
lcd.print("Betriebsbereit");

}
void loop () {
qr11=digitalRead(q11);
qr12=digitalRead(q12);
qr13=digitalRead(q13);
qr14=digitalRead(q14);
qr15=digitalRead(q15);
// Auswertung DTMF-A
if ((qr11 == 1) && (qr12 == 0) && (qr13 == 1) && (qr14 == 1) && (qr15 == 1)) {
digitalWrite(DTMFA, 1) ;
digitalWrite(DTMFB, 0) ;
digitalWrite(DTMFelse, 0) ;
lcdout_A();
}
if ((qr11 == 0) && (qr12 == 1) && (qr13 == 1) && (qr14 == 1)&& (qr15 == 1)) {
digitalWrite(DTMFB, 1);
digitalWrite(DTMFA, 0) ;
digitalWrite(DTMFelse, 0) ;
Serial.print(digitalRead(3));
lcdout_B();
}
if ((qr11 == 1) && (qr12 == 0) && (qr13 == 0) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-1
digitalWrite(DTMFelse, 1) ;
lcd.print(DTMF_1) ;
}
if ((qr11 == 0) && (qr12 == 1) && (qr13 == 0) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-2
digitalWrite(DTMFelse, 1) ;
lcd.print(DTMF_2) ;

}
if ((qr11 == 1) && (qr12 == 1) && (qr13 == 0) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-3
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 0) && (qr13 == 1) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-4
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 1) && (qr12 == 0) && (qr13 == 1) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-5
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 1) && (qr13 == 1) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-6
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 1) && (qr12 == 1) && (qr13 == 1) && (qr14 == 0)&& (qr15 == 1)){ // DTMF-7
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 0) && (qr13 == 0) && (qr14 == 1)&& (qr15 == 1)){ // DTMF-8
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 1) && (qr12 == 0) && (qr13 == 0) && (qr14 == 1)&& (qr15 == 1)){// DTMF-9
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 1) && (qr13 == 0) && (qr14 == 1)&& (qr15 == 1)){ // DTMF-0
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 1) && (qr12 == 1) && (qr13 == 0) && (qr14 == 1)&& (qr15 == 1)){// DTMF-*
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 0) && (qr13 == 1) && (qr14 == 1)&& (qr15 == 1)){// DTMF-#
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 1) && (qr12 == 1) && (qr13 == 1) && (qr14 == 1)&& (qr15 == 1)){// DTMF-C
digitalWrite(DTMFelse, 1) ;
}
if ((qr11 == 0) && (qr12 == 0) && (qr13 == 0) && (qr14 == 0)&& (qr15 == 1)){// DTMF-D
digitalWrite(DTMFelse, 1) ;
}}
void lcdout_A(){
lcd.clear();
lcd.begin(16, 1);
lcd.setCursor(3,2);
lcd.print("Amtsholung");
delay(2000);
lcd.clear();
lcd.print("Warte Rufnr.");
void setup ();
}
void lcdout_B(){
lcd.clear ();
lcd.begin(16, 1);
lcd.setCursor(3,2);
lcd.print("Aufgelegt");
void setup ();
delay(1500);
lcd.clear();
lcd.begin(16, 1);
lcd.setCursor(1,2);
lcd.print("Betriebsbereit");
void setup ();