Forum: Mikrocontroller und Digitale Elektronik LCD an PB0-PB7?


von Markus Krötz (Gast)


Lesenswert?

Hallo,

ich habe eine kurze, aber wohl einfache Frage.
Was ist die beste Möglichkeit an meinen ATmega16 einen LCD
anzuschließen? Welche Ports sind geeignet?

Im AVR-Tutorial werden die Ports PD0-PD7 verwendet, aber warum gerade
die?

Macht das irgendeinen Unterschied, wenn ich das LCD an PB0-PB7 oder an
PA0-PA7 anschließe?

Grüßle und vielen Dank

Markus

von crazy horse (Gast)


Lesenswert?

erstmal ist es wurscht. An welchen Port DU es letztendlich hängst, kommt
drauf an, auf welche Sonderfunktionen der Ports du in deiner jeweiligen
Schaltung verzichten kannst.

von Markus Krötz (Gast)


Lesenswert?

Vielen Dank crazy horse. Wo gibts denn ne kurze Beschreibung, welche
Sonderfunktionen die einzelnen Ports bieten? Und was eignet sich dann
für das LCD wohl am besten?

von jochen (Gast)


Lesenswert?

Hallo Markus,

Beschreibung der Sonderfunktionen der Pins findest Du, wie solls auch
anderst sein im Datenblatt ;-). (Hab keins vom mega16 da sonst würd ich
auch nachschauen)
Was die eignung angeht ist es wie crazy geschrieben hat davon abhängif
was Du noch nutzen willst daher ist keine allgemeine aussage möglich.

Kurzes Bsp. vom mega8: hier hängen z.B. auf dem PORTD das USART und die
externen Interrupts. auf dem PORTC hängen die A/D Wandler und auf PORTB
die Eingänge für einen externen Oszilator bzw das ISP-Interface.

Je nach dem wie die Pins beim mega16 nun belegt sind musst Du halt
schauen welche Sonderfunktionen Du nicht brauchst und da hänst Du Dein
Diplay ran.

Viel Spaß, der Jochen

von crazy horse (Gast)


Lesenswert?

Ausnahmsweise!
Port A: A/D-Wandler
PORT B: SPI, Analog-Komperator
PORT C: JTAG und I2C
PORT D: UART, ext. Interrupts, Timer1 OCR und ICP

ist nicht vollständig, für den Überblick reichts aber.
Wenn du nun A/D-Wandler,SPI, UART und I2C benutzen möchtest, hast du
ein kleines Problem mit dem Anschluss des LCD. Aber selbst dann lässt
sich was machen, es schreibt dir niemand vor, ein LCD an einen
kompletten Port zu hängen. Theoretisch kannst du jeden Pin einzeln
irgendwo anschliessen, dabei bekommst du aber graue Haare beim
Programmieren, fertige Routinen kann man natürlich auch nicht benutzen.

Einen Ausweg gibts aber: zumindest den Datenbus des LCD sollte man
zusammen in einem nibble lassen, die Steuerleitungen (RS, RW und E )
kann man verteilen, das erfordert dann nur geringe Nacharbeit am
Programm. Und nun: viel Spass!

von jochen (Gast)


Lesenswert?

Oder man verwendet ein schieberegister oder einen I2C nach 8bit
Wandler(PCF8574) dann brauchst Du nur zwei Port-Pins am uC

Gruß Jochen

von Markus Krötz (Gast)


Lesenswert?

Ok, vielen Dank Euch beiden.
Ich nehme dann wohl PORT B, das erscheint mir am sinnvollsten.

Gruß

Markus

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
Noch kein Account? Hier anmelden.