Hallo!

Das Grafikdisplay hat eine Auflsung von 48x84 Pixel und ist mit einem Philips Kontroller PCD8544 ausgestattet. Es ist auch sehr verbreitet und unter 5 EUR bei ebay zu haben. Ich habe den Anschluss an PIC noch vereinfacht so, das man jetzt blo 3 pins am PIC braucht, und dazu noch 3 Taster angeschlossen. Ich finde das Display sehr gut und einfach zu steuern.

Anstatt des LM317 mit R1 und R2, kann man den 78L02 anwenden.

Wenn jemand die Taster nicht braucht, kann die D4,D5,R6,R7,R9,R10
weglassen (mittlere Skizze).

Wenn PIC mit max. 3,3V arbeitet, kann man das Display direkt anschliessen. In dem Fall bleiben in der Schaltung (ohne Taster) nur C1,C2 und R8 (untere Skizze).

Mit einfachen Hardware und ein paar zustzlichen Zeilen im Code (SerSend) kann man die Pinzahl sogar auf 2 reduzieren, aber nur ohne Tasten (ganz unten). Im modifiziertem Unterprogramm wird ein Flag _Fdc benutzt, das am Anfang des Programms deklariert werden muss. Anstatt

#define _SCK PORTA,2 ; display serial clock
#define _SDT PORTA,1 ; display serial data
#define _DC PORTA,0 ; display 0-command,1-data
DTemp equ 0x20
DTemp1 equ 0x21

muss sein

#define _SCK PORTA,1 ; display serial clock
#define _SDT PORTA,0 ; display serial data
#define _Fdc Flags,0
DTemp EQU 0x20
DTemp1 EQU 0x21
Flags EQU 0x22

Das Display ist fr Textaugabe nicht besonders geeignet, weil es keinen eigenen Zeichengenerator besitzt, der programmiert werden muss. Vielleicht braucht jemand sowas?

Fr das Testprogram soll nach der nderung der Konfiguration ein Quartz max. 16 MHz verwendet werden, da der Displaykontroller, laut Datenblatt nur bis 4 MHz geht.

MfG
Code:
                                                VCC   VCC
     VCC                                          +     +
      +  .-------.                                |     |
      |  |       | +3V                            |     |
      +--+ LM317 +--+----+--+-------+-------+-----------------+
         |       |  |    |  |       |       |     |     |     |
         '---+---' .-.   | .-.      -.     .-.   .-.   .-.   .-
             |     | |R1 | | |R3   | |R4   | |R5 | |R6 | |R7 | |R8
        R2   |     | |220| | |3k3  | |3k3  | |3k3| |20k| |20k| |10k
        300  |     '-'   | '-'     '-'     '-'   '-'   '-'   '-'
        ___  |      |    |  |       |       |   D1|     |     |
     +-|___|-+------+  . |  +----------------->|--------------|-->SCK
     |                   |  |       |       |   D2|     |     |
    ===                  |  |       +--------->|--+-----------|-->SDT      zum PIC
    GND                  |  |       |       |   D3|     |     |
         T1      R9 680  |  |       |       +->|--|-----+-----|-->D_C
        ---       ___    |  |       |       |     |     |     |
     +--o o--+---|___|---|--|-------|-------|-----+     |     |
     |       |           |  |       |       |           |     +--+
     |       V D4        |  |       |       |           |     |  |
     |   T2  -   R10 680 |  |       |       |           |  C2 | ---
     |  ---  |    ___    |  |       |       |           |  1 | ---
     +--o o--|-+-|___|---|--|-------|-------|-----------+     |  |
     |       | |         |  |       +-----+ | +-+-+-----------|--+
     |       | V D5      |  +-----------+ | | | | |           |  |
     |   T3  | -         +------------+ | | | | | |           | ===
     |  ---  | |                      | | | | | | |           | GND
     +--o o--+-+ D4,D5 Ge             | | | | | |--- C1 10   |
     |                                | | | | | |### +        |
    ===                               | | | | | | | +---------+
    GND                               | | | | | | | |
                                      V V V V V V V V
                            Display   1 2 3 4 5 6 7 8


     VCC=5V
      +  .-------.
      |  |       | +3V
      +--+ LM317 +--+----+--+-------+-------+-----------------+
         |       |  |    |  |       |       |                 |
         '---+---' .-.   | .-.      -.     .-.               .-
             |     | |R1 | | |R3   | |R4   | |R5             | |R8
        R2   |     | |220| | |3k3  | |3k3  | |3k3            | |10k
        300  |     '-'   | '-'     '-'     '-'               '-'
        ___  |      |    |  |       |       |   D1            |
     +-|___|-+------+  . |  +----------------->|--------------|-->SCK
     |                   |  |       |       |   D2            |
    ===                  |  |       +--------->|--------------|-->SDT      zum PIC
    GND                  |  |       |       |   D3            |
                         |  |       |       +->|--------------|-->D_C
                         |  |       |       |                 |
                         |  |       |       |                 |
                         |  |       |       |                 +--+
                         |  |       |       |                 |  |
                         |  |       |       |              C2 | ---
                         |  |       |       |              1 | ---
                         |  |       |       |                 |  |
                         |  |       +-----+ | +-+-+-----------|--+
                         |  +-----------+ | | | | |           |  |
                         +------------+ | | | | | |           | ===
                                      | | | | | | |           | GND
                                      | | | | | |--- C1 10   |
                                      | | | | | |### +        |
                                      | | | | | | | +---------+
                                      | | | | | | | |
                                      V V V V V V V V
                            Display   1 2 3 4 5 6 7 8


                   VCC=max.3,3V
                    +
                    |
                    o-----------------------+
                    |                       |
                    |                      .-.
                    |                      | |R8
                    |                      | |10k
                    |                      '-'
                    |                       |
                    | +---------------------|-->SCK
                    | |                     |
                    | | +-------------------|-->SDT      zum PIC
                    | | |                   |
                    | | | +-----------------|-->D_C
                    | | | |                 |
                    | | | |                 |
                    | | | |                 +--+
                    | | | |                 |  |
                    | | | |              C2 | ---
                    | | | |              1 | ---
                    | | | |                 |  |
                    | | | | +-+-+-----------|--+
                    | | | | | | |           |  |
                    | | | | | | |           | ===
                    | | | | | | |           | GND
                    | | | | | |--- C1 10   |
                    | | | | | |### +        |
                    | | | | | | | +---------+
                    | | | | | | | |
                    V V V V V V V V
          Display   1 2 3 4 5 6 7 8



                          .-----.        _
   vom   _SDT >----+------|J   Q|----> D/C   zum Display
                   |      |     |
   PIC   _SCK >----|------|>CK  |
                   | |\   |    _|
                   +-| >O-|K   Qo-
                     |/   '-----'


                           oder


                          .-----.        _
   vom   _SDT  -----------|D   Q|----> D/C   zum Display
                     |\   |    _|
   PIC   _SCK  ------| >O-|>T  Qo-
                     |/   '-----'


Der Inverter kann auch mit einem (SMD) Transistor realisiert werden.

                    Display Nokia 3310/3330

                            12345678
                 .----------------------------.
                 |         ||||||||||         |
                 |         ||||||||||         |
                 |         '--------'         |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 |                            |
                 '----------------------------'



;	Test programm for graphic display from Handy NOKIA 3310 with 3-pin connection 
	LIST      P=16F630
	include "P16F630.inc"                   ; 4.000 MHz internal clock
	__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT
#define	_SCK	PORTA,2			; display serial clock
#define	_SDT	PORTA,1			; display serial data
#define	_DC	PORTA,0			; display 0-command,1-data
DTemp	      equ	0x20
DTemp1	equ	0x21
		ORG	0x0000
Main		call	Init
		call	DLine1
		call	SP
		call	SP
		call	SP
		call	N
		call	O
		call	K
		call	I
		call	A
		call	SP
		call	3
		call	3
		call	1
		call	0
		call	sl
		call	3
		call	3
		call	3
		call	0
		call	SP
		call	SP
		call	BL
		call	BL
		call	BL
		call	G
		call	R
		call	A
		call	P
		call	H
		call	I
		call	C
		call	SP
		call	D
		call	I
		call	S
		call	P
		call	L
		call	A
		call	Y
		call	SP
		call	T
		call	E
		call	S
		call	T
		call	BL
		call	BL
		call	BL
		call	SP
		call	SP
		call	SP
		call	SP
		call	SP
		call	0
		call	1
		call	2
		call	3
		call	4
		call	5
		call	6
		call	7
		call	8
		call	9
		call	.
		call	sl
		call	SP
		call	SP
		call	SP
		call	SP
		call	SP
		call	SP
		call	SP
		call	A
		call	B
		call	C
		call	D
		call	E
		call	F
		call	G
		call	H
		call	I
		call	J
		call	K
		call	L
		call	M
		call	N
		call	O
		call	SP
		call	SP
		call	BL
		call	SP
		call	SP
		call	SP
		call	P
		call	Q
		call	R
		call	S
		call	T
		call	U
		call	V
		call	W
		call	X
		call	Y
		call	Z
		call	SP
		call	m
		call	u
		call	s
		call	SP
		call	SP
		call	SP
		call	SP
		call	SP
		call	ar
		call	SP
		call	su
		call	SP
		call	sd
		call	SP
		call	os
		call	SP
		call	ct
		call	SP
		call	sk
		call	SP
		call	SP
		call	SP
		call	SP
		sleep
DLine1	movlw	0x40
		call	COut
		movlw	0x80
		call	COut
		return
COut		bcf	_DC
		movwf	Dtemp1
		goto	LCDOut
DOut		bsf	_DC
		movwf	Dtemp1
LCDOut	movlw	8
		movwf DTemp
SerSend	bcf	_SDT
		btfsc	Dtemp1,7
		bsf 	_SDT
		rlf	Dtemp1,1
		bsf	_SCK
		bcf	_SCK
		decfsz	DTemp,1
		goto 	SerSend
		return
Init		movlw	7			; set comparator off
		movwf	CMCON			; and RA0-3 to digital I/O
		bsf 	STATUS, RP0		; bank1
		bcf	OPTION_REG,7	; enable pull-ups
		clrf	TRISA			; set RA0-5 as outputs
		clrf	TRISC			; set RC0-5 as outputs
		call	0x3FF			; call calibration value
		movwf OSCCAL		; calibrate internal RC oscillator
		bcf 	STATUS, RP0		; bank 0
		clrf	PORTA
		clrf	PORTC
		movlw	0x20			; chip active, horizontal adressing, basic instruction set
		call	COut
		movlw	0x0C			; normal mode
		call	COut
		return
0		call	BL
		movlw	0x3E
		call 	DOut
		movlw	0x22
		call	DOut
		movlw 0x3E
		call	DOut
		return
1		call	BL
		movlw 4
		call	DOut
		movlw 0x3E
		call 	DOut
		call 	BL
		return
2		call	BL
		movlw	0x3A
		call	DOut
		movlw 0x2A
		call	DOut
		movlw x2E
		call 	DOut
		return
3		call	BL
		movlw	0x2A
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3E
		call	DOut
		return
4		call	BL
		movlw	0x0E
		call	DOut
		movlw	8
		call	DOut
		movlw	0x3E
		call	DOut
		return
5		call	BL
		movlw	0x2E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3A
		call	DOut
		return
6		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3A
		call	DOut
		return
7		call	BL
		movlw	2
		call	DOut
		movlw	0x3A
		call	DOut
		movlw	0x6
		call	DOut
		return
8		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3E
		call	DOut
		return
9		call	BL
		movlw	0x2E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3E
		call	DOut
		return
A		call	BL
		movlw 0x3C
		call 	DOut
		movlw	0x0A
		call 	DOut
		movlw 0x3C
		call 	DOut
		return
B		call	BL
		movlw 0x3E
		call 	DOut
		movlw	0x2A
		call 	DOut
		movlw 0x14
		call	DOut
		return
C		call	BL
		movlw 0x1C
		call 	DOut
		movlw	0x22
		call	DOut
		movlw	0x22
		call 	DOut
		return
D		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x22
		call	DOut
		movlw	0x1C
		call	DOut
		return
E		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x2A
		call	DOut
		return
F		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x0A
		call	DOut
		movlw	0x0A
		call	DOut
		return
G		call	BL
		movlw	0x1C
		call	DOut
		movlw	0x22
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x1A
		call	DOut
		return
H		call	BL
		movlw	0x3E
		call	DOut
		movlw	8
		call	DOut
		movlw	0x3E
		call	DOut
		return
I		call	BL
		movlw	0x3E
		call	DOut
		return
J		call	BL
		movlw	0x10
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x1E
		call	DOut
		return
K		call	BL
		movlw	0x3E
		call 	DOut
		movlw	0x14
		call	DOut
		movlw 0x22
		call 	DOut
		return
L		call	BL
		movlw 0x3E
		call 	DOut
		movlw 0x20
		call 	DOut
		movlw	0x20
		call 	DOut
		return
M		call	BL
		movlw 0x3E
		call 	DOut
		movlw	4
		call 	DOut
		movlw	8
		call 	DOut
		movlw	4
		call 	DOut
		movlw	0x3E
		call	DOut
		return
N		call	BL
		movlw	0x3E
		call	DOut
		movlw	4
		call	DOut
		movlw	8
		call	DOut
		movlw	0x10
		call	DOut
		movlw	0x3E
		call	DOut
		return
O		call	BL
		movlw	0x1C
		call	DOut
		movlw	0x22
		call	DOut
		movlw	0x1C
		call	DOut
		return
P		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x0A
		call	DOut
		movlw	4
		call	DOut
		return
Q		call	BL
		movlw	0x1C
		call	DOut
		movlw	0x22
		call	DOut
		movlw	0x12
		call	DOut
		movlw	0x2C
		call	DOut
		return
R		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x1A
		call	DOut
		movlw	0x24
		call	DOut
		return
S		call	BL
		movlw	0x24
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x12
		call	DOut
		return
T		call	BL
		movlw	2
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	2
		call	DOut
		return
U		call	BL
		movlw 0x3E
		call 	DOut
		movlw	0x20
		call 	DOut
		movlw	0x3E
		call 	DOut
		return
V		call	BL
		movlw 0x1E
		call 	DOut
		movlw	0x20
		call 	DOut
		movlw 0x1E
		call	DOut
		return
W		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x10
		call  DOut
		movlw 8
		call 	DOut
		movlw 0x10
		call	DOut
		movlw	0x3E
		call	DOut
		return
X		call	BL
		movlw	0x36
		call	DOut
		movlw	8
		call	DOut
		movlw	0x36
		call	DOut
		return
Y		call	BL
		movlw	6
		call	DOut
		movlw	0x38
		call	DOut
		movlw	6
		call	DOut
		return
Z		call	BL
		movlw	0x32
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x26
		call	DOut
		return		
m		call	BL
		movlw	0x3C
		call	DOut
		movlw	4
		call	DOut
		movlw	8
		call	DOut
		movlw	4
		call	DOut
		movlw	0x38
		call	DOut
		return
u		call	BL
		movlw	0x7C
		call	DOut
		movlw	0x10
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x1C
		call	DOut
		call	BL
		return
s		call	BL
		movlw	0x20
		call	DOut
		movlw	0x28
		call	DOut
		movlw	0x14
		call	DOut
		call	BL
		call	BL
		return
.		call	BL
		movlw	0x20
		call	DOut
		return
sl		call	BL		; /
		movlw	0x20
		call	DOut
		movlw	0x10
		call	DOut
		movlw	8
		call	DOut
		movlw	4
		call	DOut
		movlw	2
		call	DOut
		return
ar		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x1C
		call	DOut
		movlw	8
		call	DOut
		return
ct		call	BL		; continous	
		movlw	0x3E
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x3E
		call	DOut
		return
os		call	BL		; one shot	
		movlw	0x20
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x20
		call	DOut
		return
su		call	BL		; slope up
		movlw	0x20
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	2
		call	DOut
		movlw	2
		call	DOut
		return
sd		call	BL		; slope down
		movlw	2
		call	DOut
		movlw	2
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	0x20
		call	DOut
		movlw	0x20
		call	DOut
		return
sk		call	BL
		movlw	0x3E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3E
		call	DOut
		movlw	0x2A
		call	DOut
		movlw	0x3E
		call	DOut
		return
SP		call	BL
		call	BL
		call	BL
		call	BL
		return
BL		movlw	0
		call	DOut
		return
FL		movlw	0xFF
		call	DOut
		return
		end


Modifizierte Ausgabe fr 2-pin Anschlu: 

COut         bcf   _Fdc
                movwf   Dtemp1
                goto   LCDOut
DOut         bsf   _Fdc
                movwf   Dtemp1
LCDOut     movlw   8
                movwf DTemp 
SerSend	   bcf	_SDT
		btfsc	_Fdc
		bsf	_SDT
		bcf	_SCK
		bcf	_SDT
		btfsc	DTemp1,7
		bsf 	_SDT
		bsf	_SCK
		rlf	DTemp1,1
		decfsz	DTemp,1
		goto 	SerSend
		return