Szeretnék közzé tenni egy általam fejlesztett HD44780 alapú LCD drivert, amely jól használható
AVR mikrovezérlőkön.
Egyszerű driver AVR -procikra,
HD44780 kompatibilis LCD kijelzőkhöz
Szeretnék közzé tenni egy általam fejlesztett HD44780 alapú LCD drivert, amely AVR mikrovezérlőkön használható.
Egy időben sok idő töltöttem azzal, hogy LCD drivert keresgéltem AVR procira a neten. Igaz ami igaz, olyat ami könnyen működésre birható lett volna, meg a CGRAM-ot is kezeli, nem találtam. Ekkor kezdtem el fejleszteni a saját verziót.
Mint tudjuk a HD44780 alapú LCD kijelzők vezérelhetők 4 -és 8 bites módban is.
Ez a driver 4 bites módban való vezérlésre alkalmas, ezért mindössze 6 db I/O-ra van szükség az LCD vezérléséhez. Az I/O bekötésekhez lásd a simple_driver.h állományt. Továbbá itt állítható át szükség szerint a megfelelő I/O.
A driver csak írni tud a kijelzőre, következésképp az LCD:RW lábat GND-re kell kötni.
Kezeli a CGRAM-ot, így saját karakterek megjelenítésére, animálására is használható. 8 karakteres "vertical scroll"-t is tud.
A mellékletben található példaprogramok ATmega8 AVR-en voltak sikeresen tesztelve.
Fontos megemlíteni, hogy a példaprogik tesztelésénél az AVR belső 8MHz-es oszcillátoráról müködött. Eszerint vannak az időosztások számolva !
A main2.c példaprogram "vertical scroll" -ra, a main.c pedig saját karakterek egyszerű animálására mutat példát.
A driver C nyelven lett fejlesztve (avr-gcc). Az általa nyújtott API a simple_driver.c állományban van leírva.
Használat előtt mindenképp olvasd el a mellékletben található OLVASSEL állományt !
Az LCD kijelzők vezérléséhez szükséges alapismeretekről itt olvashatsz.
Használható API:
void lcd_delay (unsigned int p);
void lcd_toggle_E ();
void lcd_cls ();
void lcd_home ();
void lcd_control (uint8_t disonoff, uint8_t curonoff, uint8_t curblink);
void lcd_set_CGRAM_addr (uint8_t addr);
void lcd_set_DDRAM_addr (uint8_t mesto);
uint8_t lcd_put_custom_char (uint8_t charnum, const uint8_t * values);
void lcd_vertical_scroll (const void *__custom_chars, uint8_t __NUM,
uint16_t __verti_delay_ms, uint16_t __horiz_delay_ms,
uint8_t ddram_addr, uint8_t __clear);
void lcd_clear_CRGAM ();
void lcd_putch (uint8_t data);
void lcd_putstr (const uint8_t * data, uint8_t addr);
void lcd_init (void);
gtk, 2007.06.11
--
Az első változat után több módosítás történt.
Utolsó módosítás: 2011.02.04
A driver letölthető : >>link<<
Értékeléshez bejelentkezés szükséges!