Hallo, Ich will 3 Taster über Polling ständig abfragen,weiss leider aber nicht wie ich des in Meiner Schaltung realisiere? Bitte um Hilfe.
Wo liegt nun das Problem? In der Schaltung oder in der Programmierung?
In der Schaltung! :-) programmiert hab ich des mit jb,taster1,....
Die Taster kommen an den Port deiner Wahl, die andere Seite an GND. Wenn du das über Port0 machst, brauchst du zusätzlich Pull-Ups. Dann dürfte das funzen... Ralf
Ich hab des jetzt am Port 1.0 - 1.2 angeschlossen brauch ich dort auch Pull ups???
Alle Ports beim 8051er haben Pull-Ups intern (~100k, wenn ich nicht irre). Außer Port0. Man braucht auch keine Datenrichtung umschalten, da die Pins open-drain sind. Kaputt machen kann man am Controller durch das Prinzip auch so schnell nix. Einfach mit dem Schalter/Taster vom Portpin gegen Masse schalten und gut ist. Bei der Abfrage dann nur noch darauf achten, dass der Taster "low-aktiv" schaltet. Also: Pin = 0(low) entspricht "Taster gedrückt" OK!?
Bei den 8051ern ist es so, die Pins, welche als Eingang genutzt werden, dürfen nicht zuvor per Software auf L gesetzt werden. Nach dem RESET sind alle Pins automatisch auf H gesetzt, können als als Eingang benutzt werden, Ausnahme meist Port 0, Typabhängig. Wenn man sich nicht sicher ist, sollte man das Augangslatch zuvor auf H setzen: P1_0 = 1; oder P1 = 0xFF; Dann kann der Pin/Port ohne Probleme als Eingang genutzt werden. Gruß Matthias
Wie geht dann die Polling abfrage genau? Code...? geht die so? jb Taster1,Unterprogramm1 jb Taster2,UnterProgramm2 jb Taster3,UnterProgramm3
Ben wrote: > Wie geht dann die Polling abfrage genau? Code...? > > geht die so? jb Taster1,Unterprogramm1 > jb Taster2,UnterProgramm2 > jb Taster3,UnterProgramm3 Nein, gedrückt ist ja 0V, also Bit = 0, also JNB ... Bringt aber in der Regel nicht das, was man will (Aktion nur einmalig beim Drücken, nicht solange man drückt immer und immer wieder) und prellt wie sau. Sauber ist es daher mit Timerinterrupt. Peter
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.