You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
2.8 KiB

  1. # HD44780 LCD Displays
  2. This is an integration of Peter Fleury's LCD library. This page will explain the basics. [For in depth documentation visit his page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
  3. You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag in your keyboards `rules.mk` to yes.
  4. ## Configuration
  5. You will need to configure the pins used by your display, and its number of lines and columns in your keyboard's `config.h`.
  6. Uncomment the section labled HD44780 and change the parameters as needed.
  7. ````
  8. /*
  9. * HD44780 LCD Display Configuration
  10. */
  11. #define LCD_LINES 2 //< number of visible lines of the display
  12. #define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
  13. #define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
  14. #if LCD_IO_MODE
  15. #define LCD_PORT PORTB //< port for the LCD lines
  16. #define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
  17. #define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
  18. #define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
  19. #define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
  20. #define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
  21. #define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
  22. #define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
  23. #define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
  24. #define LCD_RS_PORT LCD_PORT //< port for RS line
  25. #define LCD_RS_PIN 3 //< pin for RS line
  26. #define LCD_RW_PORT LCD_PORT //< port for RW line
  27. #define LCD_RW_PIN 2 //< pin for RW line
  28. #define LCD_E_PORT LCD_PORT //< port for Enable line
  29. #define LCD_E_PIN 1 //< pin for Enable line
  30. #endif
  31. ````
  32. Should you need to configure other properties you can copy them from `quantum/hd44780.h` and set them in your `config.h`
  33. ## Usage
  34. To initialize your display, call `lcd_init()` with one of these parameters:
  35. ````
  36. LCD_DISP_OFF : display off
  37. LCD_DISP_ON : display on, cursor off
  38. LCD_DISP_ON_CURSOR : display on, cursor on
  39. LCD_DISP_ON_CURSOR_BLINK : display on, cursor on flashing
  40. ````
  41. This is best done in your keyboards `matrix_init_kb` or your keymaps `matrix_init_user`.
  42. It is advised to clear the display before use.
  43. To do so call `lcd_clrscr()`.
  44. To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
  45. There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)