4x4 Tastatur und LCD-Anschluss an einem µC-Port ?

Moin!

Ich überlege gerade, wie ich mir am leichtesten eine kleine "Fernbedienung" bastle, die über RS232 Daten auf einem 2-zeiliges Display anzeigt und Steuerkommandos von einer 4x4 Matrixtastatur zurücksendet. Ich wollte dafür einen Atmel AT90s2313 verwenden. Der hat einen Port mit 7Pins (PortD) und einen Port mit 8Pins (PortB). Vom PortD gehen 2 Pins für RS232 drauf.

Kann ich irgendwie den PortB für die Ansteuerung des Displays (8Bit Datenleitung) UND für die Matrixtastatur verwenden? Ich meine, das Display anzusteuern ist ja kein Problem, das Enable-Signal würde ich entsprechend an den anderen Port mit dranpacken. Aber wie verhindere ich, dass ein Tastendruck auf der Tastatur (oder gedrückt halten) die Datenübertragung zum Display stört?

Hat jemand sowas schon mal gemacht und kann mir ggf. einen Tipp geben?

MfG, Maik Schmidt

Reply to
Maik Schmidt
Loading thread data ...

Maik Schmidtschrieb: "

Display im 4bit-Modus betreiben.

Dirk

Reply to
Dirk Ruth

Hallo Maik,

unter Atmels Appnotes gibt es paar Anregungen:

formatting link
formatting link
formatting link

Für das Display gehen im 4bit-Modus schon 6 (oder 7, wenn du Daten zurücklesen willst) drauf, 2 für RS232 - da bleiben noch 7 für die Tasten. Also eine zuwenig für die schaltung nach AppNote. Man könnte die Ausgabe für die Zeilen über einen 1-aus-4-Decoder realisieren, da wäre dann eine Leitung übrig. Der Aufwand rechtfertigt dann schon fast einen größeren µC mit ausreichend I/O-Pins.

Für die gemeinsame Belegung LCD und Tasten fällt mir nichts ein - außer multiplexen und BEIDE Gerätschaften vom µC getrennt abfragen bzw. ansprechen. Dann aber doch lieber einen Mega8.

Thilo

Maik Schmidt schrieb:

--

formatting link

Reply to
Thilo Gläser

Und dann noch Dioden in die Leitungen die mit dem Display geteilt werden einbauen so dass beim gleichzeitigem drücken von 2 tasten keine Datenleitungen kurzgeschlossen werden können.

--
MFG Gernot
Reply to
Gernot Fink

Dirk Ruth schrieb:

Auch da würden mir 2 Pins fehlen. 8 für Matrix + 7 für Display + 2 für RS232...

MFG, Maik

Reply to
Maik Schmidt

Wie jemand anderes schron schrieb: Eine Seite der Matrix mit auf die Display-Datenleitungen, durch Dioden entkoppelt.

Hergen

Reply to
Hergen Lehmann

"Maik Schmidt" schrieb im Newsbeitrag news: snipped-for-privacy@individual.net...

So lange ENABLE vom Diaply nicht aktiv ist, ist egal was an den anderen Displayleitungen passiert. Wenn ein Port-Eingang einen PullUp-Widerstand hat (ggf. eingebaut), und eine Taste ihn ueber eine Diode mit einem anderen Port-Ausgang verbindet, kann der Port-Eingang nur auf LOW gezoogen werden, wenn dieser andere Ausgang auf LOW ist und nicht HI ist. +5V | PullUp | In --+--Taste--|>|-- Ausgang (muss LOW sein damit Schaltung Effekt hat)

Also wuerde ich 2 Reihen a 8 Tasten nehmen und so verdrahten:

PB0 -- RS232 PB1 -- RS232 PB2 -- Display ENABLE PB3 -- Display C/D PB4 -- Tastenreihe 1 PB5 -- Tastenreihe 2

PD0 -- Datenleitung zum Display, zu einer Taste nach PB5, zu einer Taste nach PB4 PD1 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD2 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD3 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD4 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD5 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD6 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4 PD7 -- Datenleitung zum Dispaly, zu einer Taste nach PB5, zu einer Taste nach PB4

GND -- Display R/W

So lange also PB4 und PB5 HIGH sind, kannst du mit dem Display reden. Lege PB4 und danach PB5 auf LOW und alle PD auf HI um Tasten zu lesen.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

Nein, du hast 2 übrig. Du brauchst nur 4 für die Matrix. Die anderen

4 kannst du vom Display nehmen. Mit Dioden entkoppeln.

DISPLAY ---------- 4x4 Matrix | | | | x-|-|-|--|

Reply to
Axel Schwenke

Yup.

(Schnipp) Eine gute Idee. Da ich das Busy-Flag nicht mehr auslesen könnte, würde ich zwar durch sicherheitshalber zu groß gesetzte Warteschleifen ein wenig Performance verlieren, aber das dürfte sich nicht groß auswirken...

MfG, Maik

Reply to
Maik Schmidt

Dort sind die Leitungen zur Tastaturmatrix und von dieser zurück (je 4) über 2k7Ohm Widerstände geführt. Wenn ich jetzt anstatt der 330Ohm Widerstände zur LED-Anzeige entsprechend Dioden zum Display verwende, müsste ich doch, wenn ich Display und Tastatur abwechseln anspreche, auch hinkommen?

MfG, Maik

Reply to
Maik Schmidt

"Maik Schmidt" schrieb im Newsbeitrag news: snipped-for-privacy@individual.net...

Du kannst auch das Busy-Flag ausleesen:

PB6 -- Display R/W

Im 4-bit Modus spart man Anschluesse, wenn es notwendig sein sollte. Bisher hat der uC aber genug, kann man sich den 4 bit Mode also sparen.

--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
 Click to see the full signature
Reply to
MaWin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.