Yo,Mosfet ist natürlich auch ok bzw. besser.
War nur nen Gedankengang.


Zu Debouncet:

Das im Beispielcode im Wiki kein Debounce oder ein Equivalent genommen wird liegt daran das es dort nicht nötig ist.
Die Led geht dort an sobald der Pegel an dem Port mit dem Taster wechselt.


In dienemBeispiel willst du Tastendrücke zählen und wenn das programm schnell reagiert dann kann es sein das ein Tastenprellen doppelt gezählt wird.


Ein einfaches Programm zeigt wie fix das geht.(Nur das wesentliche und übersichtlich zum Verständnis)

Do
Locate 1,1
LCD X
If Pind.0 = 0 then Gosub Taste
Loop

:Taste
x = x +1
If pind.0 = 0 then Goto Taste
Return

Die vorletzte Zeile soll warten bis die Taste wieder losgelassen wird.
Prellt die Taste dann wird uu. 2-3x gezählt obwohl nur einmal gedrückt wurde.







Was den Rest angeht :

Ich habe jetzt wenig übersicht bei deinen Codeschnipseln um wirklich durchzusteihen was du machst.

Ein Tip da du auch lange Namen nutzt.

Zeilenlabels und Variablennamen können zwar fast beliebig lang sein aber nur die ersten 32 Zeichen werden ausgewertet.

zb.
"Spannungcurr1fuerneunenwertinunterprogram1"
und
"Spannungcurr1fuerneunenwertinunterprogram2"
werden vom Compiler beide als
"Spannungcurr1fuerneunenwertinunt "
gewertet.
Im Zweifelsfalle hilft es bei vielen langen Variablennamen eine eindeutige durchlafende Nummer an den anfang der Variablen zu legen.
zb.

01Eingang
02Ausgang
03Merker
04Blabla1
05blabla2
06Spannungcurr1fuerneunenwertinunterprogram1
07Spannungcurr1fuerneunenwertinunterprogram2
usw.

Wie gesagt,ist nur nen Vorschlag.
Jeder hat seinen eigenen stil oder entwickelt ihn sich noch.

Ansonsten:

Ich weiß das es verwirrend ist eine neue Sprachen zu lernen also keine Panik.
Das gibt sich mit der Zeit.