You are on page 1of 6

K U R S

Obsuga kolorowego
wywietlacza graficznego
96x64, cz 1
Po upowszechnieniu
si wywietlaczy LCD
monochromatycznych, nadchodzi
era wywietlaczy kolorowych.
W artykule przedstawiamy
sposb wykorzystania maego
wywietlacza kolorowego LCD z
liczb kolorw wynoszc 65k!
Rekomendacje:
przejcie z wywietlaczy
monochromatycznych na
kolorowe, z ca pewnoci
zwikszy atrakcyjno
projektowanych urzdze, a w
niektrych wypadkach podniesie
ich walory uytkowe. Warto wic
zapozna si ze sposobem ich
sterowania, ktry - jak pokazuje
autor - wcale nie jest trudny.

Wstp

Wywietlacze LCD zdobyy miejsce prawie w kadym sprzcie elektronicznym. Bardzo popularne s
wywietlacze alfanumeryczne wyposaone w specjalizowany kontroler, jak i coraz tasze wywietlacze
graficzne wykorzystywane w duej
mierze w telefonach komrkowych.
Wywietlacze graficzne przeznaczone do telefonw komrkowych maj
umiarkowan cen oraz mona je
atwo wykorzysta do wasnych
projektowanych urzdze. Da si
zauway, midzy innymi w telefonach komrkowych, e coraz
bardziej popularne staj si kolorowe wywietlacze graficzne LCD,
ktre wypieraj z nich wywietlacze monochromatyczne. Obsuga i
zastosowanie do wasnych celw
kolorowego wywietlacza graficznego LCD wcale nie musi by trud-

niejsze od zastosowania graficznego


wywietlacza monochromatycznego.
W artykule postaram si pokaza
obsug takiego kolorowego wywietlacza graficznego, ktry moe
wywietla obrazy nie w 256 kolorach, ale 65 k (65000) kolorach! Zostanie pokazany przykad wsppracy
takiego wywietlacza z mikrokontrolerem poprzez interfejs szeregowy
i rwnolegy. Zademonstrowany zostanie sposb wywietlenia kolorowej bitmapy wysanej z komputera
przez port RS232.

Wywietlacz
AR-09664CCJQW-00H

Sposb sterowania kolorowym


wywietlaczem zostanie pokazany na przykadzie wywietlacza
AR-09664CCJQW-00H, ktrego rozdzielczo wynosi 96x64. Tego
typu wywietlacz, przeznaczony do
telefonw komrkowych, posiada
podwietlenie przez biae diody
LED. Wywietlaczem steruje kontroler HD66768, ktry jest do prosty
w uyciu. Jedyn trudnoci przy
wywietlaczach ze sterownikiem
HD66768 bdzie skonfigurowanie
Tab. 1. Wybrane parametry
wywietlacza AR-09664CCJQW-00H
-

Rys. 1. Schemat blokowy opisywanego wywietlacza

Elektronika Praktyczna 1/2005

podwtietlenie przez biae diody LED


rozdzielczo 96x64
kontroler HD66768
65 k gbia kolorw (16 bit/piksel)
dane na ekranie s bezporednio obrazowane z pamici GRAM wywietlacza
jeden interfejs rwnolegy i dwa szeregowe
tryby pracy z obnionym poborem mocy
napicie zasilania podwietlenia typowo
10,8 V
napicie zasilania wywietlacza LCD:
2,4 V...3,6 V

81

K U R S

Rys. 2. Schemat elektryczny wywietlacza z wymaganymi elementami zewntrznymi

parametrw sterujcych wywietlaczem, natomiast samo wywietlanie informacji na ekranie jest bardzo proste. W tab. 1 przedstawiono
niektre parametry wykorzystanego
wywietlacza.
Na rys. 1 przedstawiono schemat
blokowy wykorzystanego wywietlacza.
Wywietlacz do poprawnej pracy wymaga dodatkowych elementw zewntrznych wsppracujcych z
wewntrznymi blokami kontrolera
HD66768 takimi, jak oscylator czy
przetwornice. Na rys. 2 przedstawiony
zosta schemat ideowy wywietlacza
LCD wraz z potrzebnymi elementami wsppracujcymi. Rezystor R1
ogranicza prd pyncy przez diody
podwietlenia, natomiast kondensatory
Tab. 2. Konfiguracja typu interfejsu
IM2
GND
VCC
VCC

82

IM1
VCC
GND
VCC

IM0/ID
VCC
GND
GND

C1...C11 wymagane s do poprawnej


pracy wewntrznych blokw ukadu HD66768. Warto rezystora R2
okrela czstotliwo oscylatora.
Jak wiadomo waciwoci ciekego
krysztau w duej mierze zale od
temperatury. Aby takie zmiany zminimalizowa zastosowano zewntrzny
obwd kompensacji temperaturowej
skadajcy si z termistora RT1 i
rezystora R3. Obwd ten minimalizuje zmiany kontrastu w zalenoci od temperatury. Naley pamita
ze kontrast bdzie zalea nie tylko
od temperatury, ale i kta widzenia
oraz napicia zasilania wywietlacza,
ktre dla zminimalizowania zmian
kontrastu powinno by dobrze stabilizowane i filtrowane.

Typ interfejsu
Rwnolegy 8-bitowy interfejs
Szeregowy interfejs synchroniczny (3 linie)
Szeregowy interfejs synchroniczny (4 linie)

Linie interfejsu komunikacyjnego


z mikrokontrolerem, konfiguracyjne
oraz zasilajce zostay wyprowadzone na zcze Z1A.

Kontroler HD66768

Na rys. 3 przedstawiono schemat blokowy kontrolera HD66768.


Kontroler HD66768 moe sterowa
wywietlaczem o maksymalnej rozdzielczoci 104x84, przy czym liczba
dostpnych kolorw moe by rwna
65000, 4096 lub 256. Ma on szybki
interfejs rwnolegy, tryb szybkiego
adowania danych do pamici obrazu, wbudowan palet odcieni kolorw, ktr mona konfigurowa,
funkcj maskowania i porwnania
wysyanych danych do pamici obrazu, programowany kontrast w 128
krokach oraz wiele innych funkcji.
Pami na dane graficzne wynosi
17472 bajty, przy czym na jeden
piksel przy 65 k kolorach przypada
16 bitw (16-bitowy kolor).

Elektronika Praktyczna 1/2005

K U R S

Rys. 3. Schemat blokowy kontrolera HD66768

Rys. 4. Ukad sterujcy z interfejsem 3-przewodowym

Elektronika Praktyczna 1/2005

83

K U R S
Tab. 3. Rejestr sterownika HD66768
Register
No.

Register

IR
SR

Upper Code

Lower Code

RS

Index

ID6

ID5

ID4

ID3

ID2

ID1

ID0

Status read

L7

L6

L5

L4

L3

L2

L1

L0

C6

C5

C4

C3

C2

C1

C0

Oscillation start

10 ms

Device code read

R01h

Driver output control

CSFT

CMS

SGS

4L

NL4

NL3

NL2

NL1

NL0

R02h

LCD operating alternation control

RST

B/C

EOR

NW5

NW4

NW3

NW2

NW1

NW0

R03h

Power control (1)

BS2

BS1

BS0

BT1

BT0

DC2

DC1

DC0

AP2

AP1

AP0

SLP

STB

VRC
NT

CT6

CT5

CT4

CT3

CT2

CT1

CT0

R00h

R04h

Contrast control

DB
14

DB
13

DB
12

DB
11

DB
10

Executing
cycle

R/W

DB
15

VR4
0

VR3

DB 9 DB 8 DB 7 DB 6 DB 5 DB 4 DB 3 DB 2 DB 1 DB 0

VR2

VR1

VR0

VRO
N

HW
M

I/D1

I/D0

AM

LG2

LG1

LG0

CP0

CP8

CP7

CP6

CP5

CP4

CP3

CP2

CP1

CP0

VLE2 VLE1

SPT

B/W

REV

D1

D0

RTN3 RTN2 RTN1 RTN0

R05h

Entry mode

SPR1 SPR0

R06h

Conpare resistor

CP15 CP14 CP13 CP12 CP11 CP10

R07h

Display control

R08h

Flame cycle control

DIV1

DIV0

R0Ch

Power control (2)

VC2

VC1

VC0

R11h

Vertical scroll control

VL
27
SE
17
SE
27
HEA
7
VEA
7
WM
15

VL
26
SE
16
SE
26
HEA
6
VEA
6
WM
14

VL
25
SE
15
SE
25
HEA
5
VEA
5
WM
13

VL
24
SE
14
SE
24
HEA
4
VEA
4
WM
12

VL
23
SE
13
SE
23
HEA
3
VEA
3
WM
11

VL
22
SE
12
SE
22
HEA
2
VEA
2
WM
10

VL
21
SE
11
SE
21
HEA
1
VEA
1
WM
9

VL
20
SE
10
SE
20
HEA
0
VEA
0
WM
8

VL
17
SS
17
SS
27
HAS
7
VSA
7
WM
7

VL
16
SS
16
SS
26
HAS
6
VSA
6
WM
6

VL
15
SS
15
SS
25
HAS
5
VSA
5
WM
5

VL
14
SS
14
SS
24
HAS
4
VSA
4
WM
4

VL
13
SS
13
SS
23
HAS
3
VSA
3
WM
3

VL
12
SS
12
SS
22
HAS
2
VSA
2
WM
2

VL
11
SS
11
SS
21
HAS
1
VSA
1
WM
1

VL
10
SS
10
SS
20
HAS
0
VSA
0
WM
0

RAM address set

ADI5-8(Upper)

AD7-0(Lower)

RAM data write

Write Data (Upper)

Write Data (Lower)

RAM data read

Read Data (Upper)

R14h
R15h
R16h
R17h
R20h
R21h
R22h
R30h
R31h
R32h
R33h
R34h
R35h
R36h
R37h
R40h
R41h
R42h

First screen
operating position
Second screen
operating position
Horizontal RAM
address position
Vertical RAM
address position
RAM write data
mask

Grayscale palette
control (1)
Grayscale palette
control (2)
Grayscale palette
control (3)
Grayscale palette
control (4)
Grayscale palette
control (5)
Grayscale palette
control (6)
Grayscale palette
control (7)
Grayscale palette
control (8)
E2PROM interface
control (1)
E2PROM interface
control (2)
E2PROM interface
control (3)

0
0
0
0
0
0
0
0

Read Data (Lower)

PK
14
PK
34
PK
54
PK
74
PK
94
PK
114
PK
134
PK
154

PK
13
PK
33
PK
53
PK
73
PK
93
PK
113
PK
133
PK
153

PK
12
PK
32
PK
52
PK
72
PK
92
PK
112
PK
132
PK
152

PK
11
PK
31
PK
51
PK
71
PK
91
PK
111
PK
131
PK
151

PK
10
PK
30
PK
50
PK
70
PK
90
PK
110
PK
130
PK
150
OP0

A5

PK
03
PK
23
PK
43
PK
63
PK
83
PK
103
PK
123
PK
143

PK
02
PK
22
PK
42
PK
62
PK
82
PK
102
PK
122
PK
142

PK
01
PK
21
PK
41
PK
61
PK
81
PK
101
PK
121
PK
141

PK
00
PK
20
PK
40
PK
60
PK
80
PK
100
PK
120
PK
140

A4

A3

A2

A1

A0

0/1

TE

OP1

TD
15

TD
14

TD
13

TD
12

TD
11

TD
10

TD 9 TD 8 TD 7 TD 6 TD 5 TD 4 TD 3 TD 2 TD 1 TD 0

PK
04
PK
24
PK
44
PK
64
PK
84
PK
104
PK
124
PK
144

DPM IDX 7 IDX 6 IDX 5 IDX 4 IDX 3 IDX 2 IDX 1 IDX 0

0
0
0
0
0
0
0
0
0
0
0

1. * nieistotne; 2. High-speed write mode is available only for the RAM writing

Ukad HD66768 ma trzy interfejsy:


8-bitowy rwnolegy, szeregowy skadajcy si z 3 linii i szeregowy skadajcy si z 4 linii (dodatkowa linia
RS okrelajca zapis adresu rejestru
lub wartoci rejestru).

84

Przykad wywietlania bitmapy

Dla przykadu zostanie zaprezentowany sposb wywietlenia na


wywietlaczu bitmapy 96x64 z 16
bitow (65000) gbi kolorw. Bitmapa zostanie wysana z kompute-

ra przez RS232 i wywietlona na


wywietlaczu.
Na rys. 4 przedstawiono schemat
ukadu sterujcego wywietlaczem
poprzez 3-przewodowy interfejs szeregowy. Caoci steruje mikrokontro-

Elektronika Praktyczna 1/2005

Note 1
Note 1

Note 2

K U R S
List. 1. Program odbierajcy i
wywietlajcy bitmap na wywietlaczu
Program przesyajcy kolorow bitmap 96x64 do
kolorowego wywietlacza LCD
Komunikacja szeregowa
Marcin Wizania
marcin.wiazania@ep.com.pl
$regle = m8def.dat
informuje kompilator o pliku dyrektyw
mikrokontrolera
$crystal = 4000000
informuje kompilator o czstotliwoci
oscylatora taktujacego mikrokontroler
$baud = 9600
informuje o predkosci transmisji
interfejsu RS232
Cong Portb = Output
port B jako wyjsciowy
Declare Sub Zap_a_c(byval Adrh As Byte , Byval
Adrl As Byte , Byval Parh As Byte , Byval Parl
As Byte )
procedura zapisu jednoczesnie
adresu i komendy
Declare Sub Zap_c(byval Comh As Byte , Byval Coml
As Byte) procedura zapisu parametrow
Declare Sub Zap_a(byval Adh As Byte , Byval Adl
As Byte)
procedura zapisu adresu
Dim Temp As Byte
zmienna
Dim I As Byte
zmienna
Dim J As Byte
zmienna
Dim K As Word
zmienna
z pliku BMP
Sdi Alias Portb.2
alias
Scl Alias Portb.3
alias
Cs Alias Portb.4
alias
Rr Alias Portb.5
alias
Reset Rr
Set Cs
Waitms 20
Set Rr

pomocnicza
pomocnicza
pomocnicza
licznikowa otrzymanych bajtow

do zygnalu danych Sdi


do sygnalu zegarowego Scl
do sygnalu wyboru Cs
do sygnalu Rs (resetu)

reset wyswietlacza
ustawienie sygnalu Cs
czekaj 20 ms
koniec resetu

Call Zap_a_c(&H00 , &H00 , &H00 , &H01)


wlaczenie oscylatora wyswietlacza LCD
Waitms 20
czekaj 20 ms
Call Zap_a_c(&H00 , &H03 , &H12 , &H8C)
ustawienie parametrow zasilania
blokow wyswietlacza jak: BS2-0, BT1-0, DC2-0,
AP2-0, SLP
Call Zap_a_c(&H00 , &H0C , &H00 , &H00)
ustawienie parametrow zasilania
blokow wyswietlacza jak: VC2-0
Call Zap_a_c(&H00 , &H04 , &H1A , &HE0)
ustawienie parametrow kontrastu
wyswietlacza jak: VRCNT, VR4, VRON, CT6-1
Call Zap_a_c(&H00 , &H01 , &H02 , &H07)
ustawienie parametrow pracy drivera
sterujacego pixelami jak: CSFT, CMS, SGS, 4L,
NL4-0
Call Zap_a_c(&H00 , &H02 , &H00 , &H00)
ustawienie parametrow sygnalow sterujacych jak: RST, B/C, EOR, NW5-0
Call Zap_a_c(&H00 , &H05 , &H02 , &H10)
ustawienie parametrow odpowiedzialnych interpretowanie danych wejsciowych jak:
SPR1-0, HWM, I/D1-0, LG2-0
Call Zap_a_c(&H00 , &H06 , &H00 , &H00)
ustawienie regulowanego rezystora
komparatora jak: CP15-0
Call Zap_a_c(&H00 , &H0B , &H00 , &H00)
ustawienie cyklu ramki parametry:
DIV1-0, RTC3-0
Call Zap_a_c(&H00 , &H14 , &H53 , &H00)
ustalenie pozycji obrazu na ekranie
LCD parametry: SE17-10 i SS17-10
Call Zap_a_c(&H00 , &H16 , &H5F , &H00)
ustalenie poziomego adresu pamieci
RAM wyswietlacza
Call Zap_a_c(&H00 , &H17 , &H3F , &H00)
ustalenie pionowego aresu pamieci RAM
wyswietlacza
Call Zap_a_c(&H00 , &H20 , &H00 , &H00)
ustalenie maski zapisu danych do
pamieci RAM (brak zdeniowanej maski)
Call Zap_a_c(&H00 , &H07 , &H00 , &H02)
ustalenie parametrow kontrolnych
wyswietlacza jak: VLE1-0, SPT, B/W i REV
Call Zap_a_c(&H00 , &H07 , &H00 , &H03)
ustalenie parametrow kontrolnych
wyswietlacza jak: D1-0 (waczenie LCD)
Call Zap_a_c(&H00 , &H30 , 3 , 1)
konguracja patety odcieni
Call Zap_a_c(&H00 , &H31 , 7 , 5)
dalsza konguracja patety odcieni

Elektronika Praktyczna 1/2005

Call Zap_a_c(&H00 , &H32 , 9 , 8)


dalsza konguracja patety
Call Zap_a_c(&H00 , &H33 , 12 , 11)
dalsza konguracja patety
Call Zap_a_c(&H00 , &H34 , 14 , 13)
dalsza konguracja patety
Call Zap_a_c(&H00 , &H35 , 16 , 15)
dalsza konguracja patety
Call Zap_a_c(&H00 , &H36 , 19 , 17)
dalsza konguracja patety
Call Zap_a_c(&H00 , &H37 , 24 , 22)
dalsza konguracja patety

odcieni
odcieni
odcieni
odcieni
odcieni
odcieni

Do

petla glowna programu


Print Oczekiwanie na BMP
komunikat wyslany do terminala
K = 0
wyzerowanie zmiennej K
Call Zap_a_c(&H00 , &H21 , &H3F , &H00)
ustawienie adresu poczatkowego pamieci GRAM,
ktory bedzie automatycznie inkrementowany
I = 0
wyzerowanie zmiennej I
Call Zap_a(&H00 , &H22)
adres komendy zapisu danych do
pamieci GRAM
Do
petla wykonywana az I = 70
Incr I
zwieszenie o 1 wartoci I
J = Waitkey()
oczekiwanie na odebranie bajta danych z portu
RS232 do zmiennej J
Loop Until I = 70
jesli I = 70 to koniec petli
Do
petla wykonywana az K = 6145
J = Waitkey()
oczekiwanie na odebranie bajta danych z portu
RS232 do zmiennej J
I = Waitkey()
oczekiwanie na odebranie bajta danych z portu
RS232 do zmiennej I
Call Zap_c(i , J)
wywolanie procedury zapisu dwoch
kolejnych pixeli
Incr K
zwiekszenie o 1 zmiennej K
Loop Until K = 6145
jesli K=6145 to koniec petli
Print Otrzymano BMP
wyslanie to terminala komunikatu o
otrzymaniu calej bitmapy
Loop
koniec petli glownej programu
End
koniec programu
Sub Zap_a_c(byval Adrh As Byte , Byval Adrl
As Byte , Byval Parh As Byte , Byval Parl As
Byte)
procedura zapisu jednoczesnie adresu
oraz komendy
Call Zap_a(adrh , Adrl)
wywolanie procedury zapisu adresu
Call Zap_c(parh , Parl)
wywolanie procedury zapisu parametrow
(danych)
End Sub
Sub Zap_a(byval Adh As Byte , Byval Adl As Byte)
procedura zapisu adresu komendy
Reset Cs
wybor komunikacji z LCD - linia CS
wyzerowana
Temp = &B01110000
zapis do Temp wartosci oznaczajacej
przeslanie adresu komendy
Shiftout Sdi , Scl , Temp , 0 , 8
wyslanie wartosci oznaczajacej typ
przesylanego slowa
Shiftout Sdi , Scl , Adh , 0 , 8
wyslanie do LCD bardziej znaczacego
slowa adresu
Shiftout Sdi , Scl , Adl , 0 , 8
wyslanie do LCD mniej znaczacego
slowa adresu
Set Cs
ustawienie sygnalu Cs - koniec
komunikacji z LCD
End Sub
Sub Zap_c(byval Comh As Byte , Byval Coml As
Byte)
procedura zapisu danych
Reset Cs
wybor komunikacji z LCD - linia CS
wyzerowana
Temp = &B01110010
zapis do Temp wartosci oznaczajacej
przeslanie danych
Shiftout Sdi , Scl , Temp , 0 , 8
wyslanie wartosci oznaczajacej typ
przesylanego slowa
Shiftout Sdi , Scl , Comh , 0 , 8
wyslanie do LCD bardziej znaczacego
bajta danej
Shiftout Sdi , Scl , Coml , 0 , 8
wyslanie do LCD mniej znaczacego
bajta danej
Set Cs
ustawienie sygnalu Cs - koniec
komunikacji z LCD
End Sub

ler ATmega8, ktry pobiera bitmap


poprzez port szeregowy i przesya
j odpowiednio do wczeniej skonfigurowanego wywietlacza. Bitmapa
odbierana jest z prdkoci 9600
bodw i mona j wysa poprzez
windowsowski Hyper Terminal.
Mikrokontroler komunikuje si z
wywietlaczem poprzez 3 przewodowy synchroniczny interfejs szeregowy. Do konfiguracji rodzaju interfejsu wywietlacza su linie IM0,
IM1 i IM2. W tab. 2 przedstawiono
typy interfejsw w zalenoci od
napi podanych na linie IMx. Mikrokontroler dodatkowo steruje lini
zerujc wywietlacza.
Ukad U2 jest konwerterem napi do poziomw zgodnych ze
standardem RS232. Napiciem 12 V
jest zasilane podwietlenie wywietlacza, natomiast stabilizowanym
przez U3 napiciem 3,3 V jest zasilana pozostaa cz ukadu oraz
wywietlacz. W typowych ukadach
cao moe by zasilana napiciem
3,3 V, a napicie potrzebne do zasilenia podwietlenia moe by wytwarzane poprzez przetwornic podwyszajc (step-up).
Na list. 1 zosta przedstawiony
program odbierajcy i wywietlajcy
bitmap na wywietlaczu.
Na rys. 5 przedstawiono przebiegi ilustrujce sposb komunikacji przez 3 przewodowy interfejs szeregowy. Na pocztku naley jako pierwszy wysa bajt
ID identyfikujcy wywietlacz, w
ktrym bit ID ma warto stanu
na linii IM0 wywietlacza. Czyli poprzez warto napicia na
linii IM0 mona wybra adres
wywietlacza.
Bit RS okrela czy bdzie wysyany adres rejestru czy warto
rejestru. Przy stanie 0 bitu RS zapisywany jest adres rejestru, a przy
1 warto zaadresowanego rejestru.
Zarwno adres, jak i warto
rejestru s wysyane w formie
sw (dwch bajtw). Cho adres
rejestru jest 8-bitowy, to musi by
wysany w formie 16-bitowej.
W tab. 3 przedstawiono list rejestrw kontrolera HD66768 ktrych jest 31. Wikszo rejestrw
jest przeznaczona do konfiguracji
wywietlacza. Wartoci rejestrw take s zapisywane w postaci sw
(dwch bajtw). Dane wysyane
przez interfejs szeregowy rozpoczynaj si od najbardziej znaczcego bitu
sowa. Bity rejestrw wykorzystanych
w przykadzie zostan dokadniej opi-

85

K U R S

Rys. 5. Przebiegi w interfejsie 3-przewodowym

sane podczas omawiania programu.


Dostpny jest take rejestr statusu
SR, ale mona go tylko odczytywa
przy komunikacji z wywietlaczem
za porednictwem interfejsu rwnolegego. Komunikacja z wywietlaczem
nie nastrcza kopotw, bo najpierw
naley wysa adres rejestru, ktry
bdzie konfigurowany przy wyzerowanym bicie RS, a nastpnie wartoci zaadresowanego rejestru z ustawionym bitem RS.

86

W programie wystpuj trzy


procedury wysyania danych do
wywietlacza. Procedura Zap_a
wysya do LCD tylko adres rejestru. Procedura Zap_c wysya
do wywietlacza tylko warto
rejestru wczeniej zaadresowanego. Natomiast procedura Zap_a_c
umoliwia bezporednie wysanie
wartoci rejestru pod adres wskazany take jako argument. Argumenty procedur z ostatnia liter

h s bardziej znaczc powk, a


z liter l mniej znaczc powk
wysyanego sowa.
Marcin Wizania
marcin.wiazania@ep.com.pl
Dodatkowe informacje
Wywietlacz opisany w artykule jest dostpny
(take detalicznie) w firmie Gamma:
http://www.gamma.pl, tel. (22) 862-75-00.
Cena wywietlacza ze zczem do PCB
wynosi 100 z netto.

Elektronika Praktyczna 1/2005

You might also like