You are on page 1of 34

Chng 4 Gii thiu v thit b hin th (LCD),cch ghp ni vi vi x l (Hunghe`o)

Mn hnh tinh th lng LCD (liquid Crystal Display)

I/ Kin thc chung v LCD (Liquid Crystals Display).


1.Mn hnh tinh th lng (LCD) l g v phm vi ng dng? _ Ngy nay trong lnh vc thng tin v gii tr, vic dng mn hnh ng tia ca tt truyn thng (CRT) ang dn c thay th bng vic s dng mn hnh tinh th lng (LCD). V LCD c nhiu u im vt tri nh : dy mn hnh nh hn rt nhiu , Kch thc a dng t loi mn hnh nh ti mn hnh cc ln, Tiu th t nng lng v khng nguy him bng CRT.

LCD dng trong thng tin gii tr (Mn hnh Tivi, my vi tnh)

LCD dng trong truyn thng (Mn hnh in thoi, hin th ca h thng chuyn dng)

LCD dng trong lnh vc iu khin phn ny chng ta ch xt ti LCD loi nh v vic dng LCD hin th ca h thng chuyn dng. 2. C s vt l ca LCD. _ ng nh tn gi ca n, LCD (Liquid Crystals Display ) - Mn hnh tinh th lng - , c s vt l LCD c th hin th c thng tin , hnh nh chnh l do c tnh ca vt liu ch to nn LCD, tc l Liquid Crystals (thch anh lng). _ c tnh ca Liquid Crystals : Th nht: Liquid Crystals l vt liu trong sut va c tnh cht ca ch rn,li va c tnh cht ca cht lng (chnh iu ny lam nn s khc bit): + nh sng truyn qua Liquid Crystals theo gc nghing ca cc phn t , v nh sng b phn x tr li. y chnh l tnh cht ca cht rn. + Khi Liquid Crystals c tch in, n s b thay i gc nghing ca cc phn t, v kt qu l nh sng c th truyn xuyn qua. y chnh l tnh cht ca cht lng. Th hai :
2

LCD gm 2 b mt dng rnh , gia 2 b mt ny l 1 lp Thch Anh lng (Liquid Crystal). Trc ht ni v c tnh 2 b mt rnh : trn mi b mt c cc rnh . Cc rnh trn 1 mt song song vi nhau v vung gc vi cc rnh trn mt cn li (theo hng bc-nam/ ty-ng). By gi ni v c tnh ca lp Liquid Cristal ( gia) : nh sng truyn qua lp ny theo gc ca cc phn t, v v th nh sng b xon 90 khi xuyn qua lp Liquid Cristal ny. Nhng khi phn cc cho lp Liquid Cristal, cc phn t c sp xp li theo phng ngang, v v th m nh sng c th truyn qua lp Liquid Cristal m khng b xon. (Hnh 2) Th ba : V tnh cht ca lp lc nh sng n cc. Chng ta u bit rng nh sng l sng truyn theo nhiu phng khc nhau. Lp lc n cc thc ra ch l tp hp cc ng thng trong sut song song Chnh l 2 b mt rnh ca LCD ni trn-. Sau khi i qua lp lc n cc, nh sng ch cn thnh phn sng c phng trng vi phng cc ng thng trn lp lc cc. LCD c 2 lp lc n cc c phng lc vung gc nhau. V vy, sau khi ra khi c 2 lp lc n cc nh sng b chn li hon ton. nh sng ch c th truyn qua c 2 lp lc n cc nu sau khi qua lp lc th nht nh sng c xon 1 gc 90 ri mi i qua lp lc th 2. Tht may, vic xon nh sng hon ton c th thc hin c theo tnh cht lp Liquid Cristal ni trn. C th tng kt ng i ca nh sng nh sau: c 1 im ti trn LCD: nh sng pht ra t bn trong LCD s i qua b mt rnh th nht (lp lc n cc), sau nh sng i qua lp Liquid Cristal (lp ny c phn cc nn nh sng qua n m khng b xon), sau nh sng qua b mt rnh th 2lp phn cc th 2 (lp lc n cc), nh sng khng l ra c khi lp ny(b chn li hon ton) ta thy 1 im ti trn mn hnh LCD. (Hnh 3) c 1 im sng trn LCD: qu trnh i tng t nh3

ng khc ch nh sng qua lp Liquid Cristal khng c phn cc nn nh sng b xon 90 , nh th m i qua c b mt rnh th 2 (lp lc n cc) Ta thy 1 im sng trn LCD. (Hnh 3)

Hnh 2

Hnh 3

II/ Xt LCD c th Hitachi HD44780

LCD hin th c 2 hng mi hng hin th c 16 k t (LCD c 14 chn) nh c minh ho trn hnh. Thng s ca LCD : +Kch thc hin th : 16 k t x 2 dng. +Mu hin th: en/trng +Ch giao tip : 8 bt v 4 bt +C ch hin th : 5x7 hoc 5x10 1. Cu trc ca LCD
1a. Gii thiu s chn LCD .

_ LCD c tng s 14 chn chia lm 3 nhm: Nhm 1: (3 chn) Cp ngun VDD, VSS : cp 5V, 0V VEE: thay i in p thay i tng phn Nhm 2: (8 chn) Vo ra thng tin vi VK : T chn D0-D7 Nhm 3 : (3 chn) iu khin vic vo ra thng tin : E,RS,R/W E :(bt /tt ) (cho php/ khng cho php trao i thng tin vi VK ) RS :(loi thng tin trao i)Thng tin trao i l lnh iu khin hay d liu hin th

R/W : (hng truyn ca thng tin) c trng thi t LCD hay thng tin do VK gi vo LCD hin

th C th tn gi v m t chc nng cc chn c tng kt trong bng sau:


Interface Pin Connections
Ch n s
1 2 3

K hi u
VSS VDD VEE

Tn Cp ngun Cp ngun
Contrast 0V (GND)

M t chc nng
Ni vi dng ngun (+4.5V~+5.5V)

4 5

RS RW

Chn thanh ghi


Read/Write

Read Write enable

iu chnh in p chn ny s tng gim tng phn ca LCD. cho nn n thng c ni vi bin tr. Nu RS=0 : LCD nhn lnh t VK Nu RS=1: LCD nhn d liu t VK hin th Chn chc nng ghi/ c RS=1 : chn chc nng c d liu t LCD vo VK RS=0 : chn chc nng ghi d liu t VKvo LCD hint th Cho php/ ko cho php LCD trao i thng tin vi VK. Ch khi E chuyn t 10 th tn hiu cc chn D0-D7 mi c a vo LCD.

7 8

D0 D1

Data bus 0-7

8 chn ny c ni vi VK vo/ra

9 10 11

D2 D3 D4

12 13 14

D5 D6 D7

thng tin

_ T nhng c im v chc nng c cp trn ta c th i ti vic hnh thnh vic ghp ni ca LCD vi vi iu khin nh sau:

Nh trn hnh minh ho ta c th thy cc chn D0-D3 l ng tn hiu 2 chiu ( trao i thng tin Vi iu khin v LCD). 3 chn iu khin RS, R/W, E l chn a tn hiu iu khin t Vi iu khin ti LCD nn n ch l ng tn hiu 1 chiu thi.

V chn Contrast (VEE) iu chnh tng phn ca LCD nn ta cp ngun cho n thng qua bin tr (nh hnh v)

1b. Cu trc b nh trong LCD.

Mn hin th ca LCD ni chung c th ln ti hn 40 k t trn mt dng v mt mn c th c ti 4 dng.Trong c mt b RAM cha m 80 k t gi l b nh DDRAM(display data ram),mn hin th c th dch c mn quan st c cc k t khc. B k t hin th : B hin th c th hin th c cc k t c lp trnh trc hoc cc k t do ngi dng nh ngha.Trong b iu khin hin th c mt b nh ROM dng pht k t, trong Rom ny cha 192 k t,khi cn chn nhng k t ny th n c chn thng qua tng m ca n, c ti 96 m k t ASCII, 64 m k t ting Nht, 32 k t c bit khc. Trong b iu khin LCD cng c mt b RAM gi l CGRAM(character generator ram) trong b nh ny lu 8 k t do ngi dng nh ngha, cc k t u tin phi vit vo CGRAM trc ri sau mi hin th ra mn hin th c. 2. Tp lnh ca LCD.
2a. Kh nng hin th ca LCD.

LCD c kh nng hin th rt linh hot _ Thit lp ch hin th : Hin th trn 1 dng hay c 2 dng. Chn c ch hin th (5x7 hay5x10). Chn kiu con tr mn hnh (c/khng gch chn , c/khng nhp nhy) _ Thit lp kiu trao i thng tin : Trao i thng tin vi Vi iu khin dng 4 bit hay 8 bt. _ Trnh by ni dung hin th. Hin th k t trn LCD. Hin th k t v tr bt k trn LCD. To ch chy trn LCD
9

Hin th k t , biu tng , hnh v tu ngi dng trn LCD.


2b. Tp lnh ca LCD

thc hin c cc kh nng hin th trn, ta cn ra lnh cho LCD thc hin cc thao tc, tc l phi s dng tp lnh ca LCD.

10

Binary Command Clear Display Hex D7 0 0 0 0 0 0 0 D6 0 0 0 0 0 0 1 D5 0 0 0 0 0 1 A A D4 0 0 0 0 1 8/4 A D3 0 0 0 1 D/C 2/1 A D2 0 0 1 D R/L 10 / 7 A D1 0 1 1/D U x x A D0 1 x S B x x A 01 02 or 03 04 to 07 08 to 0F 10 to 1F 20 to 3F 40 to 7F

(Xo mn hnh)
Display & Cursor Home Character Entry Mode

(Ch nhn d liu)


Display On/Off & Cursor

(bt/tt LCD v kiu con tr)


Display/Cursor Shift Function Set Set CGRAM Address

(Dch LCD v con tr)

Set Display Address 1 A 1 / D: 1=Increment*, 0=Decrement 1=Display shift on, S: 0=Off* D: U: B: D / C: 1=Display on, 0=Off* 1=Cursor underline on, 0=Off* 1=Cursor blink on, 0=Off* 1=Display shift, 0=Cursor move

A A A A A 80 to FF R / L: 8 / 4: 1=Right shift, 0=Left shift 1=8-bit interface*, 0=4-bit interface 2 / 1: 1=2 line mode, 0=1 line mode* 10 / 7: 1=5x10 dot format, 0=5x7 dot format* x = Don't care * = Initialization settings

Ch thch bng lnh: K hiu X 1/D S D U B D/C R/L 8/4 2/1 10/7 Con tr c gch chn Con tr nhp nhy Dch chuyn Chiu dch chuyn Ch trao i thng tin S dng hin th C ch Chc nng a ch con tr Dch con tr sau khi hin th Ch thch bt nh phn (0,1)tu 1= t ng tng; 0= t ng gim C (1); Khng (0) =1: bt LCD; =0: tt LCD C (1); Khng (0) C (1); Khng (0) Mn hnh (1); Con tr (0) Sang phi (1); Sang tri (0) 8 bt (1); 4 bt (0) 2 dng (1) ; 1 dng (0) C 5x10 (1); C 5x7 (0)

11

_ Cc lnh trn chia lm 3 nhm : Nhm 1: Cc lnh thit lp ch hin th : Display On/Off & Cursor , Function Set , Character Entry Mode . Nhm 2: Cc lnh iu khin qu trnh hin th (con tr v mn hnh): Display & Cursor Home , Display On/Off & Cursor , Display/Cursor Shift, Set CGRAM Address, Nhm 3: Lnh kim tra trng thi ca LCD : Set Display Address _ Trn y l tp lnh ca LCD, cc m lnh ny s c a t Vi iu khin vo LCD qua 8 ng D0-D7. Mun LCD nhn v hiu cc tn hiu a vo ny l lnh th phi s dng ng Nhm 3 chn iu khin vic vo ra thng tin : E,RS,R/W . Khi no LCD hiu tn hiu a vo l d liu, khi no l lnh l do s kt hp ca 3 chn ny quyt nh. Cc ch vo ra thng tin ca LCD (kt hp cc chn E, RS, R/W) C 2 ch a thng tin vo LCD (t vi iu khin): thng tin a vo l lnh; Thng tin a vo l d liu hin th C 1 ch a thng tin ra khi LCD (vo vi iu khin) : c trng thi hin hnh ca LCD cho Vi iu khin bit. iu khin LCD l phi s dng linh hot cc ch ny. Vic quyt nh dng ch vo ra thng tin no l do 3 chn E, RS,R/W ca LCD quyt nh. + Chn E: quyt nh vic khi no chp nhn thng tin cc chn cn li : l khi tn hiu chn E chuyn mc t 1 0. + Chn RS quyt nh vic nhn lnh hay d liu. Lnh (RS=0 ); D liu (RS=1) + Chn R/W quyt nh chiu truyn d liu . Vo LCD(R/W=0); Ra khi LCD (R/W=0). Tng hp theo bng sau:

12

V d mun hin th 1 ch ci A trn LCD ta phi ln lt qua cc ch sau: Cp ngun c trng thi ca LCD xem LCD sn sng cha Gi lnh t Vi iu khin vo LCD thit lp ch hin th Gi m ca k t cn hin th vo LCD.

RS 0 0 1

Cc R/ W 0 1 0

ch vo/ra thng tin do RS, R/W quyt nh Ch Lnh gi t Vi iu khin vo LCD c c bn (D7) v v tr con tr (D0-D6) ca LCD D liu gi t Vi iu khin vo LCD

13

3. Cc ng dng hin th trn LCD. Phn ny s s dng tp lnh ca LCD c xt mc 2 t c mc ch hin th trn LCD kt hp vi s dng linh hot Nhm cc chn iu khin vo ra thng tin E, RS, R/W.
3a. Thit lp ch hin th cho LCD.

_ Phn ny s ng dng cc lnh :


Binary Command D7 D6 D5 D4 D3 D2 D1 D0 Hex

Clear Display Display On/Off & Cursor Function Set

0 0 0

0 0 0

0 0 1

0 0 8/4

0 1 2/1

0 D 10 / 7

0 U x

1 B x

01 08 to 0F 20 to 3F

_ t vn : Khi LCD modul c Reset, trng thi ban u ngay khi c cp ngun mn hnh LCD cha c g c hin th c. Thm ch , lc ny nu ta cho d liu vo hin th 1 k t no th LCD cng khng th lm c. Bi v trc tin LCD phi nhn c lnh iu khin trc khi n c th hin th thng tin. Lnh iu khin m ta mun ni ti chnh l lnh cho LCD bt ch hin th v thit lp ch hin th cho LCD (V d: hin th trn 1 hay 2 dng, con tr hin th theo dng no..) _ Lnh Display On/Of and Cursor khi c gi ti LCD s bt ch hin th ca LCD v ng thi cng xc nh kiu con tr hin th. Nu bt D =1 s bt LCD (ngc li s tt LCD). Nu bt U=1 con tr mn hnh s c gch chn (v ngc li ). Nu bt B=1 th con tr s nhp nhy (v ngc li). Tt nht nn chn kiu con tr hin th l con tr nhp nhy v c gch chn tin quan st. Mun vy , ta s gi ti LCD m lnh sau : 00001111($0F). C th cc thao tc nh sau : RS mc logic 0 (LCD hot ng ch nhn lnh), R/W = 0 (truyn d liu t vi iu khiu vo LCD) cc ng vo D0-D7 c t l: 00001111 ($0F)) Sau cng
14

chn E c 1 chuyn mc 1v 0 mc cao (cho php LCD nhn d liu). Sau khi cc thao tc ny c thc hin, 1 con tr nhp nhy, c gch chn s xut hin gc bn tri mn hnh LCD . _ Lnh Function Set: Nu mun LCD hin th c 2 dng. Ta c th dng cu lnh Function Set.Lnh ny cn xc nh LCD trao i thng tin vi bn ngoi bng 4 ng hay 8 ng d liu, phn gii 5x10 hay 5x7. Nu bt 8/4 =1 th LCD s dng 8 bt D0-D7 trao i thng tin vi Vi iu khin (nu =0 th ch dng 4 bit thi). Nu bt 2/1=1 th LCD s hin th trn c 2 dng (nu =0 th ch hin th trn 1 dng ). Nu bt 10/7=1 mi k t s c hin th vi c ch 5x10 (nu =0 th c ch 5x7). V d : dng 8 ng d liu, hin th 2 dng, phn gii 5x7 th ta s gi ti LCD m lnh sau: 00111000 ($38). Thao tc c th: RS =0, R/W=0 cc ng vo D0-D7 c t l: 00111000 ($38) chn E c 1 chuyn mc 1v 0 mc cao (cho php LCD nhn d liu). _ Tng tng phn ln 1 cht v hin gi ta ang hin th bng c 2 dng ca LCD. Tip theo y , ta c th hin th ch trn LCD theo tng bc sau: chn RS =1 ( mc cao) (Chuyn LCD t ch nhn lnh sang ch nhn k t ,k hiu), R/W=0 Sau ta ch vic a tn hiu m ho ca k t cn hin th vo ng d liu ca LCD Cho chn E 1 chuyn mc 1 v 0. V d : hin th ch A , ta truyn gi tr 01000001 ($47) (chnh l m ASCII ca k t A) vo 8 ng d liu ca LCD. Thm ch ta c th hin th 1 dy k t nh s xt phn sau y. Kt lun thit lp ch hin th ban u cho LCD bng lnh : Display On/Of and Cursor : 00001111($0F) Function Set: 00111000 ($38)

15

3b. Hin th k t trn LCD.

_ t vn : Sau khi thit lp cho LCD ch hin th nh trn, ta s hin th 1 vi k t trn LCD. Vy LCD c th hin th nhng k t no v a cc k t vo LCD nh th no? Phn ny s gii p cu hi . _ LCD c b nh ROM m ho cc k t m n c th hin th. Tng s c 192 k t, khi cn chn nhng k t ny th ch cn t m nh phn ca n u vo, c ti 96 m k t ASCII, 64 m k t ting Nht, 32 k t c bit khc. M t bng m ho k t chun: 16 m u tin trong bng (t $00 - $0F) cn trng cha cc k t , biu tng do ngi dng t nh ngha. 16 k t tip theo (t $10 - $1F) hin th cc k t trng. Cc v tr tip theo hin th k t nh trn hnh minh ho. T $80 - $9F khng s dng. _Ch rng hin th k t th khi a m ho ca k t vo D0-D7 th LCD phi ch nhn d liu (tcl RS=1. R/W=0) Sau t m nh phn ca k t vo D0-D7 to ra 1 chuyn mc 1 v 0 chn E. Ngay sau ta s thy k t c hin th trn mn hnh

16

17

3c. Hin th k t ti 1 v tr bt k trn LCD.

_Phn ny s ng dng cc lnh:


Binary Command Set Display Address D7 1 D6 A D5 A D4 A D3 A D2 A D1 A D0 A Hex 80 to FF

_ t vn : Khi LCD bt u c hot ng, sau khi c thit lp kiu hin th, ta s thy trn LCD c 1 con tr u dng u tin (y gil a ch $00). Mi khi 1 k t, biu tng c hin th, con tr li dch sang phi 1 v tr (tc l sang a ch tip theo $01, $02). S t ng tng a ch ca con tr nh vy to s thun tin trong hin th 1 chui k t trn LCD v ta khng cn phi nh a ch hin th cho tng k t. Nhng nu ta khng mun hin th chui k t v tr u ca dng u tin na, m mun hin th t 1 v tr bt k , th lc ny ta phi cho LCD bit a ch hin th thng qua lnh Set Display Address _ Lnh Set Display Address : Lnh ny s t con tr mn hnh v tr (c to xc nh bi 0AAAAAAA) trn mn hnh . Sau ta c th cho hin th ch ti v tr mi ca con tr. _ Cc nh a ch trn mn hnh LCD. Ta bit rng a ch t con tr c th nhn gi tr trong khong $00-$7F tc l 128 a ch. Nhng trn thc t (do kch thc ca LCD )ch c 80 a ch c xc nh, 40 a ch cho dng trn v 40 a ch cn li cho dng di. Ch c LCD loi 40x2 hng mi dng ht 80 a ch , cn loi LCD nh hn (nh ca ta ang xt ) cng khng dng ht 80 a ch . Cch nh a ch hin th trn LCD c minh ho theo hnh sau: _ V Set Display Address l lnh nn LCD phi lm vic ch lnh t Vi iu khin gi vo LCD.

18

_ V d : mun hin th ch A trn LCD ti v tr s 10 ca dng trn ($0A hay 00001010) ta lm nh sau: t chn RS=0 , R/W=0 t m 10001010 vo chn D0-D7 To cho chn E 1 chuyn mc 1 v 0. Sau bc ny, con tr s v tr $0A. Gi ht ch nhn lnh, ta thit lp ch nhn d liu : RS=1, R/W=0 t m ho ca k t A (00010100) vo D0-D7 To cho E 1 chuyn trang thai 1 0. Ngay sau , ta s thy ch A hin ti v tr s 10 ca dng trn.

nh a ch trn LCD 20k t x4 dng

nh a ch trn LCD 16k t x2 dng

19

3d. Hin th ch chy bng LCD

_ Phn ny s ng dng cc lnh :


Binary Command Display/Cursor Shift D7 0 D6 0 D5 0 D4 D3 1 D/C D2 R/L D1 x D0 x Hex 10 to 1F

_ t vn : Tu vo kch thc ca LCD m s lng k t hin th trn LDC b hn ch. Nhng hu ht cc LCD u c chc nng dch chuyn khi k t c hin th sang tri hoc sang phi. iu ny gip ch rt nhiu nu ni dung cn hin th ln hn ca s LCD, v cng lm cho hin th ca LCD tr nn sinh ng hn. Mun vy , ta dng lnh
Cursor/Display Shift _ Lnh Cursor/Display Shift . Nu D/C=1 LCD s dch

chuyn mn hnh (nu =0 LCD dch chuyn con tr). Nu R/L=1 LCD dch chuyn sang phi (nu =0 th dch sang tri). _ V d: Sau y ta xt c th 1 v d dch chuyn 1 khi k t trn LCD: Nhp lnh vo LCD thit lp trng thi ban u (hin th 1 dng, con tr nhp nhp c gch chn ) (lnh Function Set, Display On/Off and Cursor ), sau truyn d liu vo LCD , y ta truyn cho LCD 26 k t t A-Z (truyn m t 01000001 01011010 tc l t $41-$5A) Tuy nhin trn LCD ta ch quan st c 16 k t dng trn , t A-P. Nhng k t cn li v con tr u b khut v bn phi nn ta khng quan st c. Gi ta s dng lnh Cursor/Display Shift dch khi 26 k t sang tri c th nhn c cc k t cn li v con tr. Mi ln lnh Cursor/Display Shift c nhp vo LCD, khi 26 k t s dch i 1 v tr. C lin tc nhp lnh vo LCD, sau 1 thi gian ta s nhn c k t ..Z, sau l c con tr cng c hin th. Vn tip tc nhp lnh dch chuyn vo ta li thy cc k t u (A,B..) c hin th nh th c khi 26 k t c quay vng quanh - y chnh l cch LCD thc hin lnh Cursor/Display Shift20

V khi nhn lnh ny LCD khng thay i a ch ca tng k t , m dch chuyn c khi a ch ca LCD sang tri hay sang phi. _ Lnh Cursor/Display Shift ngoi c tc dng i dch chuyn i vi k t nh trnh by trn , n cn c dng dch chuyn con tr hin th. Dng lnh ny i vi con tr s gip ta chnh sa ni dung ti 1 a ch bt k trong ca s hin th.
3e. Con tr c s.

_ Phn ny ng dng lnh:


Binary Command Clear Display Display & Cursor Home D7 0 0 D6 0 0 D5 0 0 D4 0 0 D3 0 0 D2 0 0 D1 0 1 D0 1 x Hex 01 02 or 03

_t vn : Sau khi thc hin ch chy trn LCD, ta thy rng c h thng a ch ca mn hnh LCD b dch chuyn. C cch no nhanh nht a h thng a ch tr v dng chun nh ban u khng? y l lc ta dng lnh Display and Cursor Home, Clear Display _ Lnh Cursor Home : va c tc dng a con tr v a ch u tin ($00), va c tc dng ko a ch 0 ca khi a ch ca LCD v v tr gctri ca dng u tin. _ Lnh Clear Display cng c 2 tc dng trn ca lnh Cursor Home , ngoi ra n cn c tc dng xo tt c ni dng va c hin th trn LCD .
3f. Ch nhn d liu

_Phn ny s ng dng lnh:


Binary Command D7 D6 D5 D4 D3 D2 D1 D0 21 Hex

Character Entry Mode

1/D

04 to 07

_ t vn : Nh cc trng hp ta xt trn, khi 1 k t c nhp vo, sau khi LCD hin th k t th con tr t ng tng a ch ca n ln . Tuy nhin khng phi nht thit lc no cng phi hin th theo cch , tc l sau khi hin th con tr c th t ng gim a ch. Hy xt 1 v d c th mn hnh hin th ca 1 chic my tnh in t b ti bnh thng. Khi bt my c s 0 gc bn phi mn hnh. Sau ngi dng nhp 1 s vo, th sau khi hin th s , con tr li t ng dch sang tri (tc l gim a ch ca n). C nh vy, cng nhiu k t c nhp vo th con tr cng sang bn tri (tc l a ch ca n cng gm). By gi ta s lm cho mn hnh LCD ca ta hot ng nh choc nng ca mn hnh chic my tnh in t. chnh l hiu qu ca vic s dng lnh Character Entry
Mode

_ Lnh Character Entry Mode : Nu S=1 con tr s t ng dch a ch sau khi hin th (nu=0 th khng dch). Nu 1/D=1 a ch con tr t ng tng 1 tc l con tr dch sang phi sau khi hin th (nu =0 th dch sang tri). _ Thc hin ln lt cc bc sau: Nhp cc lnh thch hp (Function Set, Display On/Off and Cursor)vo LCD thit lp ch ban u cho LCD, ch dng 1 dng hin th, nh a ch hin th $10 (lnh Set Display Address ) . Sau gi lnh Character Entry Mode vo LCD m nh phn l: 00000111 ($07) . Lnh ny s thit lp ch hin th- dch tri cho LCD (tc l sau khi hin th th con tr dch sang tri). Mi cng vic chun b va thit lp ch hon tt. Gi ch cn 1 vic l nhp s hay k t vo LCD kim tra kit qu. Nhp d liu vo LCD . Ta nhp cc s t 0-9 (m ho t 00110000 n 00111001 ($30 n $39 )). Ta s they LCD
22

hot ng ng nh mn hnh hin th ca my tnh in t. Sau khi 1 s c hin th, con tr s dch sang tri ch hin th s tip theo. _ bng cc lnh ca LCD ta they rng lnh c th nhp vo LCD vi 4 cch m ho khc nhau t 00000100 n 00000111 ($04 n $07). Mi 1 cch m ho s p ng 1 nhu cu trong i sng thc t (nh mn hnh my tnh in t chng hn)
3g. Hin th k t tu trn LCD theo nh ngha ngi dng.

_ Phn ny s ng dng lnh:


Binary Command Set CGRAM Address D7 0 D6 1 D5 A D4 A D3 A D2 A D1 A D0 A Hex 40 to 7F

_ Lnh Set CGRAM Address : s khi ng chc nng hin th cc k t , hnh dng theo nh ngha ring ca ngi s dng. LCD cho php nh ngha ti a 8 k t ngi dng . _ Cc bc thc hin: V d mun hin th hnh ngi nh minh ho ta phi ln lt thc hin cc bc sau:

Thit lp ch lm vic cho LCD. Gi lnh Set CGRAM Address n Vi iu khin (m lnh bt k t $04-$78).
23

t lc ny tr i, d liu c truyn vo s to nn hin th theo ngi dng theo tng dng 1. Nhp 1 b 8 dng m nh phn hin th c nh y mun (00001110, 00010001, 00001110, 00000100, 00011111, 00000100, 00001010, 00010001 ($0E, $11, $0E, $04, $1F, $04, $0A, $11) ). Sau khi LCD nhn 8 dng vo ny, 1 hnh s c hin trn mn hnh LCD. Nu g b 8 dng bt vo ta s c 2 k t , hnh v khc. _ Ch rng CGRAM l b nh tm thi, nu mt in n s mt. V vy khi ni LCD vi Vi iu khin, th b 8 dng bit phi c lu sn trong b nh ROM ca Vi diu khin, khi no dng ti th nh ngha c gi ra.
3g. LCD trao i vi bn ngoi bng 4 bit

_ Phn ny s ng dng lnh :


Binary Command Function Set D7 0 D6 0 D5 1 D4 D3 8/4 2/1 D2 10 / 7 D1 x D0 x Hex 20 to 3F

_ t vn : Trong thc t thng gp LCD c iu khin bsng loi Chip 4 bit ra. Trong khi LCD co 8 ng vo ra d liu. V th ta phi xem xt kh nng lm vic vi LCD m ch dng 4 ng d liu ( tng thch vi loi Vi iu Khin 4 bit). 4 bit c gi l 1 na byte. ch 4 bit, dng 4 bit no trao i thng tin? Tr li: dng 4 bit cao D4-D7 trao i thng tin. $ bit thp cn li D0-D3 phi tun th cch x l sau: 4 bit khng s dng ny phi th t do hoc ni vi 1 cc thng qua in tr 4k7-47k. Tuyt i khng c ni 4 chn khng s dng ny trc tip vi t v s lm cho LCD hiu nhm l dng 8 bt trao i d liu (4 bit D0-D3 l 0000).

24

LCD lm vic ch giao tip 4 bit th vic u tin l phi thit lp (ra lnh cho LCD) chn ch lm vic 4 bit (dng lnh Function Set ) . Nhng c vn ny sinh l lnh cng ch c a vo LCD bng 4 bit D4D7 m thi, cn 4 bt thp th khng th thay it gi tr tu c. Nhng tht may mn l trong lnh Function Set bt ra lnh cho LCD lm vic ch 4 bit l bit 4 , v vy ch cn gi ti LCD m lnh 00100000 l thit lp c ch trao i thng tin 4 bit. Sau khi thit lp ch trao i thng tin4 bit, k t lc ny mi lnh v d liu c gi ti LCD u phi chia lm 2 phn : 4 bt phn cao gi trc, sau mi gi 4 bt phn thp . Mi 1 ln gi thng tin ti LCD u phi cp cho chn E 1 xung dng. Nh vy v s ln gi ch 4 bit gp 2 ln s ln gi ch 8 bit, nn s xung dng cn cp cho chn E cng gp i.
3h.c thng tin v LCD.

_ Phn ny s ng dng lnh:


Binary D7 D6 D5 D4 D3 Read Data High D D D D D Read Status Low BF A A A A D: Character data at current cursor address A: Current cursor address ($00 to $7f) BF: Busy Flag (0 = Ready, 1 = Busy) Instruction RS D2 D A D1 D A D0 D A

Table 6: HD44780 Read Instructions.

_ Lnh : C bn ca LCD s c c trn ng D7. Nu D7=1 tc l LCD ang thc hin lnh v n cha sn sng nhn thng tin t VI diu khin (nu D7=0 tc l LCD sn sng ch thng tin). 6 bit A l m ho v tr ca con tr trn mn hnh, c c ra chn D0-D6. _ Cc thng tin trng thi bo v Vi iu khin VK i LCD ht bn mi gi lnh tip theo.

25

_ Ch rng LCD phi ch c thng tin ra : RS=1, R/W=1


3g. Chu trnh thi gian trn LCD.

Cn ti thi gian LCD thc hin 1 lnh to nhng khong thi gian tr thch hp trong khi lp trnh Assembly. Khong thi gian tr c tc dng i LCD thc hin xong lnh trc ri mi gi lnh tip theo. Sau khi cp ngun cho LCD phi i cho ti khi LCD khi ng xong hon ton, ta chn vo 1 thi gian tr.

Thi gian thc hin lnh

Qu trnh thc hin lnh (nhn d liu )

26

Lp trnh Assembly cho Vi iu Khin 89C51 iu khin hot ng ca LCD ; LCD Example Program ; Port 1 = D0-D7 (data port), R/W ni vi P3.2, Enable ni vi P3.4, RS ni vi P3.3 ;***** #INCLUDE "8051EQU.INC" ;include predefined constants ; ; ************************************************************ ************** ; Bin v Hng ; ; Lp 1 b nh m c 16 nh ( cho 1 LCD). ; vit k t ln LCD, k t c a vo b m sau ; tt c cc bt c ng lot a vo LCD. B0 .EQU 070H ;BUFFER POSITION 1 B1 .EQU 071H ; B2 .EQU 072H ; B3 .EQU 073H ; B4 .EQU 074H ; B5 .EQU 075H ; B6 .EQU 076H ; B7 .EQU 077H ; B8 .EQU 078H ; B9 .EQU 079H ; B10 .EQU 07AH ; B11 .EQU 07BH ; B12 .EQU 07CH ; B13 .EQU 07DH ; B14 .EQU 07EH ; B15 .EQU 07FH ;BUFFER POSITION 16 ; ; ************************************************************ ************** ;
27

; RESET

;reset routine

.ORG 0H ;locate next command at 00H AJMP START ;jump to START (first command of program) ; ; ************************************************************ ************** ; ; INTERRUPTS ;place interrupt routines at appropriate ;memory locations .ORG 03H ;external interrupt 0 RETI .ORG 0BH ;timer 0 interrupt RETI .ORG 13H ;external interrupt 1 RETI .ORG 1BH ;timer 1 interrupt RETI .ORG 23H ;serial port interrupt RETI .ORG 2BH ;locate beginning of rest of program ; ; ************************************************************ ************** ; INITIALIZE: ;set up control registers ; MOV TCON,#00H MOV TMOD,#00H MOV PSW,#00H MOV IE,#00H ;disable interrupts RET ; ; ************************************************************ ************** ;
28

DELAYMS: ;millisecond delay routine ; ;uses R7 MOV R7,#00H ;put 00H in register R7 LOOPA: INC R7 ;increment R7 MOV A,R7 ;move R7 to Accumlator CJNE A,#0FFH,LOOPA ;jump to LOOPA if R7 not equal to #FFH RET ;return ; ; ************************************************************ ************** ; DELAYHS: ;half second delay using milsec delay ; ;uses R5 R6 (R7) MOV R6,#00H MOV R5,#002H LOOPB: INC R6 ACALL DELAYMS MOV A,R6 JNZ LOOPB DEC R5 MOV A,R5 JNZ LOOPB RET ; ; ************************************************************ ************** ; DELAYS: ;delay for a second or two ; ;uses (R5 R6 R7) ACALL DELAYHS ACALL DELAYHS ACALL DELAYHS ACALL DELAYHS RET ;
29

; ************************************************************ ************** ; ; ; ************************************************************ ************** ; WRITELCD: SETB P3.4 ;enable LCD ACALL DELAYMS ;wait for write completion CLR P3.4 ;disable LCD RET ; ; ************************************************************ ************** ; EXECUTELCD: CLR P3.3 ;ditto SETB P3.4 ;enable LCD ACALL DELAYMS CLR P3.4 SETB P3.3 ;Make rs=1 RET ; ; ************************************************************ ************** ; LCDSETUP: ; MOV P1,#03CH ;set up LCD 8 bits and 2 lines ACALL EXECUTELCD MOV P1,#00DH ;turn on display and cursor off ACALL EXECUTELCD MOV P1,#006H ;set increment one and shift ACALL EXECUTELCD MOV P1, #02H ; Home Display
30

ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; CLEARBUFFER: ; uses R0 ; MOV R0,#070H CBONE: MOV @R0,#' ' ; put a blank in the memory address specified in R0 INC R0 ; go to next memory address CJNE R0,#080H,CBONE ; stop when address is 80H RET ; ; ************************************************************ *************** ; WRITEBUFFER: ;uses R0 ; MOV R0,#070H WBONE: MOV P1,@R0 ; get character stored in the memory address specified in R0 ACALL WRITELCD INC R0 ; go to next memory address CJNE R0,#080H,WBONE ; stop when address is 80H RET ; ; ; ************************************************************ *************** ; WRITEIguana_Labs: ;write Iguana Labs to LCD ;
31

ACALL CLEARBUFFER MOV B0,#'I' ;write I MOV B1,#'g' ;write g MOV B2,#'u' ;write u MOV B3,#'a' ;write a MOV B4,#'n' ;write n MOV B5,#'a' ;write a MOV B6,#' ' ;write MOV B7,#'L' ;write L MOV B8,#'a' ;write a MOV B9,#'b' ;write b MOV B10,#'s' ;write s ACALL WRITEBUFFER RET ; ; ************************************************************ *************** ; WRITELCD_Example: ;write Example to LCD ; ACALL CLEARBUFFER MOV B0,#'L' ;write L MOV B1,#'C' ;write C MOV B2,#'D' ;write D MOV B3,#' ' ;write MOV B4,#'E' ;write E MOV B5,#'x' ;write x MOV B6,#'a' ;write a MOV B7,#'m' ;write m MOV B8,#'p' ;write p MOV B9,#'l' ;write l MOV B10,#'e' ;write e ACALL WRITEBUFFER RET ; ; ************************************************************ ************** ;
32

BEGLINEONE: ; MOV P1,#080H ;go to beginning of line one ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; BEGLINETWO: ; MOV P1,#0C0H ;go to beginning of line two ACALL EXECUTELCD RET ; ; ************************************************************ *************** ; CLEARDISPLAY: ; MOV P1,#001H ;clear display ACALL EXECUTELCD ACALL BEGLINEONE ;go to beginning of line one RET ; ; ************************************************************ *************** ; ; ************************************************************ *************** ; START: ;beginning of main program ; MOV SP,#02FH ;initialize stack pointer to 2FH ACALL INITIALIZE ;initialize registers ACALL DELAYHS
33

CLR P3.2 ;make LCD R/W low (Stays low since we are just writing to LCD) ACALL LCDSETUP ;initialize LCD LCDLOOP: ACALL CLEARDISPLAY ; erase LCD screen ACALL DELAYHS ACALL BEGLINEONE ; move cursor to beginning of top line ACALL WRITEIguana_Labs ACALL DELAYHS ACALL BEGLINETWO ; move cursor to beginning of bottom line ACALL WRITELCD_Example ACALL DELAYHS AJMP LCDLOOP ; go to LCDLOOP: (repeat) ; .END ;end program

34

You might also like