2
1

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 1 year has passed since last update.

Z80にLCD

Last updated at Posted at 2020-07-03

Z80に手持ちのLCDを接続してみました。

物はHardOffで手にいれたROHMのRCM2010Rです。

写真(2020-06-30 16.25).jpg

インターフェースはHD44780の互換のようです。

LCDにコネクタを付けようかとも考えたのですが、フラットケーブルのパターンがあったので、直にハンダ付けしました。反対側はコネクタにしました。

写真(2020-06-30 17.41).jpg

最初にバスに直接ぶら下げてみたのですがうまくいきません。RCM2010Rで使われているコントローラは東芝のT7934でデーターシートを読んでみると4種類ありRCM2010Rに使われているT7934は0000で68系のインターフェースでした。

68系のチップイネーブルはEで書かれていて、80系はCSと書かれていることが多いようです。

HD44780やその互換チップは68系のインターフェースがほとんどのようです。

思案して8255のPortAに4Bitインターフェースで接続することにしました。書き込みしか必要ないので、R/WはGNDに落としてRSとEだけを制御します。計6本の制御になります。

8255ピン 接続
PA0 LED
PA1 空き
PA2 LCD RS
PA3 LCD E
PA4 LCD D4
PA5 LCD D5
PA6 LCD D6
PA7 LCD D7

配線を勘違いしてちょっと手こずりましたが、表示できるようになりました。

IMGP0029.JPG

テストプログラムは以下になります。

;
;
;

PORTA	EQU	0E0H
PORTB	EQU	0E1H
PORTC	EQU	0E2H
CTL	EQU	0E3H

; on EfexMon 
	ORG	8000H
	LD	A, 80H
	OUT	CTL

	LD	B, 0FFH
	CALL	LWAIT

	LD	A, 030H
	CALL	LCDW4
	LD	B, 080H
	CALL	LWAIT
	LD	A, 030H
	CALL	LCDW4
	LD	B, 080H
	CALL	LWAIT
	LD	A, 030H
	CALL	LCDW4
	LD	B, 080H
	CALL	LWAIT

; Set Function
	LD	A, 020H
	CALL	LCDW4
	LD	B, 010H
	CALL	SWAIT
; Set Function
	LD	A, 020H
	CALL	LCDW4
	LD	A, 080H
	CALL	LCDW4
	LD	B, 010H
	CALL	SWAIT
; Dispay ON
	LD	A, 000H
	CALL	LCDW4
	LD	A, 0C0H
	CALL	LCDW4
	LD	B, 010H
	CALL	SWAIT
; Display Clear
	LD	A, 000H
	CALL	LCDW4
	LD	A, 010H
	CALL	LCDW4
	LD	B, 010H
	CALL	LWAIT
; Set Entory Mode
	LD	A, 000H
	CALL	LCDW4
	LD	A, 060H
	CALL	LCDW4
	LD	B, 010H
	CALL	SWAIT

	LXI	H, HELLO
	CALL	PRINT
LOOP1
	LD	A, 01H
	OUT	PORTA
	LD	B, 0FFH
	CALL	LWAIT

	LD	A, 00H
	OUT	PORTA
	LD	B, 0FFH
	CALL	LWAIT
	
	JMP	LOOP1

LCDW4	ANI	0F0H
	OUT	PORTA
	NOP
	NOP
	NOP
	ORI	08H
	OUT	PORTA
	NOP
	NOP
	NOP
	ANI	0F0H
	OUT	PORTA
	RET

PUTC	MOV	B, A
	ANI	0F0H
	ORI	0CH
	OUT	PORTA
	NOP
	NOP
	NOP
	ANI	0F4H
	OUT	PORTA
	MOV	A, B
	RLCA
	RLCA
	RLCA
	RLCA
	ANI	0F0H
	ORI	0CH
	OUT	PORTA
	NOP
	NOP
	NOP
	ANI	0F4H
	OUT	PORTA
	RET

PRINT	MOV	A, M
	CP	0
	RET	Z
	CALL	PUTC
	LD	B, 10H
	CALL	SWAIT
	INC	HL
	JMP	PRINT

SWAIT	DCR	B
	JP	NZ, SWAIT
	RET

LWAIT
	LD	A, 0FFH
WLOOP
	NOP
	NOP
	NOP
	DEC	A
	JP	NZ, WLOOP
	DEC	B
	JP	NZ, LWAIT
	RET

HELLO	DB	'Hello Z80'
	DB	00H

昔の本を見ていたら、80系のCSを68系のEにする回路がありました。140nsの遅延回路のようです。

CS-E.png

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?