Hallo,
nachdem ich letztens erfolgreich ein Text-Display mit 4 Zeilen a 27
Zeichen angesteuert habe, wollte ich mich nun an einem Grafik LCD
versuchen und habe dabei das Powertip PG12864 in der Bucht ersteigert.
Jedoch bekomme ich das Display nicht dazu, irgendwas anzuzeigen, selbst
die Hintergrundbeleuchtung habe ich nur ans laufen gekriegt, als ich
noch nicht alle Pinne des Displays angeschlossen habe. Jetzt scheint da
irgendeine Sperre drin zu sein, muss man die vielleicht erst über einen
Befehl einschalten?
Jedenfalls fehlen mir nun die Init Routinen, oder macht das das Display
selbst?
Ich habe zwar schon die anderen Themen zu diesem Display durchgeguckt,
aber nie wirklich was passendes gefunden.
Bis jetzt habe ich also nur den Grundaufbau des Programms:
1 | .include "m8def.inc"
|
2 |
|
3 | .def temp = r16
|
4 | .def param = r17
|
5 |
|
6 | .equ LCD_DP = PORTD ;LCD Data Port
|
7 | .equ LCD_DPD = DDRD ;LCD Data Port Direction
|
8 |
|
9 | .equ LCD_CP = PORTC ;LCD Control Port
|
10 | .equ LCD_CPD = DDRC ;LCD Control Port Direction
|
11 |
|
12 | .equ LCD_RS = PORTC0 ;LCD Register Select Pin
|
13 | .equ LCD_RW = PORTC2 ;LCD Read/Write Pin
|
14 | .equ LCD_EN = PORTC1 ;LCD Enable Pin
|
15 | .equ LCD_CS1 = PORTC3 ;LCD Chip Select 1 Pin
|
16 | .equ LCD_CS2 = PORTC4 ;LCD Chip Select 2 Pin
|
17 | .equ LCD_RE = PORTC5 ;LCD Reset Pin
|
18 |
|
19 | .org 0x000
|
20 | rjmp reset
|
21 |
|
22 |
|
23 |
|
24 | reset:
|
25 |
|
26 | ldi temp, HIGH(RAMEND)
|
27 | out SPH, temp
|
28 | ldi temp, LOW(RAMEND)
|
29 | out SPL, temp
|
30 |
|
31 | ldi temp, 0xFF
|
32 | out LCD_DPD, temp ;LCD Display Port als Ausgang setzen
|
33 |
|
34 | ldi temp, 0x00
|
35 | out LCD_DP, temp
|
36 |
|
37 | ldi temp, 0xFF
|
38 | out LCD_CPD, temp ;LCD Control Port als Ausgang setzen
|
39 |
|
40 | ldi temp, 0x00
|
41 | out LCD_DP, temp
|
42 |
|
43 | nop
|
44 | nop
|
45 | nop
|
46 |
|
47 | ldi temp, 0b00111111
|
48 | out LCD_DP, temp
|
49 |
|
50 | ldi temp, (1<<LCD_RE) | (1<<LCD_EN) | (1<<LCD_CS1) | (1<<LCD_CS2)
|
51 | out LCD_CP, temp
|
52 | nop
|
53 | nop
|
54 | nop
|
55 | ldi temp, 0x00
|
56 | out LCD_CP, temp
|
57 |
|
58 |
|
59 | loop:
|
60 |
|
61 |
|
62 | rjmp loop
|