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.

62 lines
3.8 KiB

  1. # HD44780 LCD ディスプレイ
  2. <!---
  3. original document: 0.9.43:docs/feature_hd44780.md
  4. git diff 0.9.43 HEAD -- docs/feature_hd44780.md | cat
  5. -->
  6. これは Peter Fleury の LCD ライブラリの統合です。このページは基本について説明します。[詳細なドキュメントについてはこのページをご覧ください](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
  7. HD44780 ディスプレイのサポートを有効にするには、キーボードの `rules.mk``HD44780_ENABLE` フラグを yes に設定します。
  8. ## 設定
  9. ディスプレイで使用されるピンとディスプレイの行と列の数を、キーボードの `config.h` に設定する必要があります。
  10. HD44780 のラベルが付いたセクションのコメントを外し、必要に応じてパラメータを変更します。
  11. ````
  12. /*
  13. * HD44780 LCD ディスプレイ設定
  14. */
  15. #define LCD_LINES 2 //< ディスプレイの表示行数
  16. #define LCD_DISP_LENGTH 16 //< ディスプレイの行ごとの表示文字数
  17. #define LCD_IO_MODE 1 //< 0: メモリマップモード 1: IO ポートモード
  18. #if LCD_IO_MODE
  19. #define LCD_PORT PORTB //< LCD 行のためのポート
  20. #define LCD_DATA0_PORT LCD_PORT //< 4ビットデータビット 0 のポート
  21. #define LCD_DATA1_PORT LCD_PORT //< 4ビットデータビット 1 のポート
  22. #define LCD_DATA2_PORT LCD_PORT //< 4ビットデータビット 2 のポート
  23. #define LCD_DATA3_PORT LCD_PORT //< 4ビットデータビット 3 のポート
  24. #define LCD_DATA0_PIN 4 //< 4ビットデータビット 0 のピン
  25. #define LCD_DATA1_PIN 5 //< 4ビットデータビット 1 のピン
  26. #define LCD_DATA2_PIN 6 //< 4ビットデータビット 2 のピン
  27. #define LCD_DATA3_PIN 7 //< 4ビットデータビット 3 のピン
  28. #define LCD_RS_PORT LCD_PORT //< RS 線のためのポート
  29. #define LCD_RS_PIN 3 //< RS 線のためのピン
  30. #define LCD_RW_PORT LCD_PORT //< RW 線のためのポート
  31. #define LCD_RW_PIN 2 //< RW 線のためのピン
  32. #define LCD_E_PORT LCD_PORT //< Enable 線のためのポート
  33. #define LCD_E_PIN 1 //< Enable 線のためのピン
  34. #endif
  35. ````
  36. 他のプロパティを設定する必要がある場合は、それらを `quantum/hd44780.h` からコピーし、`config.h` に設定することができます。(訳注)`quantum/hd44780.h` は `drivers/avr/hd44780.h` の間違いではないかと思われます。
  37. ## 使用法
  38. ディスプレイを初期化するには、以下のパラメータのうちの1つを使って `lcd_init()` を呼び出します:
  39. ````
  40. LCD_DISP_OFF : ディスプレイオフ
  41. LCD_DISP_ON : ディスプレイオン、カーソルオフ
  42. LCD_DISP_ON_CURSOR : ディスプレイオン、カーソルオン
  43. LCD_DISP_ON_CURSOR_BLINK : ディスプレイオン、点滅カーソル
  44. ````
  45. これはキーボードの `matrix_init_kb` またはキーマップの `matrix_init_user` で行うのが最適です。
  46. 使用前にディスプレイをクリアすることをお勧めします。
  47. そのためには、`lcd_clrscr()` を呼びます。
  48. ディスプレイに何かを表示するには、最初に `lcd_gotoxy(column, line)` を呼びます。最初の行の先頭に移動するには、`lcd_gotoxy(0, 0)` を呼び出し、その後 `lcd_puts("example string")` を使って文字列を出力します。
  49. ディスプレイを制御することができる、より多くのメソッドがあります。[詳細なドキュメントについてはリンクされたページをご覧ください](http://www.peterfleury.epizy.com/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)