Forum: Mikrocontroller und Digitale Elektronik AVR ATtiny13 I2C PCF8574 LCD Display Ansteuerung


von Josef F. (tiny_joe)



Lesenswert?

Hallo ATtiny 13 Freunde,

in 10/2018 gab es mal diese Anfrage,
Beitrag "LCD per I2C an AtTiny13 anbinden?"
LCD per I2C an AtTiny13 anbinden?
Damals wurde jedoch keine Lösung dazu angeboten. Die Antworten damals 
waren eher entmutigend, das mit einem Tiny13 zu versuchen. Bisher hatte 
ich nur mit C-Control und C-Control Basic und Open MICRO / Macro 
programmiert.
Als AVR Assembler Anfänger hat es mich trotzdem gereizt, heraus zu 
finden ob das grundsätzlich mit dem Tiny13 möglich ist ein LCD Display 
anzusteuern.
Meine AVR Umgebung: AVR Atmel RS232 Evaluation Board 2.0 von Pollin mit 
Eigenbau extension Board, AVR Studio 4.16, PonyProg

Erfahrene AVR Assembler Programmierer haben bestimmt dafür schon 
Lösungen realisiert, leider konnte ich im Internet keine Gesamtlösung 
finden in den einschlägigen AVR Foren. Meine ersten Schritte in AVR 
Assembler und die realisierten Lösungen möchte ich hier im Forum 
vorstellen, um andere Anfänger mit dem Tiny 13 zu ermutigen, damit zu 
arbeiten. Vor wenigen Monaten dachte ich lt. den Hinweisen oben, daß es 
ev. gar nicht geht. Umso mehr war ich erstaunt, wie ich tiefer und 
tiefer in die AVR Assembler Programmierung rein kam, wie wenig Code 
Speicher eigentlich dafür benötigt wird. Nur mit 380 Code Bytes konnte 
ich es realisieren. Für erweiterte Anwendungen z.B. für Messaufgaben und 
Anzeige in einem LCD Display bleibt also noch genug Code frei.
Erklärung zu den hier gezeigten Dateien
14_4_T13_I2C_PCF_LCD_MC.asm ==> damit lassen sich LCDs  ansteuern, die 
zwischen PCF8574 und LCD Display eine Verdrahtung nach C-Control haben
15_4_MC_T13_PCF_LCD_2004.asm ==> damit lassen sich LCDs ansteuern, die 
zwischen PCF8574 und LCD Display eine Verdrahtung nach Arduino haben
20200626_1602_LCD.jpg ==> LCD 1602 mit PCF8574 und LCD Display 
Verdrahtung nach C-Control
20200619_2004_LCD.jpg ==> LCD 2004 mit PCF8574 und LCD Display 
Verdrahtung nach Arduino

viel Spass mit Tiny 13 wünscht

Joe

: Bearbeitet durch User
von c-hater (Gast)


Lesenswert?

Josef F. schrieb:

> leider konnte ich im Internet keine Gesamtlösung
> finden in den einschlägigen AVR Foren. Meine ersten Schritte in AVR
> Assembler und die realisierten Lösungen möchte ich hier im Forum
> vorstellen

Sehr gut. Selber was machen, selber lernen, das finde ich gut. Ich freue 
mich mit dir über deinen Erfolg. Du weißt jetzt wirklich, wie's 
funktioniert. Das kann dir niemand wieder nehmen. Und dieses Wissen wird 
dir auch dann helfen, wenn du später mal fremde I2C-Implementierungen 
benutzen willst oder musst und es dabei zu Problemen kommt.

von H.Joachim S. (crazyhorse)


Lesenswert?

Ich habe früher auch viel Zeit mit der sinnlosen Optimierung von 
Software verbracht. Fand ich irgendwie sportlich und eine Frage der Ehre 
- das ist auch hier so.
Am Ende kam raus, dass der Quellcode kaum noch lesbar war und freier 
Speicher, der nie benutzt wurde.

Nicht alles, was irgendwie geht ist auch sinnvoll. Das hier ist so ein 
Fall. Warum bitte sollte man an solch einen Winzling noch einen 
Portexpander anstricken statt direkt einen etwas grössenen MC?
Dazu sind deine I/Os und auch der RAM nicht mehr so dolle. Was machst du 
denn jetzt mit deinem Display?

von Stefan F. (Gast)


Lesenswert?

Das ist eine nette sportliche Programmierübung. Der praktische Nutzen 
dürfte allerdings eher gering sein, da kein Platz mehr für ein 
nützliches Anwendungsprogramm übrig ist.

von S. Landolt (Gast)


Lesenswert?

Ist dies bekannt?
1
/*  Block comment: the enclosed text is a comment, may span multiple lines. 
2
    This style of comments cannot be nested. */

von Peter D. (peda)


Lesenswert?

Hier ein älteres Beispiel mit 74HC165 als IO-Expander:
Beitrag "Zeit + Temperatur auf LCD mit AVR"

von Josef F. (tiny_joe)


Lesenswert?

Danke für 3 konstruktive Antworten, vorallem Dank an Peter für seinen 
Hinweis. Hab mir alles kopiert und bewundere die hohe Kunst Deiner 
Programmiertechnik. Von so Antworten und Hinweisen kann man wirklich was 
lernen.  Habe es bereits schnell mal durchgesehen und werde das nun 
anwenden und üben.

von Ryszard (Gast)


Angehängte Dateien:

Lesenswert?

Hi Josef F,
 thank you for your solution as my base to create software for all
attiny. I use higher CPU speed because my Attiny85 have to work a lot of
instruction.
I will stedily improve may software because i fight   with space code.
Now software consumption less than 400bytes. When I use Attiny13 i need
more for addicional code to implementing.
This is temporary solution, but usefull. I don't know German language
and i write in English.

von Josef F. (tiny_joe)


Lesenswert?

Hi Ryszard,
 thank you for your feedback and your improved code example. I am quite 
happy that my solution was a base for you to create software for all 
your attiny. I am becoming 79 this year and as a Newbie in assembler and 
AVR Controllers I was astonished last May 2020 not to find a simple 
solution for I2C LCD Display control for Attiny13 in internet. Therefore 
I provided my code example  in www.mikrocontroller.net, in order to 
encourage all ATTiny friends for using it. In the meantime I built with 
ATTinys different applications, e.g. pressure sensor for very low air 
pressure (0...100 Pa==0...10.2mmWs),  Voltage sensor and NTC-resistor 
temperature sensor, all with LCD-Display and UART-output.

wishing you the best for 2021 and further great fun with ATTinys

Drogi Ryszard, bardzo dziękuję za ważne dla mnie informacje.

 Pozdrawiam Joe

von Ryszard (Gast)


Angehängte Dateien:

Lesenswert?

Hi Josef F.,
thank you for your opinion. I'm 67 year old. On retirement time I create 
PCB  (main my hobby) by my self in garage. After i create software and 
observe how it works. I have been using a soldering iron since I 'm 
finish  13 years old
I add new software with correcting MACRO for level backlight ( 
ActiveLight).
I too wishing you the best for 2021.
Your Polish is good.
Best regards / z pozdrowieniami
Ryszard

von Josef F. (tiny_joe)


Lesenswert?

Hi Ryszard,
 thank you for your feedback and your further improved code example. Do 
you make PCB only for you own applications or do you also for others?
I have a friend here, who is a native Polnish from Gorzyce in southern 
part of Polonia. He did the translation. Unfortunately I did not learn 
your language.

Best regards    Joe

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.