1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PCF8574Tを使ったLCD制御

Last updated at Posted at 2019-11-21

#概要
PCF8574Tを使ってLCDを制御する。
ライブラリの中身まで説明しているサイトが見つからなかったため覚書として記録。
Arduinoのライブラリを使わない方向け。

#参考サイト
・LCDの使い方
http://mitt.la.coocan.jp/pic/pic5_17.html
http://elm-chan.org/docs/lcd/hd44780_j.html
・LCD + PCF8574Tモジュール 購入先
https://www.amazon.co.jp/gp/product/B07NNFFCJD/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1

#PCF8574TとLCDの配線

LCD DB7 DB6 DB5 DB4 ※注1 E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0

※注1:バックライトON/OFF制御用FETのGATEに接続、以降「Y」

#LCDの初期化手順(4bitモード)
##大まかな流れ

  1. 一旦8bitモードに設定(3回繰り返す)
  2. 4bitモードに設定
  3. 2行表示モードに設定
  4. ディスプレイOFF,カーソルOFF,ブリンクOFFに設定
  5. ディスプレイのクリア
  6. エントリーモード設定(初期化完了)

##送信データ
###一旦8bitモードに設定(3回繰り返す)
0x30 -> 0x34 -> 0x30

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 1 1 Y X 0 0

###4bitモードに設定
0x20 -> 0x24 -> 0x20

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 1 0 Y X 0 0

###2行表示モードに設定
0x20 -> 0x24 -> 0x20
0x80 -> 0x84 -> 0x80

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 1 0 Y X 0 0
コマンド 1 0 0 0 Y X 0 0

###ディスプレイON,カーソルON,ブリンクONに設定
0x00 -> 0x04 -> 0x00
0xF0 -> 0xF4 -> 0xF0

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 0 0 Y X 0 0
コマンド Blink Cursor Display 1 Y X 0 0

###ディスプレイのクリア
0x00 -> 0x04 -> 0x00
0x10 -> 0x14 -> 0x10

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 0 0 Y X 0 0
コマンド 0 0 0 1 Y X 0 0

###エントリーモード設定(初期化完了)
0x00 -> 0x04 -> 0x00
0x60 -> 0x64 -> 0x60

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 0 0 Y X 0 0
コマンド S I/D 1 0 Y X 0 0

###カーソルをホームに移動(下位4bit送信時にバックライトON)
0x00 -> 0x04 -> 0x00
0x28 -> 0x2C -> 0x28

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 0 0 Y X 0 0
コマンド Don't care 1 0 0 Y X 0 0

#文字の表示
###カーソルを1行目の1列目に移動
0x88 -> 0x8C -> 0x88
0x08 -> 0x0C -> 0x08

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 1 0 0 0 Y X 0 0
コマンド 0 0 0 0 Y X 0 0

###カーソルを2行目の1列目に移動
0xC8 -> 0xCC -> 0xC8
0x08 -> 0x0C -> 0x08

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 1 1 0 0 Y X 0 0
コマンド 0 0 0 0 Y X 0 0

###数字の1を出力
0x38 -> 0x3C -> 0x38
0x18 -> 0x1C -> 0x18

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 1 1 Y X 0 1
コマンド 0 0 0 1 Y X 0 1

###数字の2を出力
0x38 -> 0x3C -> 0x38
0x28 -> 0x2C -> 0x28

LCD DB7 DB6 DB5 DB4 - E R/W RS
PCF8574T P7 P6 P5 P4 P3 P2 P1 P0
コマンド 0 0 1 1 Y X 0 1
コマンド 0 0 1 0 Y X 0 1
1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?