Professional Documents
Culture Documents
INTRODUCCIN.
LA PANTALLA LCD.
Seccin LCD-3310-01
Revisin: 03
Junio 2013
Sistema de coordenadas.
CARACTERSTICAS.
Seccin LCD-3310-01
Revisin: 03
Junio 2013
Seccin LCD-3310-01
Revisin: 03
Junio 2013
Seccin LCD-3310-01
Revisin: 03
Junio 2013
Seccin LCD-3310-01
Revisin: 03
Junio 2013
Seccin LCD-3310-01
Revisin: 03
Junio 2013
LCD test
CDIGO
/*
lcd_test.pde
Este cdigo tiene caractersticas adicionales
incluyendo una funcin de posicionamiento XY en la
pantalla
y una funcin Dibuja la linea de Nokia 3310 LCD
Se modific a partir del original
http://playground.arduino.cc/Code/PCD8544
*/
// Mods by V. Garca
// Funciona bien. 15/05/2013.
#define PIN_DC 2 // LCD Dat/Com. Pin 5
#define PIN_SCE 3 // LCD CS .... Pin 3
#define PIN_SDIN 4 // LCD SPIDat . Pin 6
#define PIN_RESET 5 // LCD RST .... Pin 1
#define PIN_SCLK 6 // LCD SPIClk . Pin 4
// LCD Gnd .... Pin 2
// LCD Vcc .... Pin 8
// LCD Vlcd ... Pin 7
#define LCD_C LOW
#define LCD_D HIGH
#define LCD_X 84
#define LCD_Y 48
#define LCD_CMD 0
int a = 0;
static const byte ASCII[][5] =
{
{0x00, 0x00, 0x00, 0x00, 0x00} // 20
,{0x00, 0x00, 0x5f, 0x00, 0x00} // 21
,{0x00, 0x07, 0x00, 0x07, 0x00} // 22
,{0x14, 0x7f, 0x14, 0x7f, 0x14} // 23
,{0x24, 0x2a, 0x7f, 0x2a, 0x12} // 24
,{0x23, 0x13, 0x08, 0x64, 0x62} // 25
,{0x36, 0x49, 0x55, 0x22, 0x50} // 26
,{0x00, 0x05, 0x03, 0x00, 0x00} // 27
,{0x00, 0x1c, 0x22, 0x41, 0x00} // 28
,{0x00, 0x41, 0x22, 0x1c, 0x00} // 29
,{0x14, 0x08, 0x3e, 0x08, 0x14} // 2a
,{0x08, 0x08, 0x3e, 0x08, 0x08} // 2b
,{0x00, 0x50, 0x30, 0x00, 0x00} // 2c
!
"
#
$
%
&
'
(
)
*
+
,
,{0x08,
,{0x00,
,{0x20,
,{0x3e,
,{0x00,
,{0x42,
,{0x21,
,{0x18,
,{0x27,
,{0x3c,
,{0x01,
,{0x36,
,{0x06,
,{0x00,
,{0x00,
,{0x08,
,{0x14,
,{0x00,
,{0x02,
,{0x32,
,{0x7e,
,{0x7f,
,{0x3e,
,{0x7f,
,{0x7f,
,{0x7f,
,{0x3e,
,{0x7f,
,{0x00,
,{0x20,
,{0x7f,
,{0x7f,
,{0x7f,
,{0x7f,
,{0x3e,
,{0x7f,
,{0x3e,
,{0x7f,
,{0x46,
,{0x01,
,{0x3f,
,{0x1f,
,{0x3f,
,{0x63,
,{0x07,
0x08,
0x60,
0x10,
0x51,
0x42,
0x61,
0x41,
0x14,
0x45,
0x4a,
0x71,
0x49,
0x49,
0x36,
0x56,
0x14,
0x14,
0x41,
0x01,
0x49,
0x11,
0x49,
0x41,
0x41,
0x49,
0x09,
0x41,
0x08,
0x41,
0x40,
0x08,
0x40,
0x02,
0x04,
0x41,
0x09,
0x41,
0x09,
0x49,
0x01,
0x40,
0x20,
0x40,
0x14,
0x08,
0x08,
0x60,
0x08,
0x49,
0x7f,
0x51,
0x45,
0x12,
0x45,
0x49,
0x09,
0x49,
0x49,
0x36,
0x36,
0x22,
0x14,
0x22,
0x51,
0x79,
0x11,
0x49,
0x41,
0x41,
0x49,
0x09,
0x49,
0x08,
0x7f,
0x41,
0x14,
0x40,
0x0c,
0x08,
0x41,
0x09,
0x51,
0x19,
0x49,
0x7f,
0x40,
0x40,
0x38,
0x08,
0x70,
0x08,
0x00,
0x04,
0x45,
0x40,
0x49,
0x4b,
0x7f,
0x45,
0x49,
0x05,
0x49,
0x29,
0x00,
0x00,
0x41,
0x14,
0x14,
0x09,
0x41,
0x11,
0x49,
0x41,
0x22,
0x49,
0x09,
0x49,
0x08,
0x41,
0x3f,
0x22,
0x40,
0x02,
0x10,
0x41,
0x09,
0x21,
0x29,
0x49,
0x01,
0x40,
0x20,
0x40,
0x14,
0x08,
0x08}
0x00}
0x02}
0x3e}
0x00}
0x46}
0x31}
0x10}
0x39}
0x30}
0x03}
0x36}
0x1e}
0x00}
0x00}
0x00}
0x14}
0x08}
0x06}
0x3e}
0x7e}
0x36}
0x22}
0x1c}
0x41}
0x01}
0x7a}
0x7f}
0x00}
0x01}
0x41}
0x40}
0x7f}
0x7f}
0x3e}
0x06}
0x5e}
0x46}
0x31}
0x01}
0x3f}
0x1f}
0x3f}
0x63}
0x07}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
2d
2e
2f
30
31
32
33
34
35
36
37
38
39
3a
3b
3c
3d
3e
3f
40
41
42
43
44
45
46
47
48
49
4a
4b
4c
4d
4e
4f
50
51
52
53
54
55
56
57
58
59
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Seccin LCD-3310-01
Revisin: 03
Junio 2013
0x51,
0x7f,
0x04,
0x41,
0x02,
0x40,
0x01,
0x54,
0x48,
0x44,
0x44,
0x54,
0x7e,
0x52,
0x08,
0x44,
0x40,
0x10,
0x41,
0x04,
0x08,
0x44,
0x14,
0x14,
0x08,
0x54,
0x3f,
0x40,
0x20,
0x40,
0x28,
0x50,
0x64,
0x08,
0x00,
0x41,
0x08,
0x06,
0x49,
0x41,
0x08,
0x41,
0x01,
0x40,
0x02,
0x54,
0x44,
0x44,
0x44,
0x54,
0x09,
0x52,
0x04,
0x7d,
0x44,
0x28,
0x7f,
0x18,
0x04,
0x44,
0x14,
0x14,
0x04,
0x54,
0x44,
0x40,
0x40,
0x30,
0x10,
0x50,
0x54,
0x36,
0x7f,
0x36,
0x08,
0x09,
0x45,
0x41,
0x10,
0x7f,
0x02,
0x40,
0x04,
0x54,
0x44,
0x44,
0x48,
0x54,
0x01,
0x52,
0x04,
0x40,
0x3d,
0x44,
0x40,
0x04,
0x04,
0x44,
0x14,
0x18,
0x04,
0x54,
0x40,
0x20,
0x20,
0x40,
0x28,
0x50,
0x4c,
0x41,
0x00,
0x08,
0x10,
0x09,
0x43}
0x00}
0x20}
0x00}
0x04}
0x40}
0x00}
0x78}
0x38}
0x20}
0x7f}
0x18}
0x02}
0x3e}
0x78}
0x00}
0x00}
0x00}
0x00}
0x78}
0x78}
0x38}
0x08}
0x7c}
0x08}
0x20}
0x20}
0x7c}
0x1c}
0x3c}
0x44}
0x3c}
0x44}
0x00}
0x00}
0x00}
0x08}
0x06}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
5a
5b
5c
5d
5e
5f
60
61
62
63
64
65
66
67
68
69
6a
6b
6c
6d
6e
6f
70
71
72
73
74
75
76
77
78
79
7a
7b
7c
7d
7e
7f
Z
[
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
}
void LcdString(char *characters) {
while (*characters) {
LcdCharacter(*characters++);
}
}
void LcdWrite(byte dc, byte data) {
digitalWrite(PIN_DC, dc);
digitalWrite(PIN_SCE, LOW);
shiftOut(PIN_SDIN, PIN_SCLK, MSBFIRST, data);
digitalWrite(PIN_SCE, HIGH);
}
// gotoXY routine to position cursor
// x - range: 0 to 84
// y - range: 0 to 5
void gotoXY(int x, int y) {
LcdWrite( 0, 0x80 | x); // Column.
LcdWrite( 0, 0x40 | y); // Row.
}
void drawLine(void) {
unsigned char j;
for(j=0; j< 84; j++) { // top
gotoXY (j,0);
LcdWrite (10,0x01); //
}
for(j=0; j< 84; j++) { //Bottom
gotoXY (j,5);
LcdWrite (10,0x80); //
}
for(j=0; j< 6; j++) { // Right
gotoXY (83,j);
LcdWrite (10,0xff); //
}
for(j=0; j< 6; j++) {// Left
gotoXY (0,j);
LcdWrite (10,0xff); //
}
}
void setup(void) {
LcdInitialise();
LcdClear();
}
void loop(void) {
// Muestra algunas animaciones sencillas de caracteres
//
int a,b;
char Str[20]; //15
/* // Dibujar un cuadro
for(b=1020; b>0; b--) {
drawLine();
for(a=0; a<=5 ; a++)
*/
{
gotoXY(8,2); //gotoXY(4,1);
// Poner el texto en el recuadro
LcdString ("TestDisplay");
gotoXY(7,3);
LcdString ("Este ejemplo");
gotoXY(3,4);
LcdString ("funciona bien");
gotoXY(0,5);
LcdString (" ");
gotoXY(0,6);
LcdString (" ");
gotoXY(24,1);
Seccin LCD-3310-01
Revisin: 03
Junio 2013
LcdCharacter('o');
LcdCharacter('l');
LcdCharacter('a');
LcdCharacter('!');
LcdCharacter(' ');
LcdCharacter('-');
// Dibujar - en esta posicin
gotoXY(10,6);
LcdCharacter('_');
//
gotoXY(10,6);
LcdCharacter('=');
delay(500);
LcdClear();
}
}
LCD test2
CDIGO
/*
lcd_test2.pde
Este Cdigo tiene caractersticas adicionales
incluyendo una funcin de posicionamiento XY en la
pantalla
y una funcin Dibuja la linea de Nokia 3310 LCD
Se modific a partir del original
http://playground.arduino.cc/Code/PCD8544
*/
// Espero que le funcione a usted//
Seccin LCD-3310-01
Revisin: 03
Junio 2013
!
"
#
$
%
&
'
(
)
*
+
,
.
/
0
1
2
3
4
5
6
7
8
9
:
;
<
=
>
?
@
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
[
,{0x00,
,{0x04,
,{0x40,
,{0x00,
,{0x20,
,{0x7f,
,{0x38,
,{0x38,
,{0x38,
,{0x08,
,{0x0c,
,{0x7f,
,{0x00,
,{0x20,
,{0x7f,
,{0x00,
,{0x7c,
,{0x7c,
,{0x38,
,{0x7c,
,{0x08,
,{0x7c,
,{0x48,
,{0x04,
,{0x3c,
,{0x1c,
,{0x3c,
,{0x44,
,{0x0c,
,{0x44,
,{0x00,
,{0x00,
,{0x00,
,{0x10,
,{0x00,
,{0x00,
};
0x41,
0x02,
0x40,
0x01,
0x54,
0x48,
0x44,
0x44,
0x54,
0x7e,
0x52,
0x08,
0x44,
0x40,
0x10,
0x41,
0x04,
0x08,
0x44,
0x14,
0x14,
0x08,
0x54,
0x3f,
0x40,
0x20,
0x40,
0x28,
0x50,
0x64,
0x08,
0x00,
0x41,
0x08,
0x06,
0x00,
0x41,
0x01,
0x40,
0x02,
0x54,
0x44,
0x44,
0x44,
0x54,
0x09,
0x52,
0x04,
0x7d,
0x44,
0x28,
0x7f,
0x18,
0x04,
0x44,
0x14,
0x14,
0x04,
0x54,
0x44,
0x40,
0x40,
0x30,
0x10,
0x50,
0x54,
0x36,
0x7f,
0x36,
0x08,
0x09,
0x7D,
0x7f,
0x02,
0x40,
0x04,
0x54,
0x44,
0x44,
0x48,
0x54,
0x01,
0x52,
0x04,
0x40,
0x3d,
0x44,
0x40,
0x04,
0x04,
0x44,
0x14,
0x18,
0x04,
0x54,
0x40,
0x20,
0x20,
0x40,
0x28,
0x50,
0x4c,
0x41,
0x00,
0x08,
0x10,
0x09,
0x00,
0x00}
0x04}
0x40}
0x00}
0x78}
0x38}
0x20}
0x7f}
0x18}
0x02}
0x3e}
0x78}
0x00}
0x00}
0x00}
0x00}
0x78}
0x78}
0x38}
0x08}
0x7c}
0x08}
0x20}
0x20}
0x7c}
0x1c}
0x3c}
0x44}
0x3c}
0x44}
0x00}
0x00}
0x00}
0x08}
0x06}
0x00}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
5d
5e
5f
60
61
62
63
64
65
66
67
68
69
6a
6b
6c
6d
6e
6f
70
71
72
73
74
75
76
77
78
79
7a
7b
7c
7d
7e
7f
80
]
^
_
`
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
{
|
}
Seccin LCD-3310-01
Revisin: 03
Junio 2013
}
}
void clearPixels() {
for (int x=0;x<83;x++) {
for(int y=0;y<47;y++) {
pixels[x][y] = 0;
}
}
}
// Draw a rectangle of width w and height h from x,y
void drawRect(int x, int y, int w, int h) {
drawHorizontalLineXY(x,x+w,y);
drawHorizontalLineXY(x,x+w,y+h);
drawVerticalLineXY(y,y+h,x);
drawVerticalLineXY(y,y+h,x+w);
}
void initProgressBar() {
LcdClear();
clearPixels();
drawRect(10,21, 64, 5);
}
void setProgressBar(int value) {
int startValue = ((float)prev_prog/100.0)*64;
int newValue = ((float)value/100.0)*64;
if (newValue < startValue) { startValue = 0; }
int pb_x = 10;
int pb_y = 21;
for (int i=startValue;i
drawVerticalLine(pb_x+i,pb_y,5);
}
prev_prog = value;
}
// ******** *****
void setup(void) {
LcdInitialise();
initProgressBar();
while (progress < 100) {
progress++;
setProgressBar(progress);
delay(25);
}
LcdClear();
clearPixels();
}
void loop(void) {
// Muestra algunas animaciones sencillas de caracteres
int a,b;
char Str[20]; //15
{
gotoXY(4,0); //gotoXY(4,1); // Poner el texto en el
recuadro
LcdString ("TestDisplay");
gotoXY(0,1);
LcdString ("Este ejemplo");
gotoXY(0,2);
LcdString ("LCDtest.pde");
gotoXY(0,3);
LcdString ("funciona ");
gotoXY(22,4);
LcdString (" bien ");
gotoXY(0,5);
LcdString ("0123456789AB");
}
}
Exencin de responsabilidad:
Seccin LCD-3310-01
Revisin: 03
Junio 2013