Tài liệu về thiết bị hiển thị LCD

tài liệu về thiết bị hiển thị LCD I. KIẾN THỨC CHUNG VỀ LCD 1.MÀN HÌNH TINH THỂ LỎNG LÀ GÌ? PHẠM VI VÀ ỨNG DỤNG 2.CƠ SỞ VẬT LÝ CỦA LCD 3.XÉT 1 LCD CỤ THỂ A.ĐẶC TÍNH VẬT LÝ

doc34 trang | Chia sẻ: tlsuongmuoi | Lượt xem: 2164 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tài liệu về thiết bị hiển thị LCD, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Ch­¬ng 4 Giới thiệu về thiết bị hiển thị (LCD),cách ghép nối với vi xử lý (Hunghe`o) Mµn h×nh tinh thÓ láng LCD (liquid Crystal Display) I/ KiÕn thøc chung vÒ LCD (Liquid Crystals Display). 1.Mµn h×nh tinh thÓ láng (LCD) lµ g× vµ ph¹m vi øng dông? _ Ngµy nay trong lÜnh vùc th«ng tin vµ gi¶i trÝ, viÖc dïng mµn h×nh èng tia ca tèt truyÒn thèng (CRT) ®ang dÇn ®­îc thay thÕ b»ng viÖc sö dông mµn h×nh tinh thÓ láng (LCD). V× LCD cã nhiÒu ­u ®iÓm v­ît tréi nh­ : §é dµy mµn h×nh nhá h¬n rÊt nhiÒu , KÝch th­íc ®a d¹ng tõ lo¹i mµn h×nh nhá tíi mµn h×nh cùc lín, Tiªu thô Ýt n¨ng l­îng vµ kh«ng nguy hiÓm b»ng CRT. LCD dïng trong lÜnh vùc ®iÒu khiÓn LCD dïng trong th«ng tin gi¶i trÝ (Mµn h×nh Tivi, m¸y vi tÝnh) LCD dïng trong truyÒn th«ng (Mµn h×nh ®iÖn tho¹i, hiÓn thÞ cña hÖ thèng chuyªn dông) ë phÇn nµy chóng ta chØ xÐt tíi LCD lo¹i nhá vµ viÖc dïng LCD ®Ó hiÓn thÞ cña hÖ thèng chuyªn dông. 2. C¬ së vËt lý cña LCD. _ §óng nh­ tªn gäi cña nã, LCD (Liquid Crystals Display ) - Mµn h×nh tinh thÓ láng - , c¬ së vËt lý ®Ó LCD cã thÓ hiÓn thÞ ®­îc th«ng tin , h×nh ¶nh chÝnh lµ do ®Æc tÝnh cña vËt liÖu chÕ t¹o nªn LCD, tøc lµ Liquid Crystals (th¹ch anh láng). _ §Æc tÝnh cña Liquid Crystals : Thø nhÊt: Liquid Crystals lµ vËt liÖu trong suèt võa cã tÝnh chÊt cña chÊt r¾n,l¹i võa cã tÝnh chÊt cña chÊt láng (chÝnh ®iÖu nµy ®· lam nªn sù kh¸c biÖt): + ¸nh s¸ng truyÒn qua Liquid Crystals theo gãc nghiªng cña c¸c ph©n tö , vµ ¸nh s¸ng bÞ ph¶n x¹ trë l¹i. §©y chÝnh lµ tÝnh chÊt cña chÊt r¾n. + Khi Liquid Crystals ®­îc tÝch ®iÖn, nã sÏ bÞ thay ®æi gãc nghiªng cña c¸c phÇn tö, vµ kÕt qu¶ lµ ¸nh s¸ng cã thÓ truyÒn xuyªn qua. §©y chÝnh lµ tÝnh chÊt cña chÊt láng. Thø hai : LCD gåm 2 bÒ mÆt d¹ng r·nh , gi÷a 2 bÒ mÆt nµy lµ 1 líp Th¹ch Anh láng (Liquid Crystal). Tr­íc hÕt nãi vÒ ®Æc tÝnh 2 bÒ mÆt r·nh : trªn mâi bÒ mÆt cã c¸c r·nh . C¸c r·nh trªn 1 mÆt song song víi nhau vµ vu«ng gãc víi c¸c r·nh trªn mÆt cßn l¹i (theo h­íng b¾c-nam/ t©y-®«ng). B©y giê nãi vÒ ®Æc tÝnh cña líp Liquid Cristal (ë gi÷a) : ¸nh s¸ng truyÒn qua líp nµy theo gãc cña c¸c phÇn tö, vµ v× thÕ ¸nh s¸ng bÞ xo¾n 90 ®é khi xuyªn qua líp Liquid Cristal nµy. Nh­ng khi ph©n cùc cho líp Liquid Cristal, c¸c ph©n tö ®­îc s¾p xÕp l¹i theo ph­¬ng ngang, vµ v× thÕ mµ ¸nh s¸ng cã thÓ truyÒn qua líp Liquid Cristal mµ kh«ng bÞ xo¾n. (H×nh 2) Thø ba : VÒ tÝnh chÊt cña líp läc ¸nh s¸ng ®¬n cùc. Chóng ta ®Òu biÕt r»ng ¸nh s¸ng lµ sãng truyÒn theo nhiÒu ph­¬ng kh¸c nhau. Líp läc ®¬n cùc thùc ra chØ lµ tËp hîp c¸c ®­êng th¼ng trong suèt song song – ChÝnh lµ 2 bÒ mÆt r·nh cña LCD ®· nãi ë trªn-. Sau khi ®i qua líp läc ®¬n cùc, ¸nh s¸ng chØ cßn thµnh phÇn sãng cã ph­¬ng trïng víi ph­¬ng c¸c ®­êng th¼ng trªn líp läc cùc. LCD cã 2 líp läc ®¬n cùc cã ph­¬ng läc vu«ng gãc nhau. V× vËy, sau khi ra khái c¶ 2 líp läc ®¬n cùc ¸nh s¸ng bÞ chÆn l¹i hoµn toµn. ¸nh s¸ng chØ cã thÓ truyÒn qua c¶ 2 líp läc ®¬n cùc nÕu sau khi qua líp läc thø nhÊt ¸nh s¸ng ®­îc xo¾n 1 gãc 90 ®é råi míi ®i qua líp läc thø 2. ThËt may, viÖc xo¾n ¸nh s¸ng hoµn toµn cã thÓ thùc hiÖn ®­îc theo tÝnh chÊt líp Liquid Cristal ®· nãi ë trªn. àCã thÓ tæng kÕt ®­êng ®i cña ¸nh s¸ng nh­ sau: §Ó cã 1 ®iÓm tèi trªn LCD: ¸nh s¸ng ph¸t ra tõ bªn trong LCD sÏ ®i qua bÒ mÆt r·nh thø nhÊt (líp läc ®¬n cùc),à sau ®ã ¸nh s¸ng ®i qua líp Liquid Cristal (líp nµy ®­îc ph©n cùc nªn ¸nh s¸ng qua nã mµ kh«ng bÞ xo¾n), à sau ®ã ¸nh s¸ng qua bÒ mÆt r·nh thø 2líp ph©n cùc thø 2 (líp läc ®¬n cùc), ¸nh s¸ng kh«ng lã ra ®­îc khái líp nµy(bÞ chÆn l¹i hoµn toµn) à ta thÊy 1 ®iÓm tèi trªn mµn h×nh LCD. (H×nh 3) §Ó cã 1 ®iÓm s¸ng trªn LCD: qu¸ tr×nh ®i t­¬ng tù nh­ng kh¸c ë chç ¸nh s¸ng qua líp Liquid Cristal kh«ng ®­îc ph©n cùc nªn ¸nh s¸ng bÞ xo¾n 90 ®é, nhê thÕ mµ ®i qua ®­îc bÒ mÆt r·nh thø 2 (líp läc ®¬n cùc) à Ta thÊy 1 ®iÓm s¸ng trªn LCD. (H×nh 3) H×nh 2 H×nh 3 II/ XÐt LCD cô thÓ Hitachi HD44780 LCD hiÓn thÞ ®­îc 2 hµng mçi hµng hiÓn thÞ ®­îc 16 ký tù (LCD cã 14 ch©n) nh­ ®­îc minh ho¹ trªn h×nh. Th«ng sè cña LCD : +KÝch th­íc hiÓn thÞ : 16 ký tù x 2 dßng. +Mµu hiÓn thÞ: ®en/tr¾ng +ChÕ ®é giao tiÕp : 8 bÝt vµ 4 bÝt +Cì ch÷ hiÓn thÞ : 5x7 hoÆc 5x10 1. CÊu tróc cña LCD 1a. Giíi thiÖu s¬ ®å ch©n LCD . _ LCD cã tæng sè 14 ch©n chia lµm 3 nhãm: Nhãm 1: (3 ch©n) CÊp nguån VDD, VSS : cÊp 5V, 0V VEE: thay ®æi ®iÖn ¸p ®Ó thay ®æi ®é t­¬ng ph¶n Nhãm 2: (8 ch©n) Vµo ra th«ng tin víi V§K : Tõ ch©n D0-D7 Nhãm 3 : (3 ch©n) §iÒu khiÓn viÖc vµo ra th«ng tin : E,RS,R/W E :(bËt /t¾t ) (cho phÐp/ kh«ng cho phÐp trao ®æi th«ng tin víi V§K ) RS :(lo¹i th«ng tin trao ®æi)Th«ng tin trao ®æi lµ lÖnh ®iÒu khiÓn hay µ d÷ liÖu ®Ó hiÓn thÞ R/W : (h­íng truyÒn cña th«ng tin) ®äc tr¹ng th¸i tõ LCD hay th«ng tin do V§K göi vµo LCD ®Ó hiÓn thÞ Cô thÓ tªn gäi vµ m« t¶ chøc n¨ng c¸c ch©n ®­îc tæng kÕt trong b¶ng sau: Interface Pin Connections Ch©n sè Ký hiÖu Tªn M« t¶ chøc n¨ng 1 VSS CÊp nguån 0V (GND) 2 VDD CÊp nguån Nèi víi d­¬ng nguån (+4.5V~+5.5V) 3 VEE Contrast ®iÒu chØnh ®iÖn ¸p ch©n nµy sÏ t¨ng gi¶m ®é t­¬ng ph¶n cña LCD. cho nªn nã th­êng ®­îc nèi víi biÕn trë. 4 RS Chän thanh ghi NÕu RS=0 : LCD nhËn lÖnh tõ V§K NÕu RS=1: LCD nhËn d÷ liÖu tõ V§K ®Ó hiÓn thÞ 5 RW Read/Write Chän chøc n¨ng ghi/ ®äc Rw=1 : chän chøc n¨ng ®äc d÷ liÖu tõ LCD vµo V§K Rw=0 : chän chøc n¨ng ghi d÷ liÖu tõ V§Kvµo LCD ®Ó hiÓnt thÞ 6 E Read Write enable Cho phÐp/ ko cho phÐp LCD trao ®æi th«ng tin víi V§K. ChØ khi E chuyÓn tõ 1à0 th× tÝn hiÖu ë c¸c ch©n D0-D7 míi ®­îc ®­a vµo LCD. 7 D0 Data bus 0-7 8 ch©n nµy ®­îc nèi víi V§K ®Ó vµo/ra th«ng tin 8 D1 9 D2 10 D3 11 D4 12 D5 13 D6 14 D7 _ Tõ nh÷ng ®Æc ®iÓm vµ chøc n¨ng ®· ®­îc ®Ò cËp ë trªn ta cã thÓ ®i tíi viÖc h×nh thµnh viÖc ghÐp nèi cña LCD víi vi ®iÒu khiÓn nh­ sau: Nh­ trªn h×nh minh ho¹ ta cã thÓ thÊy c¸c ch©n D0-D3 lµ ®­êng tÝn hiÖu 2 chiÒu (®Ó trao ®æi th«ng tin Vi ®iÒu khiÓn vµ LCD). 3 ch©n ®iÒu khiÓn RS, R/W, E lµ ch©n ®­a tÝn hiÖu ®iÒu khiÓn tõ Vi ®iÒu khiÓn tíi LCD nªn nã chØ lµ ®­êng tÝn hiÖu 1 chiÒu th«i. V× ch©n Contrast (VEE) ®iÒu chØnh ®é t­¬ng ph¶n cña LCD nªn ta cÊp nguån cho nã th«ng qua biÕn trë (nh­ h×nh vÏ) 1b. CÊu tróc bé nhí trong LCD. Mµn hiÓn thÞ cña LCD nãi chung cã thÓ lªn tíi h¬n 40 ký tù trªn mét dßng vµ mét mµn cã thÓ cã tíi 4 dßng.Trong ®ã cã mét bé RAM ®Ó chøa m· 80 ký tù gäi lµ bé nhí DDRAM(display data ram),mµn hiÓn thÞ cã thÓ dÞch c¶ mµn ®Ó quan s¸t ®­îc c¸c ký tù kh¸c. Bé ký tù hiÓn thÞ : Bé hiÓn thÞ cã thÓ hiÓn thÞ ®­îc c¸c ký tù ®· ®­îc lËp tr×nh tr­íc hoÆc c¸c ký tù do ng­êi dïng ®Þnh nghÜa.Trong bé ®iÒu khiÓn hiÓn thÞ cã mét bé nhí ROM dïng ®Ó ph¸t ký tù, trong Rom nµy chøa 192 ký tù,khi cÇn chän nh÷ng ký tù nµy th× nã ®­îc chän th«ng qua tõng m· cña nã, cã tíi 96 m· ký tù ASCII, 64 m· ký tù tiÕng NhËt, 32 ký tù ®Æc biÖt kh¸c. Trong bé ®iÒu khiÓn LCD còng cã mét bé RAM gäi lµ CGRAM(character generator ram) trong bé nhí nµy l­u 8 ký tù do ng­êi dïng ®Þnh nghÜa, c¸c ký tù ®Çu tiªn ph¶i viÕt vµo CGRAM tr­íc råi sau ®ã míi hiÓn thÞ ra mµn hiÓn thÞ ®­îc. 2. TËp lÖnh cña LCD. 2a. Kh¶ n¨ng hiÓn thÞ cña LCD. LCD cã kh¶ n¨ng hiÓn thÞ rÊt linh ho¹t _ ThiÕt lËp chÕ ®é hiÓn thÞ : HiÓn thÞ trªn 1 dßng hay c¶ 2 dßng. Chän cì ch÷ hiÓn thÞ (5x7 hay5x10). Chän kiÓu con trá mµn h×nh (cã/kh«ng g¹ch ch©n , cã/kh«ng nhÊp nh¸y) _ ThiÕt lËp kiÓu trao ®æi th«ng tin : Trao ®æi th«ng tin víi Vi ®iÒu khiÓn dïng 4 bit hay 8 bÝt. _ Tr×nh bµy néi dung hiÓn thÞ. HiÓn thÞ ký tù trªn LCD. HiÓn thÞ ký tù ë vÞ trÝ bÊt kú trªn LCD. T¹o ch÷ ch¹y trªn LCD HiÓn thÞ ký tù , biÓu t­îng , h×nh vÏ tuú ý ng­êi dïng trªn LCD. 2b. TËp lÖnh cña LCD §Ó thùc hiÖn ®­îc c¸c kh¶ n¨ng hiÓn thÞ ë trªn, ta cÇn ra lÖnh cho LCD thùc hiÖn c¸c thao t¸c, tøc lµ ph¶i sö dông tËp lÖnh cña LCD. Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Clear Display (Xo¸ mµn h×nh) 0 0 0 0 0 0 0 1 01 Display & Cursor Home 0 0 0 0 0 0 1 x 02 or 03 Character Entry Mode (ChÕ ®é nhËn d÷ liÖu) 0 0 0 0 0 1 1 / D S 04 to 07 Display On/Off & Cursor (bËt/t¾t LCD vµ kiÓu con trá) 0 0 0 0 1 D U B 08 to 0F Display/Cursor Shift (DÞch LCD vµ con trá) 0 0 0 1 D / C R / L x x 10 to 1F Function Set 0 0 1 8 / 4 2 / 1 10 / 7 x x 20 to 3F Set CGRAM Address 0 1 A A A A A A 40 to 7F Set Display Address 1 A A A A A A A 80 to FF 1 / D: S: 1=Increment*, 0=Decrement 1=Display shift on, 0=Off* R / L: 8 / 4: 1=Right shift, 0=Left shift 1=8-bit interface*, 0=4-bit interface D: 1=Display on, 0=Off* 2 / 1: 1=2 line mode, 0=1 line mode* U: B: 1=Cursor underline on, 0=Off* 1=Cursor blink on, 0=Off* 10 / 7: 1=5x10 dot format, 0=5x7 dot format* D / C: 1=Display shift, 0=Cursor move x = Don't care * = Initialization settings Chó thÝch b¶ng lÖnh: Ký hiÖu Chøc n¨ng Chó thÝch X bÝt nhÞ ph©n (0,1)tuú ý 1/D §Þa chØ con trá 1= tù ®éng t¨ng; 0= tù ®éng gi¶m S DÞch con trá sau khi hiÓn thÞ Cã (1); Kh«ng (0) D =1: bËt LCD; =0: t¾t LCD U Con trá ®­îc g¹ch ch©n Cã (1); Kh«ng (0) B Con trá nhÊp nh¸y Cã (1); Kh«ng (0) D/C DÞch chuyÓn Mµn h×nh (1); Con trá (0) R/L ChiÒu dÞch chuyÓn Sang ph¶i (1); Sang tr¸i (0) 8/4 ChÕ ®é trao ®æi th«ng tin 8 bÝt (1); 4 bÝt (0) 2/1 Sè dßng hiÓn thÞ 2 dßng (1) ; 1 dßng (0) 10/7 Cì chò Cì 5x10 (1); Cì 5x7 (0) _ C¸c lÖnh trªn chia lµm 3 nhãm : Nhãm 1: C¸c lÖnh thiÕt lËp chÕ ®é hiÓn thÞ : Display On/Off & Cursor , Function Set , Character Entry Mode . Nhãm 2: C¸c lÖnh ®iÒu khiÓn qu¸ tr×nh hiÓn thÞ (con trá vµ mµn h×nh): Display & Cursor Home , Display On/Off & Cursor , Display/Cursor Shift, Set CGRAM Address, Nhãm 3: LÖnh kiÓm tra tr¹ng th¸i cña LCD : Set Display Address _ Trªn ®©y lµ tËp lÖnh cña LCD, c¸c m· lÖnh nµy sÏ ®­îc ®­a tõ Vi ®iÒu khiÓn 8 ®­êng D0-D7. Muèn LCD nhËn vµ hiÓu c¸c tÝn hiÒu ®­a vµo nµy lµ lÖnh th× ph¶i sö dông ®óng Nhãm 3 ch©n §iÒu khiÓn viÖc vµo ra th«ng tin : E,RS,R/W . Khi nµo LCD hiÓu tÝn hiÖu ®­a vµo lµ d÷ liÖu, khi nµo lµ lÖnh lµ do sù kÕt hîp cña 3 ch©n nµy quyÕt ®Þnh. C¸c chÕ ®é vµo ra th«ng tin cña LCD (kÕt hîp c¸c ch©n E, RS, R/W) Cã 2 chÕ ®é ®­a th«ng tin vµo LCD (tõ vi ®iÒu khiÓn): th«ng tin ®­a vµo lµ lÖnh; Th«ng tin ®­a vµo lµ d÷ liÖu ®Ó hiÓn thÞ Cã 1 chÕ ®é ®­a th«ng tin ra khái LCD (vµo vi ®iÒu khiÓn) : ®äc tr¹ng th¸i hiÖn hµnh cña LCD cho Vi ®iÒu khiÓn biÕt. §iÒu khiÓn LCD lµ ph¶i sö dông linh ho¹t c¸c chÕ ®é nµy. ViÖc quyÕt ®Þnh dïng chÕ ®é vµo ra th«ng tin nµo lµ do 3 ch©n E, RS,R/W cña LCD quyÕt ®Þnh. + Ch©n E: quyÕt ®Þnh viÖc khi nµo chÊp nhËn th«ng tin ë c¸c ch©n cßn l¹i : ®ã lµ khi tÝn hiÖu ë ch©n E chuyÓn møc tõ 1 à 0. + Ch©n RS quyÕt ®Þnh viÖc nhËn lÖnh hay d÷ liÖu. LÖnh (RS=0 ); D÷ liÖu (RS=1) + Ch©n R/W quyÕt ®Þnh chiÒu truyÒn d÷ liÖu . Vµo LCD(R/W=0); Ra khái LCD (R/W=0). Tæng hîp theo b¶ng sau: C¸c chÕ ®é vµo/ra th«ng tin do RS, R/W quyÕt ®Þnh RS R/W ChÕ ®é 0 0 LÖnh göi tõ Vi ®iÒu khiÓn vµo LCD 0 1 §äc cê bËn (D7) vµ vÞ trÝ con trá (D0-D6) cña LCD 1 0 D÷ liÖu göi tõ Vi ®iÒu khiÓn vµo LCD VÝ dô muèn hiÓn thÞ 1 ch÷ c¸i A trªn LCD ta ph¶i lÇn l­ît qua c¸c chÕ ®é sau: CÊp nguån à §äc tr¹ng th¸i cña LCD xem LCD ®· s½n sµng ch­a àGöi lÖnh tõ Vi ®iÒu khiÓn vµo LCD ®Ó thiÕt lËp chÕ ®é hiÓn thÞ à Göi m· cña ký tù cÇn hiÓn thÞ vµo LCD. 3. C¸c øng dông hiÓn thÞ trªn LCD. PhÇn nµy sÏ sö dông tËp lÖnh cña LCD ®­îc xÐt ë môc 2 ®Ó ®¹t ®­îc môc ®Ých hiÓn thÞ trªn LCD kÕt hîp víi sö dông linh ho¹t Nhãm c¸c ch©n ®iÒu khiÓn vµo ra th«ng tin E, RS, R/W. 3a. ThiÕt lËp chÕ ®é hiÓn thÞ cho LCD. _ PhÇn nµy sÏ øng dông c¸c lÖnh : Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Clear Display 0 0 0 0 0 0 0 1 01 Display On/Off & Cursor 0 0 0 0 1 D U B 08 to 0F Function Set 0 0 1 8 / 4 2 / 1 10 / 7 x x 20 to 3F _ §Æt vÊn ®Ò : Khi LCD modul ®­îc Reset, ë tr¹ng th¸i ban ®Çu ngay khi ®­îc cÊp nguån mµn h×nh LCD ch­a cã g× ®­îc hiÓn thÞ c¶. ThËm chÝ , lóc nµy nÕu ta cho d÷ liÖu vµo ®Ó hiÓn thÞ 1 ký tù nµo ®ã th× LCD còng kh«ng thÓ lµm ®­îc. Bëi v× tr­íc tiªn LCD ph¶i nhËn ®­îc lÖnh ®iÒu khiÓn tr­íc khi nã cã thÓ hiÓn thÞ th«ng tin. LÖnh ®iÒu khiÓn mµ ta muèn nãi tíi chÝnh lµ lÖnh cho LCD bËt chÕ ®é hiÓn thÞ vµ thiÕt lËp chÕ ®é hiÓn thÞ cho LCD (VÝ dô: hiÓn thÞ trªn 1 hay 2 dßng, con trá hiÓn thÞ theo d¹ng nµo..) _ LÖnh Display On/Of and Cursor khi ®­îc göi tíi LCD sÏ bËt chÕ ®é hiÓn thÞ cña LCD vµ ®ång thêi còng x¸c ®Þnh kiÓu con trá hiÓn thÞ. NÕu bÝt D =1 sÏ bËt LCD (ng­îc l¹i sÏ t¾t LCD). NÕu bÝt U=1 con trá mµn h×nh sÏ ®­îc g¹ch ch©n (vµ ng­îc l¹i ). NÕu bÝt B=1 th× con trá sÏ nhÊp nh¸y (vµ ng­îc l¹i). Tèt nhÊt nªn chän kiÓu con trá hiÓn thÞ lµ con trá nhÊp nh¸y vµ cã g¹ch ch©n ®Ó tiÖn quan s¸t. Muèn vËy , ta sÏ göi tíi LCD m· lÖnh sau : 00001111($0F). Cô thÓ c¸c thao t¸c nh­ sau : RS ®Ó ë møc logic 0 (LCD ho¹t ®éng ë chÕ ®é nhËn lÖnh), R/W = 0 (truyÒn d÷ liÖu tõ vi ®iÒu khiÓu vµo LCD) à c¸c ®­êng vµo D0-D7 ®­îc ®Æt lµ: 00001111 ($0F)) à Sau cïng ®Ó ch©n E cã 1 chuyÓn møc “1”vÒ “0” ë møc cao (cho phÐp LCD nhËn d÷ liÖu). Sau khi c¸c thao t¸c nµy ®­îc thùc hiÖn, 1 con trá nhÊp nh¸y, cã g¹ch ch©n sÏ xuÊt hiªn ë gãc bªn tr¸i mµn h×nh LCD . _ LÖnh Function Set: NÕu muèn LCD hiÓn thÞ c¶ 2 dßng. Ta cã thÓ dïng c©u lÖnh Function Set.LÖnh nµy cßn x¸c ®Þnh LCD trao ®æi th«ng tin víi bªn ngoµi b»ng 4 ®­êng hay 8 ®­êng d÷ liÖu, ®é ph©n gi¶i 5x10 hay 5x7. NÕu bÝt 8/4 =1 th× LCD sÏ dïng 8 bÝt D0-D7 ®Ó trao ®æi th«ng tin víi Vi ®iÒu khiÓn (nÕu =0 th× chØ dïng 4 bit th«i). NÕu bÝt 2/1=1 th× LCD sÏ hiÓn thÞ trªn c¶ 2 dßng (nÕu =0 th× chØ hiÓn thÞ trªn 1 dßng ). NÕu bÝt 10/7=1 mçi ký tù sÏ ®­îc hiÓn thÞ víi cì ch÷ 5x10 (nÕu =0 th× cì ch÷ 5x7). VÝ dô : dïng 8 ®­êng d÷ liÖu, hiÓn thÞ 2 dßng, ph©n gi¶i 5x7 th× ta sÏ göi tíi LCD m· lÖnh sau: 00111000 ($38). Thao t¸c cô thÓ: ®Ó RS =0, R/W=0 à c¸c ®­êng vµo D0-D7 ®­îc ®Æt lµ: 00111000 ($38) à ch©n E cã 1 chuyÓn møc “1”vÒ “0” ë møc cao (cho phÐp LCD nhËn d÷ liÖu). _ T¨ng ®é t­¬ng ph¶n lªn 1 chót v× hiÖn giê ta ®ang hiÓn thÞ b»ng c¶ 2 dßng cña LCD. TiÕp theo ®©y , ta ®· cã thÓ hiÓn thÞ ch÷ trªn LCD theo tõng b­íc sau: ®Ó ch©n RS =1 (ë møc cao) (ChuyÓn LCD tõ chÕ ®é nhËn lÖnh sang chÕ ®é nhËn ký tù ,ký hiÖu), R/W=0 à Sau ®ã ta chØ viÖc ®­a tÝn hiÖu m· ho¸ cña ký tù cÇn hiÓn thÞ vµo ®­êng d÷ liÖu cña LCD à Cho ch©n E 1 chuyÓn møc “1” vÒ “0”. VÝ dô : ®Ó hiÓn thÞ ch÷ A , ta truyÒn gi¸ trÞ 01000001 ($47) (chÝnh lµ m· ASCII cña ký tù A) vµo 8 ®­êng d÷ liÖu cña LCD. ThËm chÝ ta cã thª hiÓn thÞ 1 d·y ký tù nh­ sÏ xÐt ë phÇn sau ®©y. àKÕt luËn thiÕt lËp chÕ ®é hiÓn thÞ ban ®Çu cho LCD b»ng lÖnh : Display On/Of and Cursor : 00001111($0F) Function Set: 00111000 ($38) 3b. HiÓn thÞ ký tù trªn LCD. _ §Æt vÊn ®Ò: Sau khi ®· thiÕt lËp cho LCD chÕ ®ä hiÓn thÞ nh­ trªn, ta sÏ hiÓn thÞ 1 vµi ký tù trªn LCD. VËy LCD cã thÓ hiÓn thÞ nh÷ng ký tù nµo vµ ®­a c¸c ký tù ®ã vµo LCD nh­ thÕ nµo? PhÇn nµy sÏ gi¶i ®¸p c©u hái ®ã. _ LCD cã bé nhí ROM m· ho¸ c¸c ký tù mµ nã cã thÓ hiÓn thÞ. Tæng sè cã 192 ký tù, khi cÇn chän nh÷ng ký tù nµy th× chØ cÇn ®Æt m· nhÞ ph©n cña nã ë ®Çu vµo, cã tíi 96 m· ký tù ASCII, 64 m· ký tù tiÕng NhËt, 32 ký tù ®Æc biÖt kh¸c. M« t¶ b¶ng m· ho¸ ký tù chuÈn: 16 m· ®Çu tiªn trong b¶ng (tõ $00 - $0F) cßn ®Ó trèng ®Ó chøa c¸c ký tù , biÓu t­îng do ng­êi dïng tù ®Þnh nghÜa. 16 ký tù tiÕp theo (tõ $10 - $1F) hiÓn thÞ c¸c ký tù trèng. C¸c vÞ trÝ tiÕp theo hiÓn thÞ ký tù nh­ trªn h×nh minh ho¹. Tõ $80 - $9F kh«ng sö dông. _Chó ý r»ng ®Ó hiÓn thÞ ký tù th× khi ®­a m· ho¸ cña ký tù vµo D0-D7 th× LCD ph¶i ®Ó ë chÕ ®é nhËn d÷ liÖu (tøclµ RS=1. R/W=0) à Sau ®ã ®Æt m· nhÞ ph©n cña ký tù ®ã vµo D0-D7 à t¹o ra 1 chuyÓn møc “1” vÒ “0 ” ë ch©n E. Ngay sau ®ã ta sÏ thÊy ký tù ®ã ®­îc hiÓn thÞ trªn mµn h×nh 3c. HiÓn thÞ ký tù t¹i 1 vÞ trÝ bÊt kú trªn LCD. _PhÇn nµy sÏ øng dông c¸c lÖnh: Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Set Display Address 1 A A A A A A A 80 to FF _ §Æt vÊn ®Ò: Khi LCD b¾t ®Çu ®­îc ho¹t ®éng, sau khi ®­îc thiÕt lËp kiÓu hiÓn thÞ, ta sÏ thÊy trªn LCD cã 1 con trá ë ®Çu dßng ®Çu tiªn (®©y gäilµ ®Þa chØ $00). Mçi khi 1 ký tù, biÓu t­îng ®­îc hiÓn thÞ, con trá ®ã l¹i dÞch sang ph¶i 1 vÞ trÝ (tøc lµ sang ®Þa chØ tiÕp theo $01, $02…). Sù tù ®éng t¨ng ®Þa chØ cña con trá nh­ vËy ®· t¹o sù thuËn tiÖn trong hiÓn thÞ 1 chuçi ký tù trªn LCD v× ta kh«ng cÇn ph¶i ®Þnh ®Þa chØ hiÓn thÞ cho tõng ký tù. Nh­ng nÕu ta kh«ng muèn hiÓn thÞ chuçi ký tù ë vÞ trÝ ®Çu cña dßng ®Çu tiªn n÷a, mµ muèn hiÓn thÞ tõ 1 vÞ trÝ bÊt kú , th× lóc nµy ta ph¶i cho LCD biÕt ®Þa chØ hiÓn thÞ th«ng qua lÖnh Set Display Address _ LÖnh Set Display Address : LÖnh nµy sÏ ®Æt con trá mµn h×nh ë vÞ trÝ (cã to¹ ®é x¸c ®Þnh bëi 0AAAAAAA) trªn mµn h×nh . Sau ®ã ta cã thÓ cho hiÓn thÞ ch÷ t¹i vÞ trÝ míi cña con trá. _ C¸c ®Þnh ®Þa chØ trªn mµn h×nh LCD. Ta biÕt r»ng ®Þa chØ ®Æt con trá cã thÓ nhËn gi¸ trÞ $00-$ trong kho¶ng 7F tøc lµ 128 ®Þa chØ. Nh­ng trªn thùc tÕ (do kÝch th­êc cña LCD )chØ cã 80 ®Þa chØ ®­îc x¸c ®Þnh, 40 ®Þa chØ cho dßng trªn vµ 40 ®Þa chØ cßn l¹i cho dßng d­íi. ChØ cã LCD lo¹i 40x2 hµng míi dïng hÕt 80 ®Þa chØ ®ã, cßn lo¹i LCD nhá h¬n (nh­ cña ta ®ang xÐt ) còng kh«ng dïng hÕt 80 ®Þa chØ ®ã. C¸ch ®Þnh ®Þa chØ hiÓn thÞ trªn LCD ®­îc minh ho¹ theo h×nh sau: _ V× Set Display Address lµ lÖnh nªn LCD ph¶i lµm viÖc ë chÕ ®é lÖnh tõ Vi ®iÒu khiÓn göi vµo LCD. _ VÝ dô : muèn hiÓn thÞ ch÷ A trªn LCD t¹i vÞ trÝ sè 10 cña dßng trªn ($0A hay 00001010) ta lµm nh­ sau: §Æt ch©n RS=0 , R/W=0 à §Æt m· 10001010 vµo ch©n D0-D7 à T¹o cho ch©n E 1 chuyÓn møc “1” vÒ “0”. Sau b­íc nµy, con trá sÏ ¬ vÞ trÝ $0A. Giê hÕt chÕ ®é nhËn lÖnh, ta thiÕt lËp chÕ ®é nh©n d÷ liÖu : RS=1, R/W=0 à §Æt m· ho¸ cña ký tù A (00010100) vµo D0-D7à T¹o cho E 1 chuyÓn trang thai “1” – “0”. Ngay sau ®ã, ta sÏ thÊy ch÷ A hiÖn t¹i vÞ trÝ sè 10 cña dßng trªn. §Þnh ®Þa chØ trªn LCD 20ký tù x4 dßng §Þnh ®Þa chØ trªn LCD 16ký tù x2 dßng 3d. HiÓn thÞ ch÷ ch¹y b»ng LCD _ PhÇn nµy sÏ øng dông c¸c lÖnh : Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Display/Cursor Shift 0 0 0 1 D / C R / L x x 10 to 1F _ §Æt vÊn ®Ò: Tuú vµo kÝch th­íc cña LCD mµ sè l­îng ký tù hiÓn thÞ trªn LDC bÞ h¹n chÕ. Nh­ng hÇu hÕt c¸c LCD ®Òu cã chøc n¨ng dÞch chuyÓn khèi ký tù ®­îc hiÓn thÞ sang tr¸i hoÆc sang ph¶i. §iÒu nµy gióp Ých rÊt nhiÒu nÕu néi dung cÇn hiÓn thÞ lín h¬n cöa sè LCD, vµ còng lµm cho hiÓn thÞ cña LCD trë nªn sinh ®éng h¬n. Muèn vËy , ta dïng lÖnh Cursor/Display Shift _ LÖnh Cursor/Display Shift . NÕu D/C=1 LCD sÏ dÞch chuyÓn mµn h×nh (nÕu =0 LCD dÞch chuyÓn con trá). NÕu R/L=1 LCD dÞch chuyÓn sang ph¶i (nÕu =0 th× dch sanÞg tr¸i). _ VÝ dô: Sau ®©y ta xÐt cô thÓ 1 vÝ dô dÞch chuyÓn 1 khèi ký tù trªn LCD: NhËp lÖnh vµo LCD ®Ó thiÕt lËp tr¹ng th¸i ban ®Çu (hiÓn thÞ 1 dßng, con trá nhÊp nh¸p cã g¹ch ch©n ) (lÖnh Function Set, Display On/Off and Cursor ), sau ®ã truyÒn d÷ liÖu vµo LCD , ë ®©y ta truyÒn cho LCD 26 ký tù tõ A-Z (truyÒn m· tõ 01000001 – 01011010 tøc lµ tõ $41-$5A) Tuy nhiªn trªn LCD ta chØ quan s¸t ®­îc 16 ký tù ë dßng trªn , tõ A-P. Nh÷ng ký tù cßn l¹i vµ con trá ®Òu bÞ khuÊt vÒ bªn ph¶i nªn ta kh«ng quan s¸t ®­îc. Giê ta sÏ dïng lÖnh Cursor/Display Shift ®Ó dÞch khèi 26 ký tù ®ã sang tr¸i ®Ó cã thÓ nh×n ®­îc c¸c ký tù cßn l¹i vµ con trá. Mçi lÇn lÖnh Cursor/Display Shift ®­îc nhËp vµo LCD, khèi 26 ký tù ®ã sÏ dÞch ®i 1 vÞ trÝ. Cø liªn tôc nhËp lÖnh vµo LCD, sau 1 thêi gian ta sÏ nh×n ®­îc ký tù ..Z, sau ®ã lµ c¶ con trá còng ®­îc hiÓn thÞ. VÉn tiÕp tôc nhËp lÖnh dÞch chuyÓn vµo ta l¹i thÊy c¸c ký tù ®Çu (A,B..) ®­îc hiÓn thÞ nh­ thÓ c¶ khèi 26 ký tù ®­îc quay vßng quanh - ®©y chÝnh lµ c¸ch LCD thùc hiªn lÖnh Cursor/Display Shift- V× khi nhËn lÖnh nµy LCD kh«ng thay ®æi ®Þa chØ cña tõng ký tù , mµ dÞch chuyÓn c¶ khèi ®Þa chØ cña LCD sang tr¸i hay sang ph¶i. _ LÖnh Cursor/Display Shift ngoµi cã t¸c dông ®èi dÞch chuyÓn ®èi víi ký tù nh­ ®· tr×nh bµy ë trªn , nã cßn ®­îc dïng ®Ó dÞch chuyÓn con trá hiÓn thÞ. Dïng lÖnh nµy ®èi víi con trá sÏ gióp ta chØnh söa néi dung t¹i 1 ®Þa chØ bÊt kú trong cña sæ hiÓn thÞ. 3e. Con trá c¬ së. _ PhÇn nµy øng dông lÖnh: Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Clear Display 0 0 0 0 0 0 0 1 01 Display & Cursor Home 0 0 0 0 0 0 1 x 02 or 03 _§Æt vÊn ®Ò: Sau khi thùc hiÖn ch÷ ch¹y trªn LCD, ta thÊy r»ng c¶ hÖ thèng ®Þa chØ cña mµn h×nh LCD ®· bÞ dÞch chuyÓn. Cã c¸ch nµo nhanh nhÊt ®Ó ®­a hÖ thèng ®Þa chØ ®ã trë vÒ d¹ng chuÈn nh­ ban ®Çu kh«ng? §©y lµ lóc ta dïng lÖnh Display and Cursor Home, Clear Display _ LÖnh Cursor Home : võa cã t¸c dông ®­a con trá vÒ ®Þa chØ ®Çu tiªn ($00), võa cã t¸c dông kÐo ®Þa chØ 0 cña khèi ®Þa chØ cña LCD vÒ vÞ trÝ gãctr¸i cña dßng ®µu tiªn. _ LÖnh Clear Display còng cã 2 t¸c dông trªn cña lÖnh Cursor Home , ngoµi ra nã cßn cã t¸c dông xo¸ tÊt c¶ néi dông võa ®­îc hiÓn thÞ trªn LCD . 3f. ChÕ ®é nhËn d÷ liÖu _PhÇn nµy sÏ øng dông lÖnh: Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Character Entry Mode 0 0 0 0 0 1 1 / D S 04 to 07 _ §Æt vÊn ®Ò: Nh­ ë c¸c tr­êng hîp ta xÐt ë trªn, khi 1 ký tù ®­îc nhËp vµo, sau khi LCD hiÓn thÞ ký tù ®ã th× con trá tù ®éng t¨ng ®Þa chØ cña nã lªn . Tuy nhiªn kh«ng ph¶i nhÊt thiÕt lóc nµo còng ph¶i hiÓn thÞ theo c¸ch ®ã, tøc lµ sau khi hiÓn thÞ con trá cã thÓ tù ®éng gi¶m ®Þa chØ. H·y xÐt 1 vÝ dô cô thÓ mµn h×nh hiÓn thÞ cña 1 chiÕc m¸y tÝnh ®iÖn tö bá tói b×nh th­êng. Khi bËt m¸y cã sè 0 ë gãc bªn ph¶i mµn h×nh. Sau ®ã ng­êi dïng nhËp 1 sè vµo, th× sau khi hiÓn thÞ sè ®ã, con trá l¹i tù ®éng dÞch sang tr¸i (tøc lµ gi¶m ®Þa chØ cña nã). Cø nh­ vËy, cµng nhiÒu ký tù ®­îc nhËp vµo th× con trá cµng sang bªn tr¸i (tøc lµ ®Þa chØ cña nã cµng g¶m). B©y giê ta sÏ lµm cho mµn h×nh LCD cña ta ho¹t ®éng nh­ choc n¨ng cña mµn h×nh chiÕc m¸y tÝnh ®iÖn tö. §ã chÝnh lµ hiÖu qu¶ cña viÖc sö dông lÖnh Character Entry Mode _ LÖnh Character Entry Mode : NÕu S=1 cho phep dich chuyen con tro (nÕu=0 th× kh«ng dÞch). NÕu 1/D=0®Þa chØ con trá tù ®éng t¨ng 1 tøc lµ con trá dÞch sang ph¶i sau khi hiÓn thÞ (nÕu =1th× dÞch sang tr¸i). _ Thùc hiÖn lÇn l­ît c¸c b­íc sau: NhËp c¸c lÖnh thÝch hîp (Function Set, Display On/Off and Cursor)vµo LCD ®Ó thiÕt lËp chÕ ®é ban ®Çu cho LCD, chØ dïng 1 dßng ®Ó hiÓn thÞ, ®Þnh ®Þa chØ hiÓn thÞ ë $10 (lÖnh Set Display Address ) . Sau ®ã göi lÖnh Character Entry Mode vµo LCD m· nhÞ ph©n lµ: 00000111 ($07) . LÖnh nµy sÏ thiÕt lËp chÕ ®é hiÓn thÞ- dÞch tr¸i cho LCD (tøc lµ sau khi hiÓn thÞ th× con trá dÞch sang tr¸i). Mäi c«ng viÖc chuÈn bÞ va thiÕt lËp chÕ ®é ®· hoµn tÊt. Giê chØ cßn 1 viÖc lµ nhËp sè hay ký tù vµo LCD ®Ó kiÓm tra kiÕt qu¶. NhËp d÷ liÖu vµo LCD . Ta nhËp c¸c sè tõ 0-9 (m· ho¸ tõ 00110000 ®Õn 00111001 ($30 ®Õn $39 )). Ta sÏ they LCD ho¹t ®éng ®óng nh­ mµn h×nh hiÓn thÞ cña m¸y tÝnh ®iÖn tö. Sau khi 1 sè ®­îc hiÓn thÞ, con trá sÏ dÞch sang tr¸i ®Ó chê hiÓn thÞ sè tiÕp theo. _ ë b¶ng c¸c lÖnh cña LCD ta they r»ng lÖnh cã thÓ nhËp vµo LCD víi 4 c¸ch m· ho¸ kh¸c nhau tõ 00000100 ®Õn 00000111 ($04 ®Õn $07). Mçi 1 c¸ch m· ho¸ sÏ ®¸p øng 1 nhu cÇu trong ®êi sèng thùc tÕ (nh­ mµn h×nh m¸y tÝnh ®iÖn tö ch¼ng h¹n) 3g. HiÓn thÞ ký tù tuú ý trªn LCD theo ®Þnh nghÜa ng­êi dïng. _ PhÇn nµy sÏ øng dông lÖnh: Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Set CGRAM Address 0 1 A A A A A A 40 to 7F _ LÖnh Set CGRAM Address : sÏ khëi ®éng chøc n¨ng hiÓn thÞ c¸c ký tù , h×nh d¹ng theo ®Þnh nghÜa riªng cña ng­êi sö dông. LCD cho phÐp ®Þnh nghÜa tèi ®a 8 ký tù ng­êi dïng . _ C¸c b­íc thùc hiÖn: VÝ dô muèn hiÓn thÞ h×nh ng­êi nh­ minh ho¹ ta ph¶i lÇn l­ît thùc hiÖn c¸c b­íc sau: ThiÕt lËp chÕ ®é lµm viÖc cho LCD. Göi lÖnh Set CGRAM Address ®Õn Vi ®iÖu khiÓn (m· lÖnh bÊt kú tõ $04-$78). tõ lóc nµy trë ®i, d÷ liÖu ®­îc truyÒn vµo sÏ t¹o nªn hiÓn thÞ theo ý ng­êi dïng theo tõng dßng 1. NhËp 1 bé 8 dßng m· nhÞ ph©n ®Ó hiÓn thÞ ®­îc nh­ y muèn (00001110, 00010001, 00001110, 00000100, 00011111, 00000100, 00001010, 00010001 ($0E, $11, $0E, $04, $1F, $04, $0A, $11) ). Sau khi LCD nhËn 8 dßng vµo nµy, 1 h×nh sÏ ®­îc hiÖn trªn mµn h×nh LCD. NÕu g­Ø bé 8 dßng bÝt vµo ta sÏ ®­îc 2 ký tù , h×nh vÏ kh¸c. _ Chó ý r»ng CGRAM lµ bé nhí t¹m thêi, nÕu mÊt ®iÖn nã sÏ mÊt. V× vËy khi nèi LCD víi Vi ®iÒu khiÓn, th× bé 8 dßng bit ®ã ph¶i ®­îc l­u s½n trong bé nhí ROM cña Vi diÒu khiÓn, khi nµo dïng tíi th× ®Þnh nghÜa ®ã ®­îc gäi ra. 3g. LCD trao ®æi víi bªn ngoµi b»ng 4 bit _ PhÇn nµy sÏ øng dông lÖnh : Command D7 D6 D5 Binary D4 D3 D2 D1 D0 Hex Function Set 0 0 1 8 / 4 2 / 1 10 / 7 x x 20 to 3F _ §Æt vÊn ®Ò: Trong thùc tÕ th­êng gÆp LCD ®­îc ®iÒu khiÓn bs»ng lo¹i Chip 4 bit ra. Trong khi LCD co 8 ®­êng vµo ra d÷ liÖu. V× thÕ ta ph¶i xem xÐt kh¶ n¨ng lµm viÖc víi LCD mµ chØ dïng 4 ®­êng d÷ liÖu (®Ó t­¬ng thÝch víi lo¹i Vi §iÒu KhiÓn 4 bit). 4 bit ®­îc gäi lµ 1 nöa byte. ë chÕ ®é 4 bit, dïng 4 bit nµo ®Ó trao ®æi th«ng tin? Tr¶ lêi: dïng 4 bit cao D4-D7 ®Ó trao ®æi th«ng tin. $ bit thÊp cßn l¹i D0-D3 ph¶i tu©n thñ c¸ch xö lý sau: 4 bit kh«ng sö dông nµy ph¶i th¶ tù do hoÆc nèi víi 1 cùc th«ng qua ®iÖn trë 4k7-47k. TuyÖt ®èi kh«ng ®­îc nèi 4 ch©n kh«ng sö dông nµy trùc tiÕp víi ®Êt v× sÏ lµm cho LCD hiÓu nhÇm lµ dïng 8 bÝt ®Ó trao ®æi d÷ liÖu (4 bit D0-D3 lµ 0000). §Ó LCD lµm viÖc ë chÕ ®é giao tiÕp 4 bit th× viÖc ®Çu tiªn lµ ph¶i thiÕt lËp (ra lÖnh cho LCD) chän chÕ ®é lµm viÖc 4 bit (dïng lÖnh Function Set ) . Nh­ng cã vÊn ®Ò n¶y sinh lµ lÖnh ®ã còng chØ ®­îc ®­a vµo LCD b»ng 4 bit D4-D7 mµ th«i, cßn 4 bÝt thÊp th× kh«ng thÓ thay ®æit gi¸ trÞ tuú ý ®­îc. Nh­ng thËt may m¾n lµ trong lÖnh Function Set bÝt ra lÖnh cho LCD lµm viÖc ë chÕ ®é 4 bit lµ bit 4 , v× vËy chØ cÇn göi tíi LCD m· lÖnh 00100000 lµ ®· thiÕt lËp ®­îc chÕ ®é trao ®æi th«ng tin 4 bit. Sau khi thiÕt lËp chÕ ®é trao ®æi th«ng tin4 bit, kÓ tõ lóc nµy mäi lÖnh vµ d÷ liÖu ®­îc göi tíi LCD ®Òu ph¶i chia lµm 2 phÇn : 4 bÝt phÇn cao göi tr­íc, sau ®ã míi göi 4 bÝt phÇn thÊp . Mçi 1 lÇn göi th«ng tin tíi LCD ®Òu ph¶i cÊp cho ch©n E 1 xung d­¬ng. Nh­ vËy v× sè lÇn göi ë chÕ ®é 4 bit gÊp 2 lÇn sè lÇn göi ë chÕ ®é 8 bit, nªn sè xung d­¬ng cÇn cÊp cho ch©n E còng gÊp ®«i. 3h.§äc th«ng tin vÒ LCD. _ PhÇn nµy sÏ øng dông lÖnh: Instruction RS D7 D6 D5 Binary D4 D3 D2 D1 D0 Read Data High D D D D D D D D Read Status Low BF A A A 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) Table 6: HD44780 Read Instructions. _ LÖnh : Cê bËn cña LCD sÏ ®­îc ®äc trªn ®­êng D7. NÕu D7=1 tøc lµ LCD ®ang thùc hiÖn lÖnh vµ nã ch­a s½n sµng ®Ó nh©n th«ng tin tõ VI diÒu khiÓn (nÕu D7=0 tøc lµ LCD ®· s½n sµng chê th«ng tin). 6 bit A lµ m· ho¸ vÞ trÝ cña con trá trªn mµn h×nh, ®­îc ®äc ra ë ch©n D0-D6. _ C¸c th«ng tin tr¹ng th¸i b¸o vÒ Vi ®iÒu khiÓn ®Ó V§K ®îi LCD hÕt bËn míi göi lÖnh tiÕp theo. _ Chó ý r»ng LCD ph¶i ®Ó ë chÕ ®é ®äc th«ng tin ra : RS=1, R/W=1 3g. Chu tr×nh thêi gian trªn LCD. CÇn ®Ó ý tíi thêi gian LCD thùc hiÖn 1 lÖnh ®Ó t¹o nh÷ng kho¶ng thêi gian trÔ thÝch hîp trong khi lËp tr×nh Assembly. Kho¶ng thêi gian trÔ cã t¸c dông ®îi ®Ó LCD thùc hiÖn xong lÖnh tr­íc råi míi göi lÖnh tiÕp theo. Sau khi cÊp nguån cho LCD ph¶i ®îi cho tíi khi LCD khëi ®éng xong hoµn toµn, ta chÌn vµo ®ã 1 thêi gian trÔ. Thêi gian thùc hiÖn lÖnh Qu¸ tr×nh thùc hiÖn lÖnh (nhËn d÷ liÖu ) LËp tr×nh Assembly cho Vi §iÒu KhiÓn 89C51 §iÒu khiÓn ho¹t ®éng cña LCD ; LCD Example Program ; Port 1 = D0-D7 (data port), R/W nèi víi P3.2, Enable nèi víi P3.4, RS nèi víi P3.3 ;***** #INCLUDE "8051EQU.INC" ;include predefined constants ; ;************************************************************************** ; BiÕn vµ H»ng ; ; LËp 1 bé nhí ®Öm cã 16 « nhí (®ñ cho 1 LCD). ; §Ó viÕt ký tù lªn LCD, ký tù ®­îc ®­a vµo bé ®Öm sau ®ã ; tÊt c¶ c¸c bÝt ®­îc ®ång lo¹t ®­a vµo 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 ; ;************************************************************************** ; ; 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 ; ;************************************************************************** ; 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 ; ;************************************************************************** ; ; ;************************************************************************** ; 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 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 ; 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 ; ;************************************************************************** ; 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 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

Các file đính kèm theo tài liệu này:

  • docLCD.doc
Tài liệu liên quan