Servus,
ich würde gerne das Reichelt Display LCD 162C LED (laut Datenblatt ist
der Controller ein KS0070B) an einem ATMEAG48 mit folgendem Quelltext
zum laufen bekommen.
1 | .include "m48def.inc"
|
2 |
|
3 | .equ XTAL = 8000000
|
4 |
|
5 | ; Belegung PORTD
|
6 | ; V R R E D D D D
|
7 | ; e S W 7 6 5 4
|
8 | ;
|
9 | ;PD 7 6 5 4 3 2 1 0
|
10 |
|
11 | ldi r16, LOW(RAMEND)
|
12 | out SPL, r16
|
13 | ldi r16, HIGH(RAMEND)
|
14 | out SPH, r16
|
15 |
|
16 | LDI r16, 0xFF
|
17 | OUT DDRD, r16 ;PORTD ausgang
|
18 |
|
19 | LDI r16, 10 ;50ms warten
|
20 | poweron:
|
21 | RCALL waitms5
|
22 | DEC r16
|
23 | BRNE poweron
|
24 |
|
25 |
|
26 | LDI r16, 0b00000010 ;4bit Modus
|
27 | OUT PORTD, r16
|
28 | RCALL tgen
|
29 | RCALL waitus50
|
30 |
|
31 |
|
32 | LDI r16, 0b00000010 ;4bit Modus + 2-lines + 5x7 dots
|
33 | OUT PORTD, r16
|
34 | RCALL tgen
|
35 | LDI r16, 0b00001000
|
36 | OUT PORTD, r16
|
37 | RCALL tgen
|
38 | RCALL waitus50
|
39 |
|
40 |
|
41 | LDI r16, 0b00000000 ;display on + cursor on + blink on
|
42 | OUT PORTD, r16
|
43 | RCALL tgen
|
44 | LDI r16, 0b00001111
|
45 | OUT PORTD, r16
|
46 | RCALL tgen
|
47 | RCALL waitus50
|
48 |
|
49 |
|
50 | LDI r16, 0b00000000 ;clear dosplay
|
51 | OUT PORTD, r16
|
52 | RCALL tgen
|
53 | LDI r16, 0b00000001
|
54 | OUT PORTD, r16
|
55 | RCALL tgen
|
56 | RCALL waitms5
|
57 |
|
58 |
|
59 | LDI r16, 0b00000000 ;entry mode increment + entire shift off
|
60 | OUT PORTD, r16
|
61 | RCALL tgen
|
62 | LDI r16, 0b00000110
|
63 | OUT PORTD, r16
|
64 | RCALL tgen
|
65 | RCALL waitms5
|
66 |
|
67 |
|
68 |
|
69 | loop: rjmp loop
|
70 |
|
71 |
|
72 |
|
73 | waitus50:
|
74 | LDI r16, ( XTAL * 50 / 3 ) / 1000000
|
75 | WGLP3:
|
76 | DEC r16
|
77 | BRNE WGLP3
|
78 | RET
|
79 |
|
80 |
|
81 | waitms5:
|
82 | LDI r16, (XTAL * 5 / 607) / 1000
|
83 | WGLOOP0:
|
84 | LDI r17, $C9
|
85 | WGLOOP1:
|
86 | DEC r17
|
87 | BRNE WGLOOP1
|
88 | DEC r16
|
89 | BRNE WGLOOP0
|
90 | RET
|
91 |
|
92 |
|
93 | tgen:
|
94 | SBI PORTD, 4
|
95 | NOP
|
96 | NOP
|
97 | NOP
|
98 | NOP
|
99 | CBI PORTD, 4
|
100 | RET
|
Das einzige was das Display jedoch macht, ist mir in der ersten Zeile
schwarze Kästchen anzeigen, mehr nicht.
Der Anschluss des Display ist wie im Quelltext unter Belegung PORTD.
Was ist im Quelltext falsch bzw. warum geht das Display nicht?