Professional Documents
Culture Documents
7-10
11-14
15
16
17
18
19-20
Tn chn
VSS -VDD
V0
RS (Register select)
CS (Chip select )
Chc nng
-Cp ngun
-Chnh tng phn
-Chn thanh ghi
0: Chn thanh ghi m lnh
1: Chn thanh ghi d liu
-Khi giao tip theo chun SPI th chn ny
l chn chip select
0: Khng chn GLCD
1: Chn GLCD
R/W (Read/Write)
-Chn ch c hoc ghi GLCD
SID (Serial Data Input)
0: Ghi
1: c
-Khi giao tip theo chun SPI th chn ny
l chn nhn d liu ni tip.
E (Enable)
-Nhn xung cho php
SCLK (Serial Clock )
-Khi giao tip theo chun SPI th y l
chn nhn xung clock.
D0-D3
-4 bit d liu thp khi giao tip theo chun
8 bit
D4-D7
-4 bit d liu cao khi giao tip theo chun 8
bit
-4 bit d liu khi giao tip theo chun 4 bit
PSB
-Chn ch iu khin
0: SPI (ni tip)
1: 8 hoc 4 bit (song song)
NC (No Connect)
B trng
RST (Reset)
Reset GLCD
Vout
in p ra GLCD
BLA-BLK
Cp in cho led nn gip quan st c
(Back Light Anode Cathode) trong bng ti
3. Tp lnh
Nhm lnh 1 (Khi RE=0: nhm lnh c bn)
M lnh
Lnh
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
CLEAR
HOME
ENTRY
MODE
I\D
DISPLAY
ON/OFF
CURSOR
DISPLAY
CONTROL
S\C
R\L
FUNCTION
0
SET
DL
0
RE
AC5
AC4
AC3
AC2
AC1
AC0
SET
CGRAM
ADDR
SET
DDRAM
ADDR
READ
BUSY
FLAG(BF
&
ADDR.
WRITE
RAM
READ
RAM
0
AC6
AC5
AC4
AC3
AC2
AC1
AC0
M t
Thi
gian
thc
hin
Xa mn hnh - ghi y
vng nh DDRAM gi tr
20H (m ca khong
1.6ms
trng) v a con tr v
a ch 00H
a con tr v a ch
00H trong vng nh
72us
DDRAM
Ci t cch dch con tr
72us
khi c hoc ghi d liu.
D=1: Bt hin th
C=1: Bt con tr
72us
B=1: Con tr nhp nhy
iu khin v tr con tr v
dch hin th; ni dung ca 72us
DDRAM khng i
DL=1: Ch 8 bit
DL=0: Ch 4 bit
72us
RE=1: Lnh m rng
RE=0: Lnh c bn
t a ch con tr trong
vng nh CGRAM
t a ch con tr trong
vng nh DDRAM
AC6 lun bng 0
c c bn (BF) xem
GLCD thc hin lnh
BF AC6 AC5 AC4 AC3 AC2 AC1 AC0 trc xong cha, ng
thi c gi tr ca ti v
tr con tr.
Ghi d liu vo b nh
D7 D6 D5 D4 D3 D2 D1 D0 RAM ni (DDRAM/
CGRAM/IRAM/GDRAM)
c d liu t b nh
D7 D6 D5 D4 D3 D2 D1 D0 RAM ni (DDRAM/
CGRAM/IRAM/GDRAM)
72us
72us
0us
72us
72us
RS
RW
D7
D6
D5
D4
D3
D2
D1
STAND BY
SCROLL or
RAM
ADDR.
SELECT
DL
1
RE
AC5
AC4
AC3
AC2
AC1
AC3
AC2
AC1
AC6
AC5
AC4
AC3
AC2
AC1
EXTENDED
FUNCTION
SET
SET IRAM
or SCROLL
ADDR
SET
GRAPHIC
RAM
ADDR.
D0
M t
a GLCD vo ch
ch v thot khi ch
1
ch khi nhn bt c lnh
no
SR=1: Cho php cun dc
hin th
SR=0: Cho php
SR
IRAM(ch m rng)
SR=0: Cho php
CGRAM(ch c bn)
DL=1: Ch 8 bit
DL=0: Ch 4 bit
RE=1: Lnh m rng
0
RE=0: Lnh c bn
G=0:Tt hin th nh
G=1: Bt hin th nh
Bit SR (xem li nhm
lnh SCROLL or RAM
ADDR. SELECT)
AC0 SR=1: AC0-AC5 a ch
bt u cun dc
SR=0:AC0-AC3 a ch
ca IRAM
t a ch cho GDRAM
u tin t a ch cho
AC0
ct sau l a ch hng
AC0
a ch ct :AC0-AC6
a ch hng: AC0-AC3
Bi 12.1 Vit chng trnh th vin GLCD.c tin s dng trong cc bi tp lin quan n
LCD graphic.
Ni dung th vin nh sau:
#define ON 1
#define OFF 0
#define XVAL 16
#define YVAL 32
#define GLCD_WIDTH 128
#define TEXT 0x30
#define graphic 0x36
typedef union
{
unsigned int16 word;
// M khi to ch text
// M khi to ch graphic
Thi
gian
thc
hin
72us
72us
72us
72us
72us
// bo cp nht xong
}
}
void ktglcd(int8 mode)
{
glcdcmd(mode);
delay_ms(5);
glcdcmd(0x0c);
delay_ms(5);
}
void glcd_pixel(int8 x, int8 y, int1 color)
{
int8 v, h, b;
if(y>31){x += 128; y-= 32;};
v = y;
h = x/16;
b = 15 - (x%16);
if (color == ON) bit_set (gdram.pix[v][h].word, b);
else bit_clear (gdram.pix[v][h].word, b);
gdram.refresh = TRUE;
}
void xuatanh(int width,int height,int x,int y)
// Chng trnh cho php xut nh ra LCD
{
// Thay i Logo_DHSPKTTP[ ] i
unsigned int i=0, j=0, k=0;
// nh khc
unsigned int16 count=0;
for(j=0;j<height;j++)
{
for(;i<width;)
{
for(k=8;k>0;k--)
{
glcd_pixel(i+x,j+y,bit_test(Logo_DHSPKTTP[count],(k-1)));
i++;
}
count++;
}
i=0;
}
}
Phn A : Ch text
a ch DDRAM
0x80
0x90
0x88
0x98
0x81
0x91
0x89
0x99
0x82
0x92
0x8A
0x9A
0x83
0x93
0x8B
0x9B
0x84
0x94
0x8C
0x9C
0x85
0x95
0x8D
0x9D
0x86
0x96
0x8E
0x8E
0x87
0x97
0x8F
0x9F
void main()
{
SET_UP_PORT_IC_CHOT();
ktglcd(text);
// Khi to ch text
glcdcmd(0x01);
// Xa mn hnh
delay_ms(5);
glcdcmd(0x80);
// u hng 1
Bi 12.3 Vit chng trnh o nhit LM35, DS18B20,m sn phm 99-79 ng thi m
giy chnh xc 00-59 hin th GLCD ch text theo hnh sau.
LM:
DS:
SP:
TI :
32
33
82
28
Click vo icon
chy phn mm GNU
M nh cn chuyn i Tp tin/ M => chn nh cn m
Thay i kch thc nh cho ph hp hin th ln c mn hnh 128x64: Chn
nh/Co dn nh
Click vo icon
chy phn mm
M file cn chuyn i: File/Load image
Cu hnh file ly m theo chiu ngang bng cch click vo mc Horizontal
Chuyn nh sang m hex: Chn File/Save output => t tn file ( tenfile.c) ri nhn
Save
Bi mu 12.4 Vit chng trnh hin th Logo DH SPKT kch thc 64x64 ng thi hin
th game Ping Pong bn na LCD cn li
Chng trnh
#include<TV_PICKIT2_SHIFT_1.c>
#include<spkt.c>
#include<tvglcd.c>
#include<graphics.c>
#include <stdlib.H>
void main()
{ unsigned int8 xb,yb,sstop=0,xt=82,lt=15,diem=0;
signed int chieux=1, chieuy=1;
int tatdiem=0;
set_tris_b(0x3c);
SET_UP_PORT_IC_CHOT();
ktglcd(text);
// Khi to ch text
glcdcmd(0x01); delay_ms(5);
// Xa mn hnh
glcdcmd(0x94);glcdchar(" 0="); glcdchar(0x1a); // Giao din hng dn chi game
glcdcmd(0x8c);glcdchar(" 1="); glcdchar(0x1b);
glcdcmd(0x9c);glcdchar(" 2=Play");
delay_ms(5);
ktglcd(graphic);
// Khi to ch Graphic
glcdmaunen(0) ;
xuatanh(64,64,0,0) ;
// Hin th Logo SPKT (chiu rng, chiu cao, x,y)
glcd_rect(65, 0, 127, 63, 0, 1);
// Hin th khung vung bao quanh ca s game
glcd_rect(66, 1, 126, 62, 0, 1);
glcd_rect(65, 60, 127, 63, 1, 0);
// Xa cnh y ca khung vung
glcdcapnhat () ;
// Cho php hin th ra mn hnh
WHILE(TRUE)
{
if(sstop)
{
glcd_circle(xb, yb,4, 1, 1);
// hin th tri banh hnh trn
capnhatvung (xb-6,yb-6,13,13) ; // Cho php hin th tri banh
glcd_rect(xt, 60, xt+lt, 62, 1, 1); // Hin th thanh hng tri banh
capnhatvung (64,60,128,3) ;
// Cho php hin th thanh hng banh
glcd_circle(xb,yb,4, 1, 0);
// Xa tri banh v tr c
xb+=chieux;
// Cp nht v tr mi cho tri banh
yb+=chieuy;
if((yb<40)&&(tatdiem==1))
// Tt hin th im khi to y banh <40
{tatdiem=0;ktglcd(text);glcdcmd(0x95);glcdchar(" ");ktglcd(graphic);}
if(xb>=121)chieux=rand()%1-2; if(xb<=71) chieux=rand()%2+1;
if((yb<=7))chieuy=rand()%2+1; // Khi banh ng cc cnh bao th i chiu di chuyn
if(yb>=60)
// Khi ta y ca banh >59 th Game Over
{ ktglcd(text);
// Khi to ch text hin th Game Over
glcdcmd(0x95);
glcdchar("Game");
glcdcmd(0x8d);
glcdchar("Over");
sstop=0;
ktglcd(graphic);
}
else if(((yb==55)||(yb==56))&&((xb>(xt-4))&&(xb<(xt+lt+4))))
{
// Khi thanh hng c banh th tng im ng thi i chiu y ca banh
diem++;
chieuy=rand()%1-2; // Chiu y c nhn ngu nhin gi tr -1 hoc -2
ktglcd(text);
glcdcmd(0x95);glcdchar(" ");glcdchar(diem/10+48);glcdchar(diem%10+48);
tatdiem=1;
// Hin th im s
ktglcd(graphic);
}
}
if(input(pin_b2)==0)
// Kim tra nt iu khin qua phi
{
glcd_rect(xt, 60, xt+lt, 62, 1, 0);
if(xt<110) xt+=2;
}
if(input(pin_b3)==0)
// Kim tra nt iu khin qua tri
{
glcd_rect(xt, 60, xt+lt, 62, 1, 0);
if(xt>69) xt-=2;
}
if(input(pin_b4)==0)
// Kim tra nt Play
{ delay_ms(10);
if(input(pin_b4)==0)
{
diem=0;
xb= 75;yb= 10;
sstop=1;
ktglcd(text);
glcdcmd(0x01); delay_ms(2);
ktglcd(graphic);
glcd_rect(67, 3,112, 63, 1, 0);
capnhatvung (67,3,45,61) ;
while(input(pin_b4)==0);
}
}
}
}
Bi 12.5 Vit chng trnh ng h s DS13B07 hin th GLCD theo hnh sau:
( v d: 6 gi 40 pht 15 giy)
12
12
H
M
S
Bi 12.7 Vit chng trnh v 1 hnh ngi ( dng chng trnh v ng thng v hnh trn)
hin th GLCD v dng cc phm 1,9,4,6 ca phm ma trn iu khin cho ngi ny di
chuyn qua tri , phi , ln , xung.