Hallo wie kann ich mit meinem mega16 (und asm) benutzerdefinierte zeichen aufs lcd(1*16, HD44780) bringen? MFG luxx
> wie kann ich mit meinem mega16 (und asm) benutzerdefinierte zeichen > aufs lcd(1*16, HD44780) bringen? Ich hab's zwar noch nicht gemacht, aber mit dem Kommando 'Set CG-RAM-Adress' des LCD-Befehlssatzes stellst du die gewünschte Adresse ein, danach sendest du für jedes zu definierende Zeichen 8 Bytes (Pixelzeilen), in denen die zu setzenden Pixel 1-Bits sind und die nicht zu setzenden Pixel 0-Bits. Weitere Einzelheiten erfährst du im Datenblatt des LCD-Controllers. ...
nja im datenblatt des displays(eine seite) steht fast nix. und das englische datenblatt des controllers....much fun! luxx
Beispielcode : PREPARE_BAR: ldi VALUE,0x40 rcall LCD_CMD ; CGRAM beschreiben ldi VALUE,0 rcall SEND_8TIMES ldi VALUE,0x10 rcall SEND_8TIMES ldi VALUE,0x18 rcall SEND_8TIMES ldi VALUE,0x1C rcall SEND_8TIMES ldi VALUE,0x1E rcall SEND_8TIMES ldi VALUE,0x1F rcall SEND_8TIMES ldi VALUE,0xC0 rcall LCD_CMD ret SEND_8TIMES: ldi LOOP1,8 LP1: rcall LCD_DATA subi LOOP1,1 brne LP1 ret Dieser Code schreibt in die CGRAM-Addressen 0-5 Teile einer Bargraph-Anzeige für ein LCD. Mit dem Addresse-setzen-Befehl wechselst du zwischen CGRAM und RAM. 0x40 setzt CGRAM auf 0 und wählt es aus (alle Daten gehen ins CGRAM) und 0x80 setzt DRAM auf 0 und wählt es (alle Daten gehen ins RAM). CGRAM ist folgendermaßen organisiert : 8 x 8 Bytes. Pro Zeichen 8 Bytes (jede Zeile eins). das LSB ist der Punkt rechts im Zeichen. das 5. Bit ist der linke Punkt. eine 1 macht den Punkt schwarz, eine 0 transparent.
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.