You are on page 1of 27

Tài liệu này được upload & download miễn phí tại website: http://hutonline.

net

Bách Khoa Online


Giao lưu - Học hỏi - Chia sẻ kinh nghiệm
của các thế hệ sinh viên Bách Khoa
hutonline.net
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

Lêi nãi ®Çu


Trong sù ph¸t triÓn cña kü thuËt ®iÖn tö ngµy nay viÖc sö dông c¸c con vi ®iÒu khiÓn
trong c¸c hÖ thèng ®iÖn tö rÊt phæ biÕn c¶ vÒ sè l−îng c¸c øng dông cña nã trªn nhiÒu
thiÕt bÞ ®iÖn tö tõ d©n dông cho ®Õn chuyªn dông, trong nhiÒu lÜnh vùc nh− ®o l−êng,
®iÒu khiÓn, v.v nhê vµo nhiÒu −u ®iÓm cña nã. Cïng víi nã lµ sù ph¸t triÓn kü thuËt sè
víi nÒn t¶ng lµ c¸c m¹ch logic sè dùa trªn sù kÕt hîp cña c¸c cæng logic c¬ b¶n mµ
ngµy nay ®· ®−îc tÝch hîp trong c¸c IC sè. ViÖc sö dông mµn h×nh LCD ®Ó hiÓn thÞ
th«ng tin nh»m môc ®Ých th«ng b¸o, qu¶ng c¸o, t¹i c¸c n¬i c«ng céng ®· ®−îc sö
dông rÊt réng r·i.
Trªn c¬ së nh÷ng kiÕn thøc ®· ®−îc häc trong m«n häc kü thuËt vi xö lý vµ Kü
thuËt sè chóng em ®· thiÕt kÕ mét m¹ch logic sè sö dông vi ®iÒu khiÓn víi tªn ®Ò tµi
®Çy ®ñ lµ: Mµn h×nh qu¶ng c¸o ë chÕ ®é v¨n b¶n sö dông mµn h×nh LCD cã sö
dông giao tiÕp bµn phÝm víi môc ®Ých lµ t×m hiÓu thªm vÒ vi ®iÒu khiÓnvµ lÜnh vùc
kü thuËt sè, n©ng cao kiÕn thøc cña m×nh.
Do kiÕn thøc cßn h¹n hÑp vµ thêi gian thùc hiÖn kh«ng ®−îc nhiÒu nªn ®Ò tµi cña
chóng em cßn rÊt nhiÒu sai sãt, h¹n chÕ. MÆc dï ®· cè g¾ng phÇn nµo thiÕt kÕ vµ tÝnh
to¸n mét c¸ch chi tiÕt c¸c m¹ch, c¸c th«ng sè nh−ng ®«i khi cßn mang tÝnh lý thuyÕt,
ch−a thùc tÕ. Chóng em mong cã sù gãp ý vµ söa ch÷a ®Ó ®Ò tµi nµy cã tÝnh kh¶ thi
h¬n vÒ c¶ ph−¬ng diÖn kinh tÕ còng nh− kü thuËt.

Hµ Néi 4/2006

Nhãm sinh viªn thùc hiÖn: HOµNG NGäC ANH

D¦¥NG THµNH PHAO

NGUYÔN HOµNG H¶I A

NGUYÔN HOµNG H¶I B

NGUYÔN H÷U H¶I

Líp §iÖn Tö 2-K48 §HBKHN

PhÇn I:Vi ®iÒu khiÓn 8051

1
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

Bé vi ®iÒu khiÓn 8051 lµ thµnh viªn ®Çu tiªn cña hä 8051

EXTERNAL
INTERRUPTS
ETC

COUNTER INPUTS
TIMER 0
INTERRUPT ON - CHIP
CONTROL RAM TIMER 1

CPU

OSC BUS 4 I/O SERIAL


CONTROL PORTS PORT

P0 P1 P2 P3 TXD RXD
Bè trÝ bªn trong cña s¬ ®å khèi 8051.
ADDRESS/DATA

1.Bªn trong 8051.


Trong phÇn nµy chóng ta nghiªn cøu c¸c thanh ghi chÝnh cña 8051 vµ tr×nh bµy c¸ch
sö dông víi c¸c lÖnh ®¬n gi¶n MOV vµ ADD.
1.1 C¸c thanh ghi.
Trong CPU c¸c thanh ghi ®−îc dïng ®Ó l−u cÊt th«ng tin t¹m thêi, nh÷ng th«ng tin
nµy cã thÓ lµ mét byte d÷ liÖu cÇn ®−îc sö lý hoÆc lµ mét ®Þa chØ ®Õn d÷ liÖu cÇn ®−îc
n¹p. PhÇn lín c¸c thanh ghi cña 8051 lµ c¸c thanh ghi 8 bit. Trong 8051 chØ cã mét kiÓu
d÷ liÖu: Lo¹i 8 bit, 8 bit cña mét thanh ghi ®−îc tr×nh bµy nh− sau:
D7 D6 D5 D4 D3 D2 D1 D0

víi MSB lµ bit cã gi¸ trÞ cao nhÊt D7 cho ®Õn LSB lµ bit cã gi¸ trÞ thÊp nhÊt D0. (MSB -
Most Sigfican bit vµ LSB - Leart Significant Bit). Víi mét kiÓu d÷ liÖu 8 bit th× bÊt kú d÷
liÖu nµo lín h¬n 8 bit ®Òu ph¶i ®−îc chia thµnh c¸c khóc 8 bit tr−íc khi ®−îc xö lý. V× cã
mét sè l−îng lín c¸c thanh ghi trong 8051 ta sÏ tËp trung vµo mét sè thanh ghi c«ng
dông chung ®Æc biÖt trong c¸c ch−¬ng kÕ tiÕp.
C¸c thanh ghi ®−îc sö dông réng r·i nhÊt cña 8051 lµ A (thanh ghi tÝch luü), B,
R0 - R7, DPTR (con trá d÷ liÖu) vµ PC (bé ®Õm ch−¬ng tr×nh). TÊt c¶ c¸c d÷ liÖu

2
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

trªn ®Òu lµ thanh g hi 8 bit trõ DPTR vµ PC lµ 16 bit. Thanh ghi tÝch luü A ®−îc
sö dông cho tÊt c¶ mäi phÐp to¸n sè häc vµ l«-gÝc.

2. M« t¶ ch©n cña 8051.

MÆc dï c¸c thµnh viªn cña hä 8051 (vÝ dô 8751, 89C51, DS5000). Tuy nhiªn, v×
hÇu hÕt c¸c nhµ ph¸t triÓn chÝnh sö dông chÝp ®ãng vá 40 ch©n víi hai hµng ch©n DIP
nªn ta chØ tËp chung m« t¶ phiªn b¶n nµy.

P1.0 1 40 Vcc
P1.1 2 39 P0.0 (AD0)
P1.2 3 38 P0.1 (AD1)
P1.3 4 37 P0.2 (AD2)
P1.4 5 36 P0.3 (AD3)
P1.5 6 35 P0.4 (AD4)
P1.6 7 34 P0.5 (AD5)
P1.7 8 8051 33 P0.6 (AD6)
RST 9 32 P0.6 (AD6)
(RXD) P3.0 10 (8031) 31 EA/CPP
(TXD) P3.1 11 30 ALE/PROG
(NT0) P3.2 12 29 PSEN
(NT1) P3.3 13 28 P2.7 (A15)
(T0) P3.4 14 27 P2.6 (A14)
(T1) P3.5 15 26 P2.5 (A13)
(WR) P3.6 16 25 P2.4(A12)
(RD) P3.7 17 24 P2.3 (A11)
XTAL2 18 23 P2.2 (A10)
XTAL1 19 22 P2.1 (A9)
GND 20 21 P2.0 (AB)

S¬ ®å bè trÝ ch©n cña 8051.


Trªn h×nh lµ s¬ ®å bè trÝ ch©n cña 8051. Ta thÊy r»ng trong 40 ch©n th× cã 32 ch©n
dµnh cho c¸c cæng P0, P1, P2 vµ P3 víi mçi cæng cã 8 ch©n. C¸c ch©n cßn l¹i ®−îc dµnh
cho nguån VCC, ®Êt GND, c¸c ch©ngiao ®éng XTAL1 vµ XTAL2 t¸i lËp RST cho phÐp
chèt ®Þa chØ ALE truy cËp ®−îc ®Þa chØ ngoµi EA , cho phÐp cÊt ch−¬ng tr×nh PSEN .
Trong 8 ch©n nµy th× 6 ch©n VCC , GND, XTAL1, XTAL2, RST vµ EA ®−îc c¸c hä
8031 vµ 8051 sö dông. Hay nãi c¸ch kh¸c lµ chóng ph¶i ®−îc nèi ®Ó cho hÖ thèng lµm
viÖc mµ kh«ng cÇn biÕt bé vi ®iÒu khiÓn thuéc hä 8051 hay 8031. Cßn hai ch©n kh¸c lµ
PSEN vµ ALE ®−îc sö dông chñ yÕu trong c¸c hÖ thèng dùa trªn 8031.

3
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

C¸c chÕ ®é ®¸nh ®Þa chØ cña 8051


C¸c chÕ ®é ®¸nh ®Þa chØ kh¸c nhau cña bé vi xö lý ®−îc x¸c ®Þnh nh− nã ®−îc
thiÕt kÕ vµ do vËy ng−êi lËp tr×nh kh«ng thÓ ®¸nh ®Þa chØ kh¸c nhau lµ:
1. tøc thêi 2. Theo thanh ghi 3. Trùc tiÕp
4. gi¸n tiÕp qua thanh ghi 5. Theo chØ sè
1 C¸c chÕ ®é ®¸nh ®Þa chØ tøc thêi vµ theo thanh ghi
1.1 ChÕ ®é ®¸nh ®Þa chØ tøc thêi
Trong chÕ ®é ®¸nh ®Þa chØ nµy to¸n h¹ng nguån lµ mét h»ng sè. Vµ nh− tªn gäi cña nã
th× khi mét lÖnh ®−îc hîp dÞch to¸n h¹ng ®i tøc thi ngay sau m· lÖnh. L−u ý r»ng tr−íc
d÷ liÖu tøc thêi ph¶i ®−îc ®Æt dÊu (#) chÕ ®é ®¸nh ®Þa chØ nµy cã thÓ ®−îc dïng ®Ó n¹p
th«ng tin vµo bÊt kú thanh ghi nµo kÓ c¶ thanh ghi con trá d÷ liÖu DPTR.
1.2 chÕ ®é ®¸nh ®Þa chØ theo thanh ghi:
ChÕ ®é ®¸nh ®Þa chØ theo thanh ghi liªn quan ®Õn viÖc sö dông c¸c thanh ghi ®Ó d÷
liÖu cÇn ®−îc thao t¸c c¸c vÝ dô vÒ ®¸nh ®Þa chØ theo thanh ghi nh− sau:
MOV A, RO ; Sao néi dung thanh ghi RO vµo thanh ghi A
Còng nªn l−u ý r»ng c¸c thanh ghi nguån vµ ®Ých ph¶i phï hîp vÒ kÝch th−íc. Hay
nãi c¸ch kh¸c, nÕu viÕt “ MOV DPTR, A” sÏ cho mét lçi v× nguån lµ thanh ghi 8 bit vµ
®Ých l¹i lµ thanh ghi 16 bit. XÐt ®o¹n m· sau:
MOV DPTR, #25F5H
§Ó ý r»ng ta cã thÓ chuyÓn d÷ liÖu gi÷a thanh ghi tÝch luü A vµ thanh ghi Rn (n tõ
0 ®Õn 7) nh−ng viÖc chuyÓn d÷ liÖu gi÷a c¸c thanh ghi Rn th× kh«ng ®−îc phÐp. VÝ
dô, lÖnh “MOV R4, R7” lµ kh«ng hîp lÖ.
2 Truy cËp bé nhí sö dông c¸c chÕ ®é ®¸nh ®Þa chØ kh¸c nhau.
2.1 ChÕ ®é ®¸nh ®Þa chØ trùc tiÕp.
Nh− ®· nãi ë ch−¬ng 2 trong 8051 cã 128 byte bé nhí RAM. Bé nhí RAM
®−îc g¸n c¸c ®Þa chØ tõ 00 ®Õn FFH vµ ®−îc ph©n chia nh− sau:
1. C¸c ng¨n nhí tõ 00 ®Õn 1FH ®−îc g¸n cho c¸c b¨ng thanh ghi vµ ng¨n xÕp.
2. C¸c ng¨n nhí tõ 20H ®Õn 2FH ®−îc dµnh cho kh«ng gian ®¸nh ®Þa chØ theo bit ®Ó
l−u c¸c d÷ liÖu 1 bit.
3. C¸c ng¨n nhí tõ 30H ®Õn 7FH lµ kh«ng gian ®Ó l−u d÷ liÖu cã kÝch th−íc 1byte.
MÆc dï toµn bé byte cña bé nhí RAM cã thÓ ®−îc truy cËp b»ng chÕ ®é ®¸nh ®Þa
chØ trùc tiÕp, nh−ng chÕ ®é nµy th−êng ®−îc sö dông nhÊt ®Ó truy cËp c¸c ng¨n nhí
RAM tõ 30H ®Õn 7FH. §©y lµ do mét thùc tÕ lµ c¸c ng¨n nhí dµnh cho b¨ng ghi ®−îc
truy cËp b»ng thanh ghi theo c¸c tªn gäi cña chóng lµ R0 - R7 cßn c¸c ng¨n nhí kh¸c
cña RAM th× kh«ng cã tªn nh− vËy. Trong chÕ ®é ®¸nh ®Þa chØ trùc tiÕp th× d÷ liÖu ë
trong mét ng¨n nhí RAM mµ ®Þa chØ cña nã ®−îc biÕt vµ ®Þa chØ nµy ®−îc cho nh− lµ
mét phÇn cña lÖnh. Kh¸c víi chÕ ®é ®¸nh ®Þa chØ tøc th× mµ to¸n h¹ng tù nã ®−îc cÊp
víi lÖnh. DÊu (# 0 lµ sù ph©n biÖt gi÷a hai chÕ ®é ®¸nh ®Þa chØ.
*C¸c thanh ghi cã thÓ ®¸nh ®Þa chØ theo bit.
XÐt theo chÕ ®é ®¸nh ®Þa chØ trùc tiÕp th× cÇn ph¶i l−u ý r»ng gi¸ trÞ ®Þa chØ ®−îc
giíi h¹n ®Õn 1byte, 00 - FFH. §iÒu nµy cã nghÜa lµ viÖc sö dông cña chÕ ®é ®¸nh ®Þa chØ

4
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

nµy bÞ giíi h¹n bëi viÖc truy cËp c¸c vÞ trÝ ng¨n nhí cña RAM vµ c¸c thanh ghi víi ®Þa
chØ ®−îc cho bªn trong 8051.
2.3 Ng¨n xÕp vµ chÕ ®é ®¸nh ®Þa chØ trùc tiÕp.
Mét c«ng dông chÝnh kh¸c cña chÕ ®é ®¸nh ®Þa chØ trùc tiÕp lµ ng¨n xÕp. Trong
hä 8051 chØ cã chÕ ®é ®¸nh ®Þa chØ trùc tiÕp lµ ®−îc phÐp ®Èy vµo ng¨n xÕp. Do vËy, mét
lÖnh nh− “PVSH A” lµ kh«ng hîp lÖ. ViÖc ®Èy thanh ghi A vµo ng¨n xÕp ph¶i ®−îc viÕt
d−íi d¹ng “PVAH 0E0H” víi 0E0H lµ ®Þa chØ cña thanh ghi A. T−¬ng tù nh− vËy ®Ó ®Èy
thanh ghi R3 r·nh 0 vµo ng¨n xÕp ta ph¶i viÕt lµ “PVSH 03”. ChÕ ®é ®¸nh ®Þa chØ trùc
tiÕp ph¶i ®−îc sö dông cho c¶ lÖnh POP. V× dô “POP 04” sÏ kÐo ®Ønh cña ng¨n xÕp vµo
thanh ghi R4 r·nh 0.
2.4 chÕ ®é ®¸nh ®Þa chØ gi¸n tiÕp thanh ghi.
Trong chÕ ®é nµy, mét thanh ghi ®−îc sö dông nh− mét con trá ®Õn d÷ liÖu.
NÕu d÷ liÖu ë bªn trong CPU th× chØ c¸c thanh ghi R0 vµ R1 ®−îc sö dông
cho môc ®Ých nµy. Hay nãi c¸ch kh¸c c¸c thanh ghi R2 - R7 kh«ng cã thÓ
dïng ®−îc ®Ó gi÷ ®Þa chØ cña to¸n h¹ng n»m trong RAM khi sö dông chÕ ®é
®¸nh ®Þa chØ nµy khi Ro vµ R1 ®−îc dïng nh− c¸c con trá, nghÜa lµ khi chóng
gi÷ c¸c ®Þa chØ cña c¸c ng¨n nhí RAM th× tr−íc chóng ph¶i ®Æt dÊu (@) nh−
chØ ra d−íi ®©y.
MOV A, @ R0; ChuyÓn néi dung cña ng¨n nhí RAM cã ®Þa chØ trong RO vµ A
L−u ý r»ng R0 còng nh− R1 lu«n cã dÊu “@” ®øng tr−íc. Khi kh«ng cã dÊu
nµy th× ®ã lµ lÖnh chuyÓn néi dung c¸c thanh ghi Ro vµ R1 chø kh«ng ph¶i
d÷ liÖu ng¨n nhí mµ ®Þa chØ cã trong R0 vµ R1.
12.1 Phèi ghÐp mét LCD víi 8051.
ë phÇn nµy ta sÏ m« t¶ c¸c chÕ ®é ho¹t ®éng cña c¸c LCD vµ sau ®ã m« t¶ c¸ch
lËp tr×nh vµ phèi ghÐp mét LCD tíi 8051.
12.1.2 c¸c ch©n cña LCD.
B¶ng 2.1: M« t¶ c¸c ch©n cña LCD.
Ch©n Ký hiÖu I/O M« t¶
1 VSS - §Êt
2 VCC - D−¬ng nguån 5v
3 VEE - CÊp nguån ®iÒu khiÓn ph¶n
4 RS I RS = 0 chän thanh ghi lÖnh. RS = 1 chän
thanh d÷ liÖu
5 R/W I R/W = 1 ®äc d÷ liÖu. R/W = 0 ghi
6 E I/O Cho phÐp
7 DB0 I/O C¸c bÝt d÷ liÖu

5
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

8 DB1 I/O C¸c bÝt d÷ liÖu


9 DB2 I/O C¸c bÝt d÷ liÖu
10 DB3 I/O C¸c bÝt d÷ liÖu
11 DB4 I/O C¸c bÝt d÷ liÖu
12 DB5 I/O C¸c bÝt d÷ liÖu
13 DB6 I/O C¸c bÝt d÷ liÖu
14 DB7 I/O C¸c bÝt d÷ liÖu
15 A - Anode
16 K - Kathode
LCD ®−îc nãi trong môc nµy cã 14 ch©n, chøc n¨ng cña c¸c ch©n ®−îc cho trong
b¶ng 12.1. VÞ trÝ cña c¸c ch©n ®−îc m« t¶ trªn h×nh 12.1 cho nhiÒu LCD kh¸c nhau.
1. Ch©n VCC, VSS vµ VEE: C¸c ch©n VCC, VSS vµ VEE: CÊp d−¬ng nguån - 5v vµ ®Êt
t−¬ng øng th× VEE ®−îc dïng ®Ó ®iÒu khiÓn ®é t−¬ng ph¶n cña LCD.
2. Ch©n chän thanh ghi RS (Register Select).
Cã hai thanh ghi rÊt quan träng bªn trong LCD, ch©n RS ®−îc dïng ®Ó chän c¸c
thanh ghi nµy nh− sau: NÕu RS = 0 th× thanh ghi mµ lÖnh ®−îc chän ®Ó cho phÐp ng−êi
dïng göi mét lÖnh ch¼ng h¹n nh− xo¸ mµn h×nh, ®−a con trá vÒ ®Çu dßng v.v… NÕu RS
= 1 th× thanh ghi d÷ liÖu ®−îc chän cho phÐp ng−êi dïng göi d÷ liÖu cÇn hiÓn thÞ trªn
LCD.
3. Ch©n ®äc/ ghi (R/W).
§Çu vµo ®äc/ ghi cho phÐp ng−êi dïng ghi th«ng tin lªn LCD khi R/W = 0 hoÆc
®äc th«ng tin tõ nã khi R/W = 1.
4. Ch©n cho phÐp E (Enable).
Ch©n cho phÐp E ®−îc sö dông bëi LCD ®Ó chèt th«ng tin hiÖn h÷u trªn ch©n d÷
liÖu cña nã. Khi d÷ liÖu ®−îc cÊp ®Õn ch©n d÷ liÖu th× mét xung møc cao xuèng thÊp
ph¶i ®−îc ¸p ®Õn ch©n nµy ®Ó LCD chèt d÷ liÖu trªn c¸c ch©n d÷ liªu. Xung nµy ph¶i
réng tèi thiÓu lµ 450ns.
5. Ch©n D0 - D7.
§©y lµ 8 ch©n d÷ liÖu 8 bÝt, ®−îc dïng ®Ó göi th«ng tin lªn LCD hoÆc ®äc néi
dung cña c¸c thanh ghi trong LCD.
§Ó hiÓn thÞ c¸c ch÷ c¸i vµ c¸c con sè th× bËt RS = 1.
Còng cã c¸c m· lÖnh mµ cã thÓ ®−îc göi ®Õn LCD ®Ó xo¸ mµn h×nh hoÆc ®−a con
trá vÒ ®Çu dßng hoÆc nhÊp nh¸y con trá. B¶ng 12.2 liÖt kª c¸c m· lªnh.
Chóng ta còng sö dông RS = 0 ®Ó kiÓm tra bÝt cê bËn ®Ó xem LCD cã s½n sµng
nh©n th«ng tin. Cê bËn lµ D7 vµ cã thÓ ®−îc ®äc khi R/W = 1 vµ RS = 0 nh− sau:

6
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

NÕu R/W = 1, RS = 0 khi D7 = 1 (cê bËn 1) th× LCD bËn bëi c¸c c«ng viÖc bªn
trong vµ sÏ kh«ng nhËn bÊt kú th«ng tin míi nµo. Khi D7 = 0 th× LCD s½n sµng nhËn
th«ng tin míi. L−u ý chóng ta nªn kiÓm tra cê bËn tr−íc khi ghi bÊt kú d÷ liÖu nµo lªn
LCD.
12.1.3 Göi c¸c lÖnh vµ d÷ liÖu ®Õn LCD víi mét ®é trÔ.
§Ó göi mét lÖnh bÊt kú tõ b¶ng 12.2 ®Õn LCD ta ph¶i ®−a ch©n RS vÒ 0. §èi víi
d÷ liÖu th× bËt RS = 1 sau ®ã göi mét s−ên xung cao xuèng thÊp ®Õn ch©n E ®Ó cho phÐp
chèt d÷ liÖu trong LCD. §iÒu nµy ®−îc chØ ra trong ®o¹n m· ch−¬ng tr×nh d−íi ®©y (xem
h×nh 12.2).
LCD
8051 +5v
D0
VCC
10K
VEE POT
P1.0 D7
V
RS R/W E SS
P1.0
P2.1
P2.2

H×nh 12.2: Nèi ghÐp LCD.


12.1.4 Göi m· lÖnh hoÆc d÷ liÖu ®Õn LCD cã kiÓm tra cê
B¶ng 2.2: C¸c m· lÖnh LCD.
M· (Hex) LÖnh ®Õn thanh ghi cña LCD
1 Xo¸ mµn h×nh hiÓn thÞ
2 Trë vÒ ®Çu dßng
4 Gi¶m con trá (dÞch con trá sang tr¸i)
6 T¨ng con trá (dÞch con trá sang ph¶i)
5 DÞch hiÓn thÞ sang ph¶i
7 DÞch hiÓn thÞ sang tr¸i
8 T¾t con trá, t¾t hiÓn thÞ
A T¾t hiÓn thÞ, bËt con trá
C BËt hiÓn thÞ, t¾t con trá

7
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

E BËt hiÓn thÞ, nhÊp nh¸y con trá


F T¾t con trá, nhÊp nh¸y con trá
10 DÞch vÞ trÝ con trá sang tr¸i
14 DÞch vÞ trÝ con trá sang ph¶i
18 DÞch toµn bé hiÓn thÞ sang tr¸i
1C DÞch toµn bé hiÓn thÞ sang ph¶i
80 §a con trá vÒ ®Çu dßng thø nhÊt
C0 §a con trá vÒ ®Çu dßng thø hai
38 Hai dßng vµ ma trËn 5 × 7
§o¹n ch−¬ng tr×nh trªn ®©y ®· chØ ra c¸ch göi c¸c lÖnh ®Õn LCD mµ kh«ng cã kiÓm tra
cê bËn (Busy Flag). L−u ý r»ng chóng ta ph¶i ®Æt mét ®é trÔ lín trong qu¸ ¶t×nh xuÊt d÷
liÖu hoÆc lÖnh ra LCD. Tuy nhiªn, mét c¸ch tèt h¬n nhiÒu lµ hiÓn thÞ cê bËn tr−íc khi
xuÊt mét lÖnh hoÆc d÷ liÖu tíi LCD. D−íi ®©y lµ mét ch−¬ng tr×nh nh− vËy.
; KiÓm tra cê bËn tr−íc khi göi d÷ liÖu, lÖnh ra LCD
L−u ý r»ng trong ch−¬ng tr×nh cê bËn D7 cña thanh ghi lÖnh. §Ó ®äc thanh ghi
lÖnh ta ph¶i ®Æt RS = 0, R/W = 1 vµ xung cao - xuèng - thÊp cho bÝt E ®Ó cÊp thanh ghi
lÖnh cho chóng ta. Sau khi ®äc thanh ghi lÖnh, nÕu bÝt D7 (cê bËn) ë møc cao th× LCD
bËn vµ kh«ng cã th«ng tin (lÖnh) nµo ®−îc xuÊt ®Õn nã chØ khi nµo D7 = 0 míi cã thÓ
göi d÷ liÖu hoÆc lÖnh ®Õn LCD. L−u ý trong ph−¬ng ph¸t nµy kh«ng sö dông ®é trÔ thêi
gian nµo v× ta ®ang kiÓm tra cê bËn tr−íc khi xuÊt lÖnh hoÆc d÷ liÖu lªn LCD.
13.2 Phèi ghÐp 8051 víi bµn phÝm.
13.2.1 Phèi ghÐp bµn phÝm víi 8051.
ë møc thÊp nhÊt c¸c bµn phÝm ®−îc tæ chøc d−íi d¹ng mét ma trËn c¸c hµng vµ
c¸c cét. CPU truy cËp c¶ hµng lÉn cét th«ng qua c¸c cæng. Do vËy, víi hai cæng 8 bÝt th×
cã thÓ nèi tíi mét bµn phÝm 8 × 8 tíi bé vi xö lý. Khi mét phÝm ®−îc Ên th× mét hµng vµ
mét cét ®−îc tiÕp xóc, ngoµi ra kh«ng cã sù tiÕp xóc nµo gi÷a c¸c hµng vµ c¸c cét. Trong
c¸c bµn phÝm m¸y tÝnh IBM PC cã mét bé vi ®iÒu khiÓn (bao gåm mét bé vi xö lý, bé
nhí RAM vµ EPROM vµ mét sè cæng tÊt c¶ ®−îc bè trÝ trªn mét chÝp) chÞu tr¸ch nhiÖm
phèi ghÐp phÇn cøng vµ phÇn mÒm cña bµn phÝm. Trong nh÷ng hÖ thèng nh− vËy, nã lµ
chøc n¨ng cña c¸c ch−¬ng tr×nh ®−îc l−u trong EPROM cña bé vi ®iÒu khiÓn ®Ó quÐt
liªn tôc c¸c phÝm, x¸c ®Þnh xem phÝm nµo ®· ®−îc kÝch ho¹t vµ göi nã ®Õn bo m¹ch
chÝnh. Trong phÇn nµy nghiªn cøu vÒ c¬ cÊu 8051 quÐt vµ x¸c ®Þnh phÝm.
13.2.2 QuÐt vµ x¸c ®Þnh phÝm.

8
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

2
1

1
2

2
2 0
3 1

DO 1 2
1

1
2

2
7 6 5 4

D1 1 2
1

1
2

2
B A 9 8

D2 1 2
1

1
2

2
F E
D C

D3 1 2
1

1
VCC_CIRCLE
D3 D2 D1 DO
CONG VAO
CONG RA
H×nh 1.1: Nèi ghÐp bµn phÝm ma trËn tíi c¸c cæng.
C¸c hµng ®−îc nèi tíi mét ®Çu ra vµ c¸c cét ®−îc nèi tíi mét cæng vµo. NÕu kh«ng
cã phÝm nµo ®−îc Ên th× viÖc ®ãng cæng vµo sÏ hoµn toµn lµ 1 cho tÊt c¶ c¸c cét v× tÊt c¶
®−îc nèi tíi d−¬ng nguån VCC. NÕu tÊt c¶ c¸c hµng ®−îc nèi ®Êt vµ mét phÝm ®−îc Ên th×
mét trong c¸c cét sÏ cã gi¸ trÞ 0 v× phÝm ®−îc Ên t¹o ®−êng xuèng ®Êt. Chøc n¨ng cña bé
vi ®iÒu khiÓn lµ quÐt liªn tôc ®Ó ph¸t hiÖn vµ x¸c ®Þnh phÝm ®−îc Ên.
13.2.3 Nèi ®Êt c¸c hµng vµ ®äc c¸c cét.
§Ó ph¸t hiÖn mét phÝm ®−îc Ên th× bé vi ®iÒu khiÓn nèi ®Êt tÊt c¶ c¸c hµng b»ng
c¸ch cÊp 0 t¬Ý chèt ®Çu ra, sau ®ã nã ®äc c¸c hµng. NÕu d÷ ®−îc ®äc tõ c¸c cét lµ D3 -
D0 = 1101 th× kh«ng cã phÝm nµo ®−îc Ên vµ qu¸ tr×nh tiÕp tôc cho ®Õn khi ph¸t hiÖn
mét phÝm ®−îc Ên. Tuy nhiªn, nÕu mét trong c¸c bÝt cét cã sè 0 th× ®iÒu ®ã cã nghÜa lµ
viÖc Ên phÝm ®· x¶y ra. VÝ dô, nÕu D3 - D0 = 1101 cã nghÜa lµ mét phÝm ë cét 1 ®−îc
Ên. Sau khi mét Ên phÝm ®−îc ph¸t hiÖn, bé vi ®iÒu khiÓn sÏ ch¹y qu¸ tr×nh x¸c ®Þnh
phÝm. B¾t ®Çu víi hµng trªn cïng, bé vi ®iÒu khiÓn nèi ®Êt nã b»ng c¸ch chØ cÊp møc
thÊp tíi ch©n D0, sau ®ã nã ®äc c¸c cét. NÕu d÷ liÖu ®äc ®−îc lµ toµn sè 1 th× kh«ng cã
phÝm nµo cña hµng nµy ®−îc Ên vµ qu¸ tr×nh nµy chuyÓn sang hµng kÕ tiÕp. Nã nèi ®Êt
hµng kÕ tiÕp, ®äc c¸c cét vµ kiÓm tra xem cã sè 0 nµo kh«ng? Qóa tr×nh nµy tiÕp tôc cho
®Õn khi x¸c ®Þnh ®−îc hµng nµo cã phÝm Ên. Sau khi x¸c ®Þnh ®−îc hµng cã phÝm ®−îc
Ên th× c«ng viÖc tiÕp theo lµ t×m ra phÝm Ên thuéc cét nµo. §iÒu nµy thËt lµ dÔ dµng v× bé
vi ®iÒu khiÓn biÕt t¹i thêi ®iÓm bÊt kú hµng nµo vµ cét nµo ®−îc truy cËp.
H×nh 1.2: L−u ®å t×m phÝm Ên

9
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

B¾t ®Çu

Nèi ®Êt mäi hµng Nèi ®Êt hµng kÕ


tiÕp

Nèi ®Êt mäi hµng


§äc mäi cét


Kh«ng
Kh«ng Mäi phÝm
phÝm hë ë
hë hµng
nµy
Cã Cã

T×m phÝm nµo ®îc


§äc mäi cét Ên

T×m phÝm nµo ®îc


Kh«ng Cã Ên
phÝm
Ên
Trë vÒ

Chê nh¶ phÝm

§äc mäi cét

2.Giíi thiÖu vÒ LCD


Kh«ng Cã Cã
2.1 M« t¶ c¸cphÝm
ch©n cña LCD.
Ên

10
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

PhÇn II: S¬ ®å khèi cña hÖ thèng

Khèi xö lý trung t©m Khèi gi¶i m· Khèi l−u tr÷

Khèi nhËp d÷ liÖu


Khèi hiÓn thÞ Khèi khuÕch ®¹i

Chøc n¨ng cña c¸c khèi:


• Khèi nhËp d÷ liÖu: Khèi nµy dïng ®Ó nhËp c¸c th«ng tin cÇn hiÓn thÞ trªn LCD
nh− h×nh ¶nh hoÆc c¸c ký tù. ViÖc nhËp d÷ liÖu ®−îc thùc hiÖn b»ng bµn phÝm
giao tiÕp trùc tiÕp víi m¹ch hoÆc ®−îc thùc hiÖn trong qu¸ tr×nh lËp tr×nh (n¹p
vµo bé nhí cña vi ®iÒu khiÓn).
• Khèi l−u tr÷: chÝnh lµ bé nhí ROM hoÆc RAM, dïng ®Ó l−u tr÷ d÷ liÖu hiÓn thÞ
trªn LCD.
• Khèi xö lý trung t©m: dïng ®Ó xö lý d÷ liÖu, ®−a ra khèi gi¶i m·.
• Khèi gi¶i m·: dïng ®Ó gi¶i m· ®Þa chØ d÷ liÖu d−îc ®−a tõ bé vi xö lý ra.
• Khèi khuÕch ®¹i: tÝn hiÖu ®−a ra tõ bé vi xö lý th−êng rÊt nhá nªn tÝn hiÖu
®−îc khuyÕch ®¹i
• Khèi hiÓn thÞ: LCD hiÓn thÞ d÷ liÖu mµ ta ®· nhËp vµo.

PHÇN III: ph−¬ng ¸n


Do kiÕn thøc cßn h¹n chÕ nªn trong kho¶ng thêi gian 2 häc kú, chóng em quyÕt
®Þnh lµm ph−¬ng ¸n

11
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

Khèi nhËp d÷ liÖu


( Bµn phÝm) Khèi l−u tr÷ Khèi gi¶i m· Khèi xö lý trung t©m
(ROM + RAM)

Khèi hiÓn thÞ Khèi khuÕch ®¹i

Nguyªn lý lµm viÖc cña m¹ch:


Khi khëi ®éng m¹ch, khèi xö lý trung t©m sÏ lÊy d÷ liÖu l−u tr÷ tõ bé nhí ROM.
§Ó khèi xö lý quy chiÕu chÝnh x¸c ®Õn ®Þa chØ cña d÷ liÖu l−u tr÷ trong ROM, ta dïng
bé gi¶i m· ®Þa chØ.
Sau khi bé xö lý quy chiÕu ®−îc ®Õn d÷ liÖu trong ROM, d÷ liÖu ®−îc ®−a tõ ROM
vÒ bé xö lý. Trong bé vi xö lý, d÷ liÖu sÏ ®−îc xö lý (trÔ, lÆp, xuÊt ra c¸c port,…)
D÷ liÖu khi nhËp tõ bµn phÝm ®−îc vi ®iÒu khiÓn quÐt vµ x·c ®Þnh phÝm Ên xÏ göi m·
ASCII cu¶ phÝm Ên ®Õn bé vi xö lý
Sau khi d÷ liÖu ®−îc xö lý ë bªn trong bé vi xö lý, nã sÏ ®−îc xuÊt ra c¸c port cña vi
xö lý. C¸c port nµy l¹i ®−îc nèi tíi c¸c ch©n t−¬ng øng cña mµn h×nh LCD
Lùa chän linh kiÖn ®Ó l¾p m¹ch:
ƒ 1 IC AT89C51.
ƒ 1 bµn phÝm 4x4
ƒ 1 lCD 16x2
ƒ 1 bé dao ®éng th¹ch anh tÇn sè 12 MHz.
ƒ C¸c ®iÖn trë vµ c¸c tô ®iÖn
PHÇN IV : THIẾT KẾ CHƯƠNG TR×NH CHO VI ĐIỀU KHIỂN
I. THUẬT TOÁN
Theo nguyªn lý và thiết kế phần cứng của mạch quảng c¸o, chóng ta xÏ x©y dùng
thuËt to¸n cho ch−¬ng tr×nh điều khiển để nạp vào vi điều khiển AT89C51.
Trong sơ đồ nguyªn lý, dữ liệu từ Port 2 sẽ được xuất c¸c ch©n d÷ liÖu t−¬ng øng
cña LCD
Ba ch©n p3.0,p3.1,p3.4 xÏ ®−îc nèi víi ch©n rs,en,rw cña LCD
Port 1 cã 8 ch©n được sử dụng ®Ó lèi víi c¸c ch©n cña bµn phÝm .Như vậy mục đÝch
chương tr×nh sẽ là
- Điều khiÓn viÖc nhËp d÷ liÖu tõ bµn phÝm vµo vi ®iÒu khiÓn

12
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

+tr−íc tiªn x¸c ®Þnh phÝm nµo ®−îc bÊm b»ng viÖc cho c¸c hµnh nèi ®Êt vµ c¸c
cét ®−îc nèi ë møc cao
+sau ®ã x¸c ®Þnh m· ASCII cña phÝm ®ù¬c Ên vµ göi ®Õn vi xö lý
- Điều khiÓn ®Ó dßng chữ nhËp tõ bµn phÝm khi nhÊn phÝm # th× kÕt thóc nhËp vµ
cho dßng ch÷ nhËp tõ bµn phÝm nhÊp nh¸y trªn mµn h×nh LCD sau ®ã cho ch÷ ch¹y tõ
tr¸i qua ph¶i
Đầu tiªn cÇn ph¶i khai b¸o d÷ liÖu(nạp dữ liệu vào c¸c « nhớ của Rom 8951) ®−îc
nhËp theo tong byte.C¸c byte nµy xÏ ®−îc cÊt vµo c¸c « nhí liªn tiÕp cña bé nhí rom cña
vi ®iÒu khiÓn 89c51 khi chóng ta muốn truy xuất dữ liệu th× chỉ việc truy xuất vào c¸c «
nhớ ®· ®Ýnh ®Þa chØ
Dữ liệu được truy xuất, đưa ra Port 2 để hiển thị chữ bằng c¸ch sau:
Theo nguyªn tắc: địa chỉ = bộ đếm + con trỏ
Con trỏ mà chóng ta sử dụng ở đ©y là con trỏ dữ liệu DPTR. Đầu tiªn con trỏ sẽ được đặt
ở địa chỉ đầu bảng dữ liệu, bộ đếm là đếm địa chỉ offset , chóng ta sẽ dùng thanh ghi A
chứa địa chỉ này. Và lệnh sau sẽ truy xuất vào dữ liệu:
MOVC A, @A+DPTR
Khi đã chỉ việc xuất dữ liệu từ thanh chứa A ra Port 2 là được.
ViÖc nhËp d÷ liÖu tõ bµn phÝm tr−íc hÕt cho c¸c hµng nèi ®Êt lÊy c¸c cét lµm ®Çu vµo
xem cã phÝm bÊm ch−a .Sau ®ã ®Ó x¸c ®Þnh phÝm bÊm ta cho tÊt c¶ c¸c hµng nèi ë møc
cao lÊy c¸c cét lµm ®Çu vµo,sau ®ã cho hµng 1 nèi ®Êt vµ quÐt tÊt c¶ c¸c cét xem nhÊn ë
®©u ,sau ®ã lµm l¹i víi c¸c hµng cßn l¹i .Råi lÊy m· ASCII cña phÝm bÊm göi vÒ vi ®iÒu
khiÓn vµ xuÊt ra LCD,l−u ý 1 phÝm cã thÓ hiÓn thÞ 4 ký tù

13
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

Khëi t¹o LCD

X¸c ®Þnh phÝm nhÊn thuéc


Th«ng b¸o nhËp d÷ liÖu hµng nµo

X¸c ®Þnh phÝm nhÊn thuéc


Thùc hiÖn giao tiÕp víi cét nµo
bµn phÝm

X¸c ®Þnh vÞ trÝ phÝm nhÊn


B¾t ®Çu

Nèi ®Êt tÊt c¶ c¸c hµng X¸c ®Þnh phÝm ®îc nhÊn
lÇn mÊy

X¸c ®Þnh tõ m·
§äc tÊt c¶ c¸c cét

Göi lªn LCD


TÊt c¶ c¸c
phÝm th¶

Cã nhÊn phÝm nÕu kÕt thóc


kh«ng

§äc tÊt c¶
c¸c cét Ch¹y qu¶ng c¸o

Cã phÝm nhÊn

Chê phÝm nhÊn xong

§äc tÊt c¶ c¸c cét

Cã phÝm nhÊn

S¬ ®å thuËt to¸n cña ch−¬ng tr×nh

14
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

ii.s¬ ®å nguyªn lý
J3

CON2
1
2

U4 J1
1
LM7805 2
3 1
VO VI 3
GND

U2 4

40
+ C7 C1 C3 + C5 5
39 21 6

VCC
38 P0.0/AD0 P2.0/A8 22 7
2

37 P0.1/AD1 P2.1/A9 23 8
36 P0.2/AD2 P2.2/A10 24 9
35 P0.3/AD3 P2.3/A11 25 10
34 P0.4/AD4 P2.4/A12 26 11
33 P0.5/AD5 P2.5/A13 27 12
32 P0.6/AD6 P2.6/A14 28 13
J2 P0.7/AD7 P2.7/A15 14
1 10 CON14
8 2 P1.0/T2 P3.0/RXD 11
7 3 P1.1/T2-EX P3.1/TXD 12
6 4 P1.2 P3.2/INTO 13
5 5 P1.3 P3.3/INT1 14
4 6 P1.4 P3.4/TO 15
3 7 P1.5 P3.5/T1 16
2 8 P1.6 P3.6/WR 17
1 P1.7 P3.7/RD
19 29
R1 18 XTAL1 PSEN
R Y2 9 XTAL2 30
C4 RST ALE/PROG
GND
31
EA/VPP
20

AT89C52

SW1 + C6

A
7 8 9
10
11
12
13
14

B
4 5 6
1
2
3

4
5
6

7
8
9
E
VDD

D0
D1
D2
D3
D4
D5
D6
D7
VSS

VEE

RS
RW

C
1 2 3
ON
D
C
0 = +
LCD1
1

LM016L

II. CHƯƠNG Tr×nh


Chương tr×nh được lập tr×nh b»ng ng«n ng÷ lËp tr×nh là ASSEMBLY.
********************************************************
RS BIT P3.0 ;Bit P3.0 dung chon thanh ghi lenh/du lieu
EN BIT P3.1 ;Bit P3.1 dung lam chan 'Cho phep'

15
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

RW BIT P3.4 ;Bit P3.4 dieu khien viec doc/ghi du lieu

C1 BIT P1.2 ;Cac bit P1.2, P1.1, P1.0 lan luot noi voi
C2 BIT P1.1 ;cac cot tu 1 - 3 cua ban phim
C3 BIT P1.0
H1 BIT P1.3 ;Cac bit P1.3 - P1.6 lan luot noi voi
H2 BIT P1.4 ; cac hang tu 1 - 4 cua ban phim
H3 BIT P1.5
H4 BIT P1.6

ORG 0
Mainpro:
LCALL Hien_Promt
LCALL Nhap_Dulieu
LJMP QuangCao

Hien_Promt:
;1-Hien thi dau nhac nap du lieu
;Khoi tao LCD
MOV A,#38H ;Che do 2 dong ma tran 5x7
LCALL COMMAND ;Thuc hien lenh
MOV A,#0EH ;Bat hien thi nhap nhay con tro
LCALL COMMAND
MOV A,#01H ;Xoa man hinh hien thi
LCALL COMMAND

;gioi thieu cac thanh vien lam de tai


MOV DPTR,#900H ;Nap con tro du lieu
MOV R3,#7 ;R3 de chua so chuoi duoc hien thi
AGAIN: LCALL GTTIEP ; GTIEP = gioi thieu tiep
INC DPTR
DJNZ R3,AGAIN
LJMP Xoamanhinh
GTTIEP:
BACK1:
CLR A
MOVC A,@A+DPTR
MOV R7,A ;Du cat vao R7 de phuc vu cho HIENTHI1
JZ TIEPTUC ;Chuyen sang nhap chuoi tiep theo
LCALL HIENTHI1
LCALL DELAY
LCALL DELAY
INC DPTR
SJMP BACK1
TIEPTUC:
LCALL DELAY

16
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

MOV A,#01 ;Xoa man hinh de hien thi chuoi moi


LCALL COMMAND
LCALL DELAY

RET ; RET OF GTTIEP

;Chuong trinh con xuat lenh


COMMAND: LCALL READY ;Kiem tra co ban neu san sang
MOV P2,A ;thi chuyen ma lenh ra cong P2
CLR RS ;RS =0 Cho xuat lenh
CLR RW ;RW = O De gi lenh toi LCD
SETB EN ;Chan E nhan duoc mot xung cao
CLR EN ;xuong thap cho phep LCD chot lenh
RET ; ret of COMMAND

xoamanhinh:
;giu prompt mot luc, roi xoa man hinh de nhap du lieu
LCALL DELAY
MOV A,#01
LCALL COMMAND
LJMP Nhap_dulieu

;Chuong trinh con hien thi


HIENTHI1:
MOV A,#06H ;Chon huong hien thi sang ben phai
LCALL COMMAND
LCALL READY
MOV P2,R7
SETB RS ;RS = 1 De cho phep xuat du lieu
CLR RW ;RW = 0 De ghi du lieu ra LCD
SETB EN ;Chan Enable nha mot xung cao
CLR EN ;xuong thap de chot du lieu
RET ;RET of HIENTHI1

;Chuong trinh con tao tre


DELAY:
MOV R6,#255
VONG2:MOV R7,#255
HERE: DJNZ R7,HERE
DJNZ R6,VONG2
RET
; Kiem tra co ban
READY: SETB P2.7 ;lay P2.7- chan co ban lam dau vao
CLR RS ; RS =0 de truy cap thanh ghi lenh
SETB RW ; RW = 1 Doc thanh ghi lenh
;Doc thanh ghi lenh va kiem tra co lenh
BACK: CLR EN

17
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

SETB EN
JB P2.7,BACK ;cho cho den khi LCD het ban
RET ;Of ready

;CHUONG TRINH CON GIAO TIEP VOI BAN PHIM


;P1.1 P1.2 P1.3 duoc noi voi cac cot 3 2 1
;P1.4 P1.5 P1.6 P1.7 duoc noi voi cac hang 1 2 3 4
Nhap_Dulieu:
;Doan nay phuc vu cho viec luu Du lieu vao vung RAM da nang
MOV R1,#30H ;R1 dung lam con tro ram,phuc vu cho
; viec luu giu du lieu vao RAM
MOV R2,#4FH ; do lon khong gian RAM dan nang
Xoaram: MOV @R1,#20H ;20h ma ASCII cua ky tu trang ' '
INC R1
DJNZ R2,Xoaram

MOV R1,#30H
MOV R5,#0 ;dem so ky tu hien tai dang hien thi tren LCD
;doan nay chi nhan biet xem la co phim nhan chua
; nen ta tiep dat tat ca cac hang
batdau:
MOV P1,#00000111b ;De co the nhan biet duoc phim da nhan
; chua ta dat cac bit tuong ung voi
;cac cot lam dau vao va cac bit tuong
;ung voi hang duoc noi dat
MOV R0,#0 ;vi moi phim co the hien thi 4 ky tu
;ta dung R0 de xac dinh so ky tu tren
; mot phim da duoc nhan la bao nhieu
KT1:
MOV A,P1
CJNE A,#00000111b,KT1 ;Kiem tra nha phim chua,neu chua
;kiem tra lai cho den khi nha phim

KT2: LCALL DELAY


MOV A,P1 ; De doc cac cot
CJNE A,#00000111b,CHO1 ; Neu phim nhan cho xong
SJMP KT2 ; Neu khong thi kiem tra lai xem no co
duoc nhan ko

CHO1:
MOV R0,#0
LCALL DELAY ; Cho cho nhan xong
CJNE A,#00000111b,CHO2 ;Neu co phim nhan thi nhay den
;CHO2 cho hien thi phim do va
;tiep tuc kiem tra xem phim do

18
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

; co duoc nhan tiep ngay khong


SJMP KT2

CHO2:
INC R0 ;Da co mot phim duoc nhan 1 lan
LCALL HIEN ; hien thi ky tu do
LCALL DELAY
LCALL DELAY
MOV P1,#00000111B ;kiem tra co phim nhan tiep khong
LCALL DELAY
MOV A,P1
CJNE A,#00000111b,CHO3
MOV A,R4 ;luu ky tu duoc hien thi cuoi
;cung cua phim nhan vao RAM
MOV @R1,A
INC R1
INC R5
;Doan nay dung de dich man hinh hien thi sang phai khi so
;ky tu da hien thi lon hon 16
CLR C
MOV A,R5
SUBB A,#16
JC TIEP1
MOV A,#18H
LCALL COMMAND
;het doan dich hien thi sang phai
TIEP1:MOV R0,#0
SJMP KT2

CHO3:MOV A,#10H
LCALL COMMAND
INC R0
LCALL HIEN
LCALL DELAY
LCALL DELAY
MOV P1,#00000111B
LCALL DELAY
MOV A,P1
CJNE A,#00000111b,CHO4
MOV A,R4
MOV @R1,A
INC R1
INC R5
CLR C
MOV A,R5
SUBB A,#16
JC TIEP2

19
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

MOV A,#18H
LCALL COMMAND
TIEP2:
MOV R0,#0
SJMP KT2
CHO4:MOV A,#10H
LCALL COMMAND
INC R0
LCALL HIEN
LCALL DELAY
LCALL DELAY
MOV P1,#00000111B
LCALL DELAY
MOV A,P1
CJNE A,#00000111b,CHO5
MOV A,R4
MOV @R1,A
INC R1
INC R5
CLR C
MOV A,R5
SUBB A,#16
JC TIEP3
MOV A,#18H
LCALL COMMAND

TIEP3: MOV R0,#0


LJMP KT2
CHO5:MOV A,#10H
LCALL COMMAND
INC R0
LCALL HIEN
LCALL DELAY
LCALL DELAY
MOV P1,#00000111B
LCALL DELAY
MOV A,P1
CJNE A,#00000111b,VONGVE
MOV A,R4
MOV @R1,A
INC R1
INC R5
CLR C
MOV A,R5
SUBB A,#16
JC TIEP4
MOV A,#18H

20
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

LCALL COMMAND
TIEP4: MOV R0,#0
VONGVE: LJMP KT2

HIEN:
Timhang:
MOV P1,#11111111B ;DAU TIEN KO TIEP DAT HANG NAO
;VA DAT CAC COT LAM DAU VAO
CLR H1 ;Tiep dat hang 1
MOV A,P1 ;Doc tat ca cac cot
CJNE A,#11110111b,HG1
;Hang 1 tim cot (ro rang la cac hang tuong ung voi 5 bit
;dau la co dinh=11110 do chi tiep dat hang1, tai day
;ta chi can quan tam den phim co phai o hang 1 khong thoi
; boi vay chi can co 1 trong 3 cot duoc nhan se lam cho
;1 cot tiep dat dan den 1 trong 3 bit dau =0 nhu vay
; khi do gia tri A se khac #11110111 chung to phim nhan
; o hang 1 va ta tiep tuc xac dinh phim do o cot nao
MOV P1,#11111111B
CLR H2 ;Tiep dat hang 2
MOV A,P1 ;Doc tat ca cac cot
CJNE A,#11101111b,HG2 ;Hang 1 tim cot

MOV P1,#11111111B
CLR H3 ;Tiep dat hang 3
MOV A,P1 ;Doc tat ca cac cot
CJNE A,#11011111b,HG3 ;Hang 3 tim cot

MOV P1,#11111111B
CLR H4 ;Tiep dat hang 4
MOV A,P1 ;Doc tat ca cac cot
CJNE A,#10111111b,HG4 ;Hang 4 tim cot
LJMP KT2

HG1: CJNE R0,#1,DT12


MOV DPTR,#DATA11
LJMP TIM ;Tim xem phim nhan o cot nao

DT12: CJNE R0,#2,DT13


MOV DPTR,#DATA12
LJMP TIM

DT13: CJNE R0,#3,DT14


MOV DPTR,#DATA13
LJMP TIM
;Neu khong phai la cac truong hop tren thi R0 = 4
; ta tim luon den data14

21
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

DT14: MOV DPTR,#DATA14


LJMP TIM

HG2: CJNE R0,#1,DT22


MOV DPTR,#DATA21
LJMP TIM

DT22: CJNE R0,#2,DT23


MOV DPTR,#DATA22
SJMP TIM

DT23: CJNE R0,#3,DT24


MOV DPTR,#DATA23
SJMP TIM
DT24: MOV DPTR,#DATA24
SJMP TIM

HG3: CJNE R0,#1,DT32


MOV DPTR,#DATA31
SJMP TIM

DT32: CJNE R0,#2,DT33


MOV DPTR,#DATA32
SJMP TIM

DT33: CJNE R0,#3,DT34


MOV DPTR,#DATA33
SJMP TIM
DT34: MOV DPTR,#DATA34
SJMP TIM

HG4: CJNE R0,#1,DT42


MOV DPTR,#DATA41
SJMP TIM

DT42: CJNE R0,#2,DT43


MOV DPTR,#DATA42
SJMP TIM

DT43: CJNE R0,#3,DT44


MOV DPTR,#DATA43
SJMP TIM

DT44: MOV DPTR,#DATA44


SJMP TIM
TIM:
RRC A ;Kiem tra cot nao o muc thap nho co CY

22
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

JNC LAYMA ;Neu bang 0 thi lay ma ASCII


INC DPTR ;Trai lai tim cot ke
SJMP TIM

LAYMA:CLR A
MOVC A,@A + DPTR
JZ Ketthucnhap
MOV R4,A

CJNE A,#23h,SS2 ; a= '#' ,ta quy uoc la phim xoa


SJMP backspace
SS2 : CJNE A,#24h,SS3 ;quy uoc '$' la ma xuong dong
LCALL Xuongdong
SS3 :
LCALL HienThiPhimNhan ;hien thi phim da nhan
VE: RET ;OF HIEN

BACKSPACE:
;doan nay de xoa ca ky tu do da duoc luu trong RAM
DEC R1
DEC R5
DEC R1
DEC R5
MOV A,@R1
MOV R4,A
;Doan nay de xoa ky tu tren LCD
MOV A,#10H ;dich con tro sang phai mot cot
LCALL COMMAND
MOV A,#20H ;chen ky tu trang vao vi tri do
LCALL HIENTHIPHIMNHAN
MOV A,#10H ;lui ve 1 cot
LCALL COMMAND
LJMP VE
ketthucnhap: ;do khoang cach tu doan lay ma
LJMP quangcao ;den doan quangcao nam
ngoai
;dai cua lenh JZ nen ta dung
;doan nay de noi tiep
xuongdong: MOV A,#0C0H
LCALL COMMAND
LJMP VE
Hienthiphimnhan:
LCALL READY
MOV P2,A
SETB RS ;RS = 1 De cho phep xuat du lieu
CLR RW ;RW = 0 De ghi du lieu ra LCD
SETB EN ;Chan Enable nha mot xung cao

23
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

CLR EN ;xuong thap de chot du lieu


LCALL DELAY
RET

QUANGCAO:

MOV A,R5
MOV R3,A
;Xoa tung ky tu
CHAY1: Mov a,#10h
Lcall command
MOV A,#20h
LCALL HIENTHIPHIMNHAN
Mov a,#10h
Lcall command
LCALL DELAY
LCALL DELAY
DJNZ R5,CHAY1
;hien thi lai tung ky tu

MOV R1,#30H
HTL:
MOV A,@R1
MOV R7,A
LCALL Hienthi1
LCALL DELAY
LCALL DELAY
LCALL DELAY
TIEP: INC R1
DJNZ R3,HTL
MOV R4,#5
FOREVER:
MOV R4,#5
NHAPNHAY: MOV A,#0AH ;Xoa man hinh hien thi
LCALL COMMAND
LCALL DELAY ;de man hinh tat mot luc
LCALL DELAY
LCALL DELAY
LCALL DELAY
LCALL DELAY
MOV A,#0eH ;Bat man hinh hien thi
LCALL COMMAND
LCALL DELAY ; de mot luc

24
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R4,NHAPNHAY
LCALL DELAY
LCALL DELAY
MOV R4,#40 ; vi LCD co 40 cot, nen cuoi cung
;hien thi se dich ve dung vi tri cu
DichTrai: Mov A,#18H
LCALL COMMAND
LCALL DELAY
LCALL DELAY
LCALL DELAY
DJNZ R4,DichTrai

LCALL DELAY
LCALL DELAY
MOV R4,#40
DichPhai: Mov A,#1CH
LCALL COMMAND
LCALL DELAY
LCALL DELAY
DJNZ R4,DichPhai

LJMP FOREVER

ORG 900H
DANHSACH: DB "Nhom thuc hien: ",0
SV1: DB "NGUYEN HOANG HAI",0
SV2: DB "HOANG NGOC ANH",0
SV3: DB "NGUYEN HUU HAI",0
SV4: DB "DUONG THANH PHAO",0
SV5: DB "NGUYEN HOANG HAI",0
DULIEU: DB "Nhap du lieu...",0

ORG 1000H
DATA11: DB '1','2','3'
DATA12: DB '1','A','D'
DATA13: DB '1','B','E'
DATA14: DB '1','C','F'

DATA21: DB '4','5','6'
DATA22: DB 'G','J','M'

25
Tài liệu này được upload & download miễn phí tại website: http://hutonline.net
Bµi tËp lín m«n Vi Xö Lý

DATA23: DB 'H','K','N'
DATA24: DB 'I','L','O'

DATA31: DB '7','8','9'
DATA32: DB 'P','T','W'
DATA33: DB 'R','U','X'
DATA34: DB 'S','V','Y'

DATA41: DB '#',' ',0


DATA42: DB ' ','0',0
DATA43: DB '$','_',0
DATA44: DB '#','@',0

END

5 :Tµi liÖu tham kh¶o:


ƒ KÜ thuËt Vi xö lý -- T¸c gi¶ V¨n ThÕ Minh--.
ƒ CÊu tróc vµ lËp tr×nh hä vi ®iÒu khiÓn 8051. -- T¸c gi¶ NguyÔn T¨ng
C−êng, Phan Quèc Th¾ng --

26

You might also like