Professional Documents
Culture Documents
K45
PhÇn I:
Tæng quan vÒ c¸c thiÕt bÞ Vi Xö Lý
Ch¬ng 1 :
Giíi thiÖu chung vÒ chÝp AT89C51
I. Giíi thiÖu AT89C51
AT89C51 lµ mét bé vi xö lý 8 bit, lo¹i CMOS, cã tèc ®é cao vµ c«ng
suÊt thÊp víi bé nhí Flash cã thÓ lËp tr×nh ®îc. Nã ®îc s¶n xuÊt víi c«ng
nghÖ bé nhí kh«ng bay h¬i mËt ®é cao cña h·ng Atmel, vµ t¬ng thÝch víi
hä MCS-51TM vÒ ch©n ra vµ tËp lÖnh.
1
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
AT89C51 cã c¸c ®Æc trng c¬ b¶n nh sau: 4 K byte Flash, 128 byte
RAM, 32 ®êng xuÊt nhËp, hai bé ®Þnh thêi/®Õm 16-bit, mét cÊu tróc
ng¾t hai møc u tiªn vµ 5 nguyªn nh©n ng¾t, mét port nèi tiÕp song c«ng,
m¹ch dao ®éng vµ t¹o xung clock trªn chip. AT89C51 ®îc thiÕt kÕ víi logic
tÜnh cho ho¹t ®éng cã tÇn sè gi¶m xuèng 0 vaø hç trî hai chÕ ®é tiÕt kiÖm
n¨ng lîng ®îc lùa chän b»ng phÇn mÒm. ChÕ ®é nghØ dõng CPU trong khi
vÉn cho phÐp RAM, c¸c bé ®Þnh thêi/®Õm, port nèi tiÕp vµ hÖ thèng
ng¾t tiÕp tôc ho¹t ®éng. ChÕ ®é nguån gi¶m duy tr× néi dung cña RAM
nhng kh«ng cho m¹ch dao ®éng cung cÊp xung clock nh»m v« hiÖu ho¸ c¸c
ho¹t ®éng kh¸c cña chip cho ®Õn khi cã reset cøng tiÕp theo.
2
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
- Vcc (40)
Ch©n cung cÊp ®iÖn (5V)
- GND (20)
Ch©n nèi ®Êt (0V)
- Port 0 (32-39)
Port 0 lµ port xuÊt nhËp 8-bit hai chiÒu. Port 0 cßn ®îc cÊu h×nh
lµm bus ®Þa chØ (byte thÊp) vµ bus d÷ liÖu ®a hîp trong khi truy xuÊt bé
nhí d÷ liÖu ngoµi vµ bé nhí ch¬ng tr×nh ngoµi. Port 0 còng nhËn c¸c byte
m· trong khi lËp tr×nh cho Flash vµ xuÊt c¸c byte m· trong khi kiÓm tra ch-
¬ng tr×nh (C¸c ®iÖn trë kÐo lªn bªn ngoµi ®îc cÇn ®Õn trong khi kiÓm tra
ch¬ng tr×nh).
- Port 1(1-8)
Port 1 lµ port xuÊt nhËp 8-bit hai chiÒu. Port 1 còng nhËn byte ®Þa
chØ thÊp trong thêi gian lËp tr×nh cho Flash.
- Port 2 (21-28)
Port 2 lµ port xuÊt nhËp 8-bit hai chiÒu. Port 2 t¹o ra c¸c byte cao
cña bus ®Þa chØ trong thêi gian t×m n¹p lÖnh tõ bé nhí ch¬ng tr×nh ngoµi
vµ trong thêi gian truy xuÊt bé nhí d÷ liÖu ngoµi sö dông c¸c ®Þa chØ 16-
bit. Trong thêi gian truy xuÊt bé nhí d÷ liÖu ngoµi sö dông c¸c ®Þa chØ 8-
bit, Port 2 ph¸t c¸c néi dung cña thanh ghi chøc n¨ng ®Æc biÖt P2. Port 2
còng nhËn c¸c bÝt ®Þa chØ cao vµ vµi tÝn hiÖu ®iÒu khiÓn trong thêi
gian lËp tr×nh cho Flash vµ kiÓm tra ch¬ng tr×nh.
- Port 3 (10-17)
Port 3 lµ Port xuÊt nhËp 8-bit hai chiÒu. Port 3 còng cßn lµm c¸c
chøc n¨ng kh¸c cña AT89C51. C¸c chøc n¨ng nµy ®îc liÖt kª nh sau:
Port 3 còng nhËn mét vµi tÝn hiÖu ®iÒu khiÓn cho viÖc lËp tr×nh
Flash vµ kiÓm tra ch¬ng tr×nh.
3
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
- RST (9)
Ngâ vµo reset. Møc cao trªn ch©n nµy trong 2 chu kú m¸y trong khi
bé dao ®éng ®ang hoat ®éng sÏ reset AT89C51.
RST
M¹ch reset t¸c ®éng b»ng tay vµ tù ®éng reset khi khëi ®éng m¸y
- ALE/ PROG (30)
ALE laø moät xung ngoõ ra ñeå choát byte thaáp cuûa ñòa chæ trong khi
truy xuaát boä nhôù ngoaøi. Chaân naøy cuõng laøm ngoõ vaøo xung laäp trình (
PROG ) trong thôøi gian laäp trình cho Flash.
Khi hoaït ñoäng bình thöôøng, xung ngoõ ra ALE lu«n coù taàn soáä
khoâng ñoåi laø 1/6 taàn soá cuûa maïch dao ñoäng, coù theå ñöôïc duøng cho
caùc muïch ñích ñònh thôøi töø beân ngoaøi vµ taïo xung clock. Tuy nhieân, löu
yù laø moät xung ALE seõ bò boû qua trong moãi moät chu kyø truy xuaát boä
nhôù döõ lieäu ngoaøi.
Khi caàn, hoaït ñoäng ALE coù theå ñöôïc voâ hieäu hoaù baèng caùch set
bit 0 cuûa thanh ghi chöùc naêng ñaëc bieät coù ñòa chæ 8Eh. Khi bit naøy ñöôïc
set, ALE chæ tích cöïc trong thôøi gan thöïc hieän leänh MOVX hoaëc MOVC.
Ngöôïc laïi, chaân naøy seõ ñöôïc keùo leân cao. Vieäc set bit khoâng cho pheùp
hoaït ñoäng choát byte thaáp cuûa ñòa chæ seõ khoâng coù taùc duïng neáu boä vi
ñieàu khieån ñang ôû cheá ñoä thöïc thi chöông trình ngoaøi.
- PSEN (29)
PSEN (Program Store Enable) laø xung ñieàu khieån truy xuaát boä nhôù
chöông trình ngoaøi. Khi AT89C52 ñang thöïc thi chöông trình töø boä nhôù
chöông trình ngoaøi, PSEN ñöôïc kích hoaït hai laàn moãi chu kyø maùy, nhöng
hai hoaït ñoäng PSEN seõ bò boû qua moãi khi truy caäp boä nhôù döõ lieäu
ngoaøi.
- EA /Vpp (31)
EA (External Access Enable) laø chaân cho pheùp truy xuaát boä nhôù
chöông trình ngoaøi (baét ñaàu töø ñòa chæ töø 0000H ñeán FFFFH).
EA = 0 cho pheùp truy xuaát boä nhôù chöông trình ngoaøi, ngîc l¹i EA
=1 seõ thöïc thi chöông trình beân trong chip
4
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Tuy nhieân, löu yù raèng neáu bit khoaù 1 (lock-bit 1) ñöôïc laäp trình,
EA seõ ñöôïc choát beân trong khi reset.
Chaân naøy cuõng nhaän ñieän aùp cho pheùp laäp trình Vpp=12V khi laäp
trình Flash (khi ñoù ®iÖn aùp laäp trình 12V ñöôïc choïn).
- XTAL1 vaø XTAL2
XTAL1 vaø XTAL2 laø hai ngoõ vaøo vaø ra cuûa moät boä khueách ñaïi
ñaûo cuûa maïch dao ñoäng, ñöôïc caáu hình ñeå duøng nhö moät boä dao ñoäng
treân chip.
Khoâng coù yeâu caàu naøo veà chu kyø nhieäm vuï cuûa tín hieäu xung
clock beân ngoaøi do tín hieäu naøy phaûi qua moät flip-flop chia hai tröôùc khi
ñeán maïch taïo xung clock beân trong, tuy nhieân caùc chi tieát kyõ thuaät veà
thôøi gian möùc thaáp vaø möùc cao, ñieän aùp cöïc tieåu vaø cöïc ñaïi caàn phaûi
ñöôïc xem xeùt.
5
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Traïng thaùi cuûa caùc chaân trong thôøi gian toàn taïi cheá ñoä nghæ va
cheá ñoä nguoàn giaûm ñöôïc cho trong baûng sau:
6
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
7
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng 2:
bé nhí ngoµi (RAM, ROM) - c¸ch ghÐp víi VXL
FFFF FFFF
00 0000 0000
Hình veõ treân cho ta thaáy caáu truùc cuûa khoâng gian nhôù cuûa
8
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
AT89C51, trong ñoù khoâng gian nhôù noäi ñöôïc chia thaønh caùc daõy thanh
ghi (00h-1Fh), vuøng RAM ñònh ñòa chæ bit(20h-2Fh), vuøng RAM ña muïc ñích
(30h-7Fh) vaø caùc thanh ghi chöùc naêng ñaëc bieät(80h-FFh).
D0 D7 D6 D5 D4 D3 D2 – D0 PSW
30 B8 – – – BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78
2E 77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
2D 6F 6E 6D 6C 6B 6A 69 68
2C 67 66 65 64 63 62 61 60 A8 AF – – A A A A9 A8 IE
C B A
2B 5F 5E 5D 5C 5B 5A 59 58
2A 57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
29 4F 4E 4D 4C 4B 4A 49 48
28 47 46 45 44 43 42 41 40 99 khoâng ñöôïc ñòa chæ hoùa SBUF
27 3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9Cbit9B 9A 99 98 SCON
26 37 36 35 34 33 32 31 30
25 2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1
24 27 26 25 24 23 22 21 20
23 1F 1E 1D 1C 1B 1A 19 18 8D khoâng ñöôïc ñòa chæ hoùa TH1
22 17 16 15 14 13 12 11 10 8C khoâng ñöôïcbitñòa chæ hoùa TH0
21 0F 0E 0D 0C 0B 0A 09 08 8B khoâng ñöôïcbitñòa chæ hoùa TL1
20 07 06 05 04 03 02 07 00 8A khoâng ñöôïcbitñòa chæ hoùa TL0
1F Bank 3 1 89 khoâng ñöôïcbitñòa chæ hoùa TMOD
18 88 8F 8E 8D 8Cbit8B 8A 89 88 TCON
17 Bank 2 87 khoâng ñöôïc ñòa chæ hoùa PCON
10 bit
0F Bank 1 83 khoâng ñöôïc ñòa chæ hoùa DPH
08 82 khoâng ñöôïcbitñòa chæ hoùa DPL
07 Bank thanh Boä
ghi 0 nhôù döõ lieäu treân
81 chip
khoângAT89C51
ñöôïcbitñòa chæ hoùa SP
00 (maëc ñònh cho R0-R7) 80 87 86 85 84bit83 82 81 80 P0
9
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Caùc boä vi ñieàu khieån raát hieám khi ñöôùc söû duïng gioáng nhö caùc
CPU trong caùc heä maùy tính, thay vaøo ñoù chuùng ñöôïc duøng laøm thaønh
phaàn trung taâm trong caùc thieát keá höôùng ñieàu khieån, trong ñoù boä nhôù
coù dung löôïng giôùi haïn, khaéc phuïc nhöôïc ñieåm naøy caùc boä vi ñieàu
khieån ñeàu ñöôïc thieát keá ñeå coù khaû naêng môû roäng caùc taøi nguyeân
(boä nhôù, I/O, .v.v. .).
Trong phaàn giôùi thieäu veà AT89C51 ta thaáy chæ coù 2 port 0 vaø port
2 laøm chöùc naêng bus ñòa chæ vì vaäy AT89C51 coù theå môû roäng toái ña
64K boä nhôù chöông trình vaø 64K boä nhôù döõ lieäu ngoaøi.
Ñeå tieát kieäm caùc chaân cho pheùp ta ñoùng goùi boä vi ñieàu khieån
trong voû 40 chaân neân port 0 vöøa laø bus döõ lieäu (D0-D7) vöøa laø bus ñòa
chæ (A0-A7), kieåu saép xeáp naøy ñöôïc goïi laø saép xeáp ña hôïp.
Saép xeáp ña hôïp hoaït ñoäng nhö sau: trong nöûa chu kyø ñaàu cuûa chu
kyø boä nhôù, byte thaáp cuûa ñòa chæ ñöôïc cung caáp bôûi port 0 vaø ñöôïc
choát nhôø tín hieäu ALE. Trong nöûa sau cuûa chu kyø boä nhôù, port 0 ñöôïc
söû duïng laøm bus döõ lieäu vaø döõ lieäu ñöôïc ñoïc hay ghi.
Ta söû duïng IC 73HC373 laøm maïch choát döõ lieäu, giöõ cho byte thaáp
cuûa bus ñòa chæ oån ñònh trong caû chu kyø boä nhôù
Cã hai lo¹i chÝnh lµ RAM vµ ROM. Riªng víi RAM l¹i cã 2 lo¹i lµ SRAM
(RAM tÜnh) vµ DRAM (RAM ®éng).
V+
0 1 0
Bé
10
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
T¹i c¸c ®iÓm v¾t chÐo nhau trªn mét ma trËn c¸c d©y dÉn hµng (tõ sè liÖu)
vµ cét (bit sè liÖu) nh h×nh vÏ trªn nÕu cã diode th× sÏ mang th«ng tin lµ 0, c¸c
®iÓm kh«ng chøa diode sÏ mang th«ng tin lµ 1. Khi ®Çu ra bé gi¶i m· ®Þa chØ ë
møc thÊp chän mét hµng th× ë ®Çu ra c¸c d©y bit ph¶n ¸nh c¸c gi¸ trÞ ®îc lu tr÷
trong chip nhí. Trong h×nh vÏ trªn lu tr÷ 3 tõ nhí lµ 010, 101 vµ 001.
C¸c chip PROM (Programmable) cho phÐp ngêi lËp tr×nh cã thÓ ghi th«ng tin
®îc 1 lÇn. §ã lµ lo¹i ROM mµ khi s¶n xuÊt, tÊt c¶ c¸c ®iÓm v¾t chÐo ®Òu ®Æt
mét mét cÇu ch× nèi tiÕp víi diode hoÆc transistor. Khi cÇn ghi th«ng tin víi møc
logic 1 ë ®iÓm v¾t chÐo nµo chØ cÇn cho dßng ®ñ lín ®i qua lµm ch¸y ®øt
cÇu ch× t¬ng øng ë ®iÓm ®ã.
C¸c chip nhí EPROM (Erasable PROM) cho phÐp xãa ®îc b»ng tia cùc tÝm
vµ EEPROM (Electricaly EPROM) cho phÐp xãa b»ng ®iÖn.
Trong c¸c chip nhí nµy c¸c transistor MOS cöa næi ®îc chÕ t¹o theo c«ng
nghÖ FAMOST (Floating gate avalanche injection MOS transistor) n»m ë c¸c
®iÓm v¾t chÐo trong ma tr©n c¸c d©y tõ vµ d©y bit. Trong « nhí nµy cùc cöa
®îc nèi víi ®êng tõ, cùc m¸ng nèi víi ®êng bit vµ cùc nguån ®îc nèi víi nguån
chuÈn (nguån cho møc logic 1). NÕu cöa næi cã c¸c ®iÖn tö trong ®ã víi ®iÖn
tÝch ©m, chóng sÏ ng¨n trêng ®iÖn ®iÒu kiÓn cña cùc cöa ®iÒu khiÓn vµ dï
d©y tõ cã ®îc kÝch häat th× cóng kh«ng thÓ ph¸t ra trêng ®ñ m¹nh víi cùc cöa
®iÒu kiÓn ®Ó lµm th«ng transistor. Lóc nµy ®êng bit kh«ng ®îc nèi víi nguån
chuÈn vµ « nhí coi nh gi÷ gi¸ trÞ 0. ViÖc n¹p c¸c ®iÖn tö vµo vïng cöa næi, tøc lµ
t¹o ra c¸c « nhí cã gi¸ trÞ 0, ®îc thùc hiÖn bëi c¸c xung ®iÖn cã ®é dµi cì 50ms
vµ ®é lín +20Vkhi ®Æt vµo gi÷a cùc cöa vµ m¸ng. §Ó xãa c¸c th«ng tin, tøc lµ
lµm mÊt c¸c ®iÖn tÝch ®iÖn tö trong vïng cöa næi ta chiÕu tia UV vµo chip nhí.
C¸c ®iÖn tö sÏ hÊp thô n¨ng lîng nh¶y lªn c¸c møc cao, vµ rêi cöa næi nh c¸ch mµ
chóng ®· th©m nhËp vµo ®ã. Víi EEPROM viÖc n¹p ®iÖn tö t¬ng tù nh
EPROM. §Ó xãa EEPROM, mét líp kªnh mµng máng oxit gi÷a vïng cöa næi tr¶i
xuèng díi ®Õ vµ cùc m¸ng ®ãng vai trß quan träng. C¸c líp c¸ch ®iÖn lµ kh«ng lý
tëng, c¸c ®iÖn tö cã thÓ thÊm qua líp ph©n c¸ch víi mét x¸c suÊt thÊp. X¸c suÊt
nµy sÏ t¨ng lªn khi bÒ dµy cña líp gi¶m ®i vµ ®iÖn thÕ gi÷a hai ®iÖn cùc ë hai
mÆt t¨ng lªn. Muèn phãng c¸c ®iÖn tÝch trong vïng cöa næi, mét ®iÖn thÕ (-
20V) ®îc ®Æt vµo cùc cöa ®iÒu khiÓn vµ cùc m¸ng. Lóc nµy c¸c ®iÖn tö ©m
trong cöa næi ®îc ch¶y vÒ cùc m¸ng qua kªnh mµng máng oxit vµ sè liÖu lu tr÷
®îc xãa.
Flash memory t¬ng tù nh EEPROM nhng Flash memory xãa tÊt c¶ tong
mét lÇn trong khi EEPROM ph¶i xãa tõng bit mét.
- C¸c chip RAM (Random Access Memory) lµ lo¹i bé nhí cã thÓ ghi/®äc
®îc. §©y lµ lo¹i bé nhí kh«ng cè ®Þnh (volatile) tøc lµ th«ng tin lu tr÷ trong
nã sÏ bÞ mÊt ®i khi c¾t nguån ®iÖn nu«i. RAM b¸n dÉn cã hai lo¹i lµ SRAM
(Static RAM-Ram tÜnh) vµ DRAM (Dinamic RAM-Ram ®éng).
Mét « nhí SRAM lu tr÷ th«ng tin bëi tr¹ng th¸i cña mét m¹ch lËt (Flip-flop)
víi ®Çu ra cña nã ë mét trong hai møc logic thÊp. ThuËt ng÷ ‘tÜnh’ chØ ra
11
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
r»ng khi nguån nu«i cha bÞ c¾t th× néi dung « nhí vÉn ®îc gi÷ nguyªn. Trong
khi ®ã, bé nhí DRAM lu tr÷ th«ng tin b»ng møc ®iÖn ¸p trªn mét tô ®iÖn cã
®iÖn dung C. Lîng ®iÖn tÝch trªn tô biÕn ®æi theo thêi gian do sù phãng
hay n¹p ®iÖn qua c¸c ®iÖn trë khãa (cã gi¸ trÞ kh«ng thÓ b»ng v« cïng). V×
vËy thuËt ng÷ ‘®éng’ hµm ý r»ng mÆc dï cha c¾t nguån nu«i nhng vÉn ph¶i
thêng xuyªn phôc håi th«ng tin trong DRAM. Qu¸ tr×nh håi phôc ®îc gäi lµ
‘lµm t¬i’ « nhí.
Moät vi maïch nhôù thöôøng coù caáu truùc bao goàm: nhoùm tín hieäu
ñòa chæ, nhoùm tín hieäu döõ lieäu (data output/input), tín hieäu choïn voû, tín
hieäu ñieàu khieån ñoïc/ghi
A1D0A2D2A3D3.
.
..
Tín .
hieäu .
Vaøo/ra
ñòa AnDmWECSOE döõ
chæ
lieäu
Ghi
Chaân Ñoïc
choïn
voû
12
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Moãi moät maïch nhôù ñöôïc phoái gheùp vôùi chip caàn phaûi ñöôïc chip
quy chieáu tôùi moät caùch chính xaùc khi thöïc hieän caùc thao taùc ghi/ñoïc.
Ñieàu ñoù coù nghóa laø moãi maïch nhôù phaûi ñöôïc gaùn moät vuøng rieâng
bieät coù ñòa chæ xaùc ñònh naèm trong khoâng gian ñòa chæ toång theå cuûa
boä nhôù. Vieäc gaùn ñòa chæ cuï theå cho maïch nhôù ñöôïc thöïc hieän nhôø
moät xung choïn voû laáy töø maïch giaûi maõ ñòa chæ.
Port 0 D0-D7
74HC373
AT89C51
EA O A0-A7 Boä
D
nhôùù
ALE G
Port 2 A8-A15
Sô ñoà toång quaùt gheùp noái boä nhôù ngoaøi vôùi AT89C51
CS
k.m bit
Tín hieäu ñk ghi/ñoïc
13
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
- Gheùp noái theo haøng doïc (taêng soá bit ñòa chæ)
Giaû söû ta coù moät IC nhôù coù dung löôïng 2n.m bit, muoán coù moät
boä nhôù coù dung löôïng 2n+k.m bit ta gheùp 2k IC nhôù 2n.m bit víi bé gi¶i m·
®Þa chØ cã k ®êng ®Þa chØ vµo chän 1 trong sè 2k ®êng ra.
IC 1
A0 – An+k-1 A0 – An-1 2n.m
CE
IC 2
y0 2n.m
An – An+k-1 Maïch y1 CE m bit
giaûi
maõ .
Choïn voûû ñòa y2 k-1
.
chæ .
.
IC 2k
2n.m
CE
Ñeå vi xöû lyù coù theå nhaän bieát vaø laøm vieäc vôùi boä nhôù ngoaøi,
khi laäp trình ta caàn khôûi taïo caùc giaù trò caùc thuû tuïc caàn thieát ñeå giao
tieáp vôùi boä nhôù ngoaøi. Ví duï ñònh nghóa caùc chaân ñieàu khieån, thieát
laäp caùc chöông trình con ghi ñoïc döõ lieäu .v.v . .
14
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
15
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Chöông trình:
16
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
MOV A,SRAM_DATA
CJNE A,#'Z'+1,INC_SRAM_ADDR
MOV SRAM_DATA,#'A'
INC_SRAM_ADDR:
INC DPTR
MOV A,DPH
CJNE A,#20h,Lap1
; Doc byte tu RAM ra roi gui toi port noi tiep
MOV DPTR,#SRAM_ADDR
Lap2: CALL SRAM_READ
MOV SRAM_DATA,A
WAIT_UART:
JB UART_BUSY,WAIT_UART
SETB UART_BUSY
MOV SBUF,SRAM_DATA
INC DPTR
MOV A,DPH
CJNE A,#20h,lap2
DONE: SJMP DONE
;
INT0_ISR:
RET
T0_ISR:
RET
INT1_ISR:
RET
T1_ISR:
RET
UART_ISR:
JB RI,RECEIVED
TRANSMITTED:
CLR UART_BUSY
CLR TI
RET
RECEIVED:
CLR RI
RET
; Thu tuc doc RAM
SRAM_READ:
MOV LO_ADDR_PORT,DPL
MOV HI_ADDR_PORT,DPH
MOV DATA_PORT,#0FFh
CLR SRAM_CS
CLR SRAM_RD
MOV A,DATA_PORT
SETB SRAM_RD
SETB SRAM_CS
RET
; Thu tuc ghi RAM
SRAM_WRITE:
MOV LO_ADDR_PORT,DPL
MOV HI_ADDR_PORT,DPH
CLR SRAM_CS
MOV DATA_PORT,A ; Thanh ghi A chua du lieu can ghi vao RAM
ngoai
17
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
CLR SRAM_WR
SETB SRAM_WR
SETB SRAM_CS
RET
END
HiÖn nay bé nhí EEPROM trao ®æi d÷ liÖu theo kiÓu nèi tiÕp ®îc
øng dông rÊt nhiÒu trong thùc tÕ.
§Ó minh häa ta h·y xÐt mét IC nhí cô thÓ lo¹i nµy, ®ã lµ IC AT24C64
(64K x 8) .
18
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
M« t¶ ho¹t ®éng:
- Xung ®ång hå vµ truyÒn d÷ liÖu : Ch©n SDA b×nh thêng ®îc kÐo lªn
møc cao víi vai trß lµ thiÕt bÞ ngoµi. D÷ liÖu ë ch©n SDA ®îc thay
®æi khi SCL ¬ møc thÊp. NÕu tÝn hiÖu ë ch©n SDA thay ®æi khi SCl
ë møc cao sÏ chØ ra bÝt b¸o hiÖu b¾t ®Çu hay kÕt thóc viÖc trao ®æi
d÷ liÖu.
- BÝt b¾t ®Çu: TÝn hiÖu ë ch©n SDA chuyÓn tõ cao xuèng thÊp khi
SCl ë møc cao sÏ lµ ®iÒu kiÖn ®Ó b¾t ®Çu qu¸ tr×nh truyÒn d÷ liÖu
- BÝt kÕt thóc: TÝn hiÖu ë ch©n SDA chuyÓn tõ thÊp lªn cao khi SCl ë
møc cao lµ ®iÒu kiÖn b¸o hiÖu kÕt thóc qu¸ tr×nh truyÒn d÷ liÖu.
- BÝt b¸o hiÖu chÊp nhËn trao ®æi: TÊt c¶ c¸c ®Þa chØ vµ d÷ liÖu (8
bÝt) ®Òu truyÒn nèi tiÕp. EEPROM sÏ göi bÝt 0 ë bÝt thø 9 ®Ó x¸c
nhËn lµ ®· nhËn ®îc mçi tõ (8 bit)
§Þa chØ ®Ó x¸c ®Þnh EEPROM gåm 8 bit trong ®ã 4 bÝt ®©u ®îc cè
®Þnh nh h×nh vÏ. C¸c bÝt A0 , A1 , A2 sÏ ®îc nèi víi ®Êt nÕu chØ cã mét
IC nhí ®îc ghÐp nèi víi vi xö lý, nÕu cã nhiÒu IC nhí th× c¸c bit trªn sÏ quy
®Þnh vïng nhí cho mçi IC nhí. BÝt cuèi cïng quy ®Þnh ho¹t ®éng ®äc hay
ghi.
19
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ho¹t ®éng ghi ®îc b¾t ®Çu khi cã tÝn hiÖu b¾t ®Çu, tiÕp ®ã lµ 8
bÝt ®Þa chØ bÝt thø 8 lµ 0 ®Ó b¸o hiÖu ghi, sau khi x¸c nhËn ®Þa chØ
EEPROM ®a ra bit 0 bÝt x¸c nhËn(coi nh lµ tÝn hiÖu ng¨n c¸ch gia c¸c
phÇn). Dong bÝt tiÕp theo ®a vµo lµ ®Þa chØ phÇn cao phÇn thÊp cña d÷
liÖu sÏ ghi råi míi ®Õn d÷ liÖu cÇn ghi, cø sau 8 bÝt ROM ®Òu ®a ra bÝt
x¸c nhËn. Cuèi cïng lµ tÝn hiÖu kÕt thóc.
Ta cã thÓ ghi d÷ liÖu theo tõng trang tøc lµ bé nhí sÏ tù ®éng t¨ng 1 ë ®Þa
chØ.
Ho¹t ®éng ®äc còng t¬ng tù ho¹t ®éng ghi, ta cã thÓ ®äc ngÉu nhiªn,
®äc tuÇn tù, current address read.
S¬ ®å nèi ghÐp díi ®©y ta ghÐp mét IC AT24C64 víi vi ®iÒu kiÓn
AT89C51 nªn c¸c ch©n A0 ,A1 , A2 ®Òu ®îc nèi víi ®Êt.
20
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng tr×nh:
21
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
ORG PROG+0013h
LCALL INT1_ISR
RETI
ORG PROG+001Bh
LCALL T1_ISR
RETI
ORG PROG+0023h
LCALL UART_ISR
RETI
;
ORG PROG+0030h
START:
MOV TMOD,#00100001b ; Bo dinh thoi1 o che do 2, Bo dinh thoi 0 o che do 1
MOV TH1, #0FDh ; Toc do baud = 9600 bps voi thach anh 11.0592MHz
MOV SCON,#01010000b ; Port noi tiep o che do 1
SETB ES ; Cho phep port noi tiep ngat
SETB EA ; Cho phep ngat
SETB TR1 ; Khoi dong bo dinh thoi 1
CLR UART_BUSY
; Ghi bang chu cai A, B, C . . . vao bo nho
MOV SEEPROM_MADRS_HI,#00h
MOV SEEPROM_MADRS_LO,#00h
MOV SEEPROM_DATA,#'A'
LOOP_1: CALL SEEPROM_WRITE
INC SEEPROM_DATA
MOV A,SEEPROM_DATA
CJNE A,#'Z'+1,INC_MADRS_LO_1
MOV SEEPROM_DATA,#'A'
INC_MADRS_LO_1:
INC SEEPROM_MADRS_LO
MOV A,SEEPROM_MADRS_LO
CJNE A,#00h,LOOP_1
INC_MADRS_HI_1:
INC SEEPROM_MADRS_HI
MOV A,SEEPROM_MADRS_HI
CJNE A,#20h,LOOP_1 ; Gioi han 8K voi AT24C64
22
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
23
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
SEEPROM_READ_ERROR:
CALL SEEPROM_STOP
SEEPROM_READ_RET:
POP ACC
JC SEEPROM_READ ; thu lai
neu loi
RET
;
SEEPROM_START:
; Gui bit bat dau, xac dinh chuyen tu cao ve thap o SDA trong khi SCL cao.
; Quay lai SCL, SDA thap.
24
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
25
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
DJNZ B,SEEPROM_SHOUT_LOOP
SETB SEEPROM_SDA ; SDA for ACK
NOP ; lam cho SCL thap va tAA
NOP
SETB SEEPROM_SCL ; phat ACK clock
NOP ; lam cho SCL cao
NOP
NOP
NOP
MOV C,SEEPROM_SDA ; Nhan ACK bit
CLR SEEPROM_SCL ; Giam ACK clock
POP B
POP ACC
RET
;
SEEPROM_SHIN:
; Nhan vao bit bat buoc.
; SCL thap de thu lai. quay tro lai SCL thap.
; Nhan du lieu tu SEEPROM_SBUF.
PUSH ACC
PUSH B
SETB SEEPROM_SDA ; thiet lap SDA vao
MOV B,#8 ; bit dem
SEEPROM_SHIN_LOOP:
NOP ; Lam cho SCL thap va thiet lap du
lieu
NOP
NOP
SETB SEEPROM_SCL ; Phat clock
NOP ; Lam cho SCL cao
NOP
MOV C, SEEPROM_SDA ; bit vao
RLC A ; chuyen bit vao byte
CLR SEEPROM_SCL ; Giam clock
DJNZ B,SEEPROM_SHIN_LOOP
MOV SEEPROM_SBUF,A
POP B
POP ACC
RET
;
SEEPROM_NAK: ; Phu dinh xung xac nhan (cao).
; SCL thap de thu lai. Quay lai voi SCL thao, SDA cao.
SETB SEEPROM_SDA; phu dinh bit xac nhan
NOP ; lam cho SCL thap va thiet lap du lieu
NOP
SETB SEEPROM_SCL ; Phat clock
NOP ; lam cho SCL cao
NOP
NOP
NOP
CLR SEEPROM_SCL ; Giam clock
RET
;
END
26
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng 3
Giíi thiÖu vÒ ic chuyÓn ®æi ad – da
c¸ch ghÐp nèi chóng víi vi xö lý
vAX
ñoåi DA
Keát quaû digital
Khoaûng thôøi gian bieán ñoåi ñöôïc chia bôûi nguoàn xung clock beân
ngoaøi. Ñôn vò ñieàu khieån laø moät maïch logic cho pheùp ñaùp öùng
vôùi tín hieäu Start ñeå baét ñaàu bieán ñoåi. Khi ñoù, OPAMP so saùnh hai
tín hieäu vaøo angalog ñeå taïo ra tín hieäu digital bieán ñoåi traïng thaùi
cuûa ñôn vò ñieàu khieån phuï thuoäc vaøo tín hieäu analog naøo coù giaù
trò lôùn hôn. Boä bieán ñoåi hoaït ñoäng theo caùc böôùc :
Tín hieäu Start ñeå baét ñaàu bieán ñoåi.
27
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Cöù moãi xung clock, ñôn vò ñieàu khieån söûa ñoåi soá nhò phaân
ñaàu ra vaø ñöa vaøo löu tröõ trong thanh ghi.
Soá nhò phaân trong thanh ghi ñöôïc chuyeån ñoåi thaønh aùp analog
vAX qua boä bieán ñoåi DA.
OPAMP so saùnh vAX vôùi aùp ñaàu vaøo vA. Neáu vAX < vA thì ñaàu
ra ôû möùc cao, coøn ngöôïc laïi, neáu v AX vöôït qua vA moät löôïng
vT (aùp ngöôõng) thì ñaàu ra ôû möùc thaáp vaø keát thuùc quaù trình
bieán ñoåi. Ôû thôøi ñieåm naøy, vAX ñaõ xaáp xæ baèng vA vaø soá
nhò phaân chöùa trong thanh ghi chính laø giaù trò digital xaáp xæ
cuûa vA (theo moät ñoä phaân giaûi vaø chính xaùc nhaát ñònh cuûa
töøng heä thoáng).
Ñôn vò ñieàu khieån kích hoaït tín hieäu EOC, baùo raèng ñaõ keát
thuùc quaù trình bieán ñoåi.
Döïa theo phöông phaùp naøy, coù nhieàu boä bieán ñoåi nhö sau :
vA + EOC
OPAMP
Start
-
So saùnh
vAX vA
Khi
Reset chuyeån
ñoåi hoaøn
taát, counter
Boäâ EOC ngöøng
Counter Clock
bieán tC ñeám
...
vAX
ñoåi DA
Start
28
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
vaø moät coång AND cho ñieàu khieån . Ñaàu ra cuûa OPAMP ñöôïc duøng
nhö tín hieäu tích cöïc möùc thaáp cuûa tín hieäu EOC. Giaû söû v A döông,
quaù trình bieán ñoåi xaûy ra theo caùc böôùc :
Xung Start ñöôïc ñöa vaøo ñeå reset counter veà 0. Möùc cao cuûa
xung Start cuõng ngaên khoâng cho xung clock ñeán counter.
Ñaàu vaøo cuûa boä bieán ñoåi DA ñeàu laø caùc bit 0 neân aùp ra
vAX = 0v.
Khi vA > vAX thì ñaàu ra cuûa OPAMP (EOC) ôû möùc cao.
Khi Start xuoáng möùc thaáp, coång AND ñöôïc kích hoaït vaø xung
clock ñöôïc ñöa vaøo counter.
Counter ñeám theo xung clock vaø vì vaäy ñaàu ra cuûa boä bieán
ñoåi DA, vAX, gia taêng moät naác trong moät xung clock
Quaù trình ñeám cuûa counter cöù tieáp tuïc cho ñeán khi v AX baèng
hoaëc vöôït qua vA moät löôïng vT (khoaûng töø 10 ñeán 100v). Khi
ñoù, EOC xuoáng thaáp vaø ngaên khoâng cho xung clock ñeán
counter. Töø ñoù keát thuùc quaù trình bieán ñoåi.
Counter vaãn giöõ giaù trò vöøa bieán ñoåi xong cho ñeán khi coù
moät xung Start cho quaù trình bieán ñoåi môùi.
Töø ñoù ta thaáy raèng boä bieán ñoåi loaïi naøy coù toác ñoä raát chaäm
(ñoä phaân giaûi caøng cao thì caøng chaäm) vaø coù thôøi gian bieán ñoåi
phuï thuoäc vaøo ñoä lôùn cuûa ñieän aùp caàn bieán ñoåi.
1.1.2. Boä bieán ñoåi AD xaáp xæ lieân tieáp
Ñaây laø boä bieán ñöôïc duøng roäng raõi nhaát trong caùc boä bieán ñoåi
AD. Noù coù caáu taïo phöùc taïp hôn boä bieán ñoåi AD theo haøm doác
nhöng toác ñoä bieán ñoåi nhanh hôn raát nhieàu. Hôn nöõa, thôøi gian
bieán ñoåi laø moät soá coá ñònh khoâng phuï thuoäc giaù trò ñieän aùp
ñaàu vaøo.
29
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
A
1.2. Boä bieán ñoåi Flash AD
Boä bieán ñoåi loaïi naøy coù toác ñoä
nhanh nhaát vaø cuõng caàn nhieàu linh
kieän caáu thaønh nhaát.
Coù theå laøm moät pheùp so saùnh:
flash AD 6-bit caàn 63 OPAMP, 8-bit
Aùp analog ñaàu
caàn 255 OPAMP, vaø 10-bit caàn 1023 vaøo
30
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
OPAMP. Vì leõ ñoù maø boä bieán ñoåi AD loaïi naøy bò giôùi haïn bôûi
soá bit, thöôøng laø 2 ñeán 8-bit.
Ví duï moät flash AD 3-bit :
Maïch treân coù ñoä phaân giaûi laø 1V, caàu chia ñieän aùp thieát laäp
neân caùc ñieän aùp so saùnh (7 möùc töông öùng 1V, 2V, …) vôùi ñieän
aùp caàn bieán ñoåi.
Ñaàu ra cuûa caùc OPAMP ñöôïc noái ñeán moät priority encoder vaø ñaàu
ra cuûa noù chính laø giaù trò digital xaáp xæ cuûa ñieän aùp ñaàu vaøo.
Caùc boä bieán ñoåi coù nhieàu bit hôn deã daøng suy ra theo maïch treân.
1.3. Boä bieán ñoåi AD theo haøm doác daïng leân xuoáng (tracking
ADC)
Boä bieán ñoåi loaïi naøy ñöôïc caûi tieán töø boä bieán ñoåi AD theo haøm
doác. Ta thaáy raèng toác ñoä cuûa boä bieán ñoåi AD theo haøm doác khaù
chaäm bôûi vì counter ñöôïc reset veà 0 moãi khi baét ñaàu quaù trình bieán
ñoåi. Giaù trò VAX laø 0 luùc baét ñaàu vaø taêng daàn cho ñeán khi vöôït
qua VA. Roõ raøng laø thôøi gian naøy laø hoaøn toaøn laõng phí bôûi vì
ñieän aùp analog thay ñoåi moät caùch lieân tuïc, giaù trò sau naèm trong
laân caän giaù trò tröôùc.
Boä bieán ñoåi AD theo haøm doác daïng leân xuoáng duøng moät counter
ñeám leân/xuoáng thay cho counter chæ ñeám leân ôû boä bieán ñoåi AD
theo haøm doác vaø khoâng reset veà 0 khi baét ñaàu. Thay vì vaäy, noù
giöõ nguyeân giaù trò cuûa laàn bieán ñoåi tröôùc vaø taêng giaûm tuøy
thuoäc vaøo giaù trò ñieän aùp môùi so vôùi giaù trò ñieän aùp cuõ.
1.4. Boä bieán ñoåi AD duøng chuyeån ñoåi aùp sang taàn soá
Boä bieán ñoåi loaïi naøy ñôn giaûn hôn boä bieán ñoåi AD duøng bieán
ñoåi DA. Thay vì vaäy noù duøng moät boä dao ñoäng tuyeán tính ñöôïc
ñieàu khieån bôûi ñieän aùp ñeå taïo ra taàn soá töông öùng vôùi aùp vaøo.
Taàn soá naøy ñöôïc daãn ñeán moät counter ñeám trong moät thôøi
khoaûng coá ñònh vaø khi keát thuùc khoaûng thôøi gian coá ñònh naøy,
giaù trò ñeám tyû leä vôùi ñieän aùp vaøo.
Phöông phaùp naøy ñôn giaûn nhöng khoù ñaït ñöôïc ñoä chính xaùc cao
bôûi vì khoù coù theå thieát keá boä bieán ñoåi aùp sang taàn soá coù ñoä
chính xaùc hôn 0,1%.
Moät trong nhöõng öùng duïng chính cuûa loaïi naøy laø duøng trong moâi
tröôøng coâng nghieäp coù nhieãu cao. Ñieän aùp ñöôïc chuyeån töø
transducer veà maùy tính ñieàu khieån thöôøng raát nhoû, neáu truyeàn tröïc
31
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
tieáp veà thì seõ bò nhieãu taùc ñoäng ñaùng keå vaø giaù trò thu ñöôïc haàu
nhö khoâng coøn ñuùng nöõa. Do ñoù, ngöôøi ta duøng boä bieán ñoåi aùp
sang taàn soá ngay taïi transducer vaø truyeàn caùc xung veà cho maùy tính
ñieàu khieån ñeám neân ít bò aûnh höôûng bôûi nhieãu.
1.5. Boä bieán ñoåi AD theo tích phaân hai ñoä doác
Boä bieán ñoåi loaïi naøy laø moät trong nhöõng boä coù thôøi gian bieán
ñoåi chaäm nhaát (thöôøng laø töø 10 ñeán 100ms) nhöng coù lôïi ñieåm laø
giaù caû töông ñoái reû khoâng duøng caùc thaønh phaàn chính xaùc nhö
boä bieán ñoåi AD hoaëc boä bieán ñoåi aùp sang taàn soá.
Nguyeân taéc chính laø döïa vaøo quaù trình naïp vaø xaû tuyeán tính cuûa
tuï vôùi doøng haèng. Ñaàu tieân, tuï ñöôïc naïp trong moät khoaûng thôøi
gian xaùc ñònh töø doøng haèng ruùt ra töø ñieän aùp vaøo vA. Vì vaäy, ôû
cuoái thôøi ñieåm naïp, tuï seõ coù moät ñieän aùp tyû leä vôùi ñieän aùp
vaøo. Cuõng vaøo luùc naøy, tuï ñöôïc xaû tuyeán tính vôùi moät doøng
haèng ruùt ra töø ñieän aùp tham chieáu chính xaùc v ref. Khi ñieän aùp treân
tuï giaûm veà 0 thì quaù trình xaû keát thuùc. Trong suoát khoaûng thôøi
gian xaû naøy, moät taàn soá tham chieáu ñöôïc daãn ñeán moät counter vaø
baét ñaàu ñeám. Do khoaûng thôøi gian xaû tyû leä vôùi ñieän aùp treân tuï
luùc tröôùc khi xaû neân ôû cuoái thôøi ñieåm xaû, counter seõ chöùa moät
giaù trò tyû leä vôùi ñieän aùp treân tuï tröôùc khi xaû, töùc laø tyû leä vôùi
ñieän aùp vaøo vA.
Ngoaøi giaù thaønh reû thì boä bieán ñoåi loaïi naøy coøn coù öu ñieåm
choáng nhieãu vaø söï troâi nhieät. Tuy nhieân thôøi gian bieán ñoåi chaäm
neân ít duøng trong caùc öùng duïng thu thaäp döõ lieäu ñoøi hoûi thôøi
gian ñaùp öùng nhanh. Nhöng ñoái vôùi caùc quaù trình bieán ñoåi chaäm
(coù quaùn tính lôùn) nhö loø nhieät thì raát ñaùng ñeå xem xeùt ñeán
Thieát bò naøy loaïi tröø khaû naêng caàn thieát ñieàu chænh ñieåm 0 beân
ngoaøi vaø khaû naêng ñieàu chænh tæ soá laøm troøn ADC 0809 deã daøng giao
tieáp vôùi caùc boä28
vi xöû lyù. 15
* Sô ñoà chaân ADC 0809:
ADC0809
1 32 14
IN3 IN4 IN5 IN6 IN7 START EOC 2-5 OE CLK VCC REF GND 2-7
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
33
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
1 0 0 IN4
1 0 1 IN5
1 1 0 IN6
1 1 1 IN7
Sau khi kích xung start thì boä chuyeån ñoåi baét ñaàu hoaït ñoäng ôû caïnh
xuoáng cuûa xung start, ngoõ ra EOC seõ xuoáng möùc thaáp sau khoaûng 8 xung
clock (tính töø caïnh xuoáng cuûa xung start). Luùc naøy bit cô troïng soá lôùn
nhaát (MSB) ñöôïc ñaët leân möùc 1, taát caû caùc bit coøn laïi ôû möùc 0, ñoàng
thôøi taïo ra ñieän theá coù giaù trò Vref/2, ñieän theá naøy ñöôïc so saùnh vôùi
ñieän theá vaøo in.
+ Neáu Vin > Vref/2 thì bit MSB vaãn ôû möùc 1.
+ Neáu Vin < Vref/2 thì bit MSB vaãn ôû möùc 0.
Töông töï nhö vaäy bit keá tieáp MSB ñöôïc ñaët leân 1 vaø taïo ra ñieän theá coù
giaù trò Vref/4 vaø cuõng so saùnh vôùi ñieän aùp ngoõ vaøo Vin. Quaù trình cöù
tieáp tuïc nhö vaäy cho ñeán khi xaùc ñònh ñöôïc bit cuoái cuøng. Khi ñoù chaân
EOC leân möùc 1 baùo cho bieát ñaõ keát thuùc chuyeån ñoåi.
Trong suoát quaù trình chuyeån ñoåi chaân OE ñöôïc ñaët ôû möùc 1, muoán ñoïc
döõ lieäu ra chaân OE xuoáng möùc 0.
Trong suoát quaù trình chuyeån ñoåi neáu coù 1 xung start taùc ñoäng thì ADC
seõ ngöng chuyeån ñoåi.
Maõ ra N cho moät ngoõ vaøo tuøy yù laø moät soá nguyeân.
256.(VIN Vref ( ) )
N
Vref ( ) Vref ( )
34
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Vcc
IK IK
10K
560P
1
Taàn soá dao ñoäng cuûa maïch laø f =
3RC
Taàn soá dao ñoäng chuaån laø 600 kHz
1
Suy ra 640 =
3RC
Vôùi R töø 100 ñeán vaøi k choïn R =1 k C = 500 PF.
35
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
PORT USAGE
Port1 - ADC Result (Input)
P3.5 - ADC Complete (Input Active Low)
P3.4 - Start ADC (Output Active Low)
P3.3 - Load values to output (Output Active Low)
SEND:
CLR TI ;Clear Timer1 Flag
MOV SBUF, A ;Transmit Byte
WAIT:
JNB TI, WAIT ;Wait for transmission to be completed.
RET
36
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
DAC LTT
H×nh 5.1:S¬ ®å nguyªn t¾c biÓu diÔn qu¸ tr×nh t×m l¹i tÝn hiÖu tîng mét tÝn hiÖu sè
ChuyÓn ®æi sè – t¬ng tù kh«ng ph¶i lµ phÐp nghÞch ®¶o cña chuyÓn ®æi t¬ng tù –
sè, v× kh«ng thÓ thùc hiÖn ®îc phÐp nghÞa ®¶o cña qu¸ tr×nh lîng tö ho¸.
Qu¸ tr×nh chuyÓn ®æi sè – t¬ng tù ®¬n gi¶n h¬n qu¸ tr×nh chuyÓn ®æi t¬ng tù – sè rÊt
nhiÒu. V× vËy chuyÓn ®æi sè – t¬ng tù ®îc øng dông nhiÒu trong c¸c m¹ch chuyÓn
®æi t¬ng tù – sè.
§Ó lÊy ®îc tÝn hiÖu t¬ng tù tõ tÝn hiÖu sè, dïng s¬ ®å nguyªn t¾c trªn h×nh 5.1. Theo
s¬ ®å nµy th× qu¸ tr×nh chuyÓn ®æi sè – t¬ng tù lµ qu¸ tr×nh t×m l¹i tÝn hiÖu t¬ng tù
®· ®îc lÊy mÉu ®îc.TÝn hiÖu ®Çu ra lµ tÝn hiÖu rêi r¹c theo thêi gian. TÝn hiÖu nµy
®îc ®a qua bé läc th«ng thÊp lý tëng. Trªn ®Çu ra bé läc cã tÝn hiÖu Ua biÕn thiªn liªn
tôc theo thêi gian lµ tÝn hiÖu néi suy cña Um. ë ®©y bé läc th«ng thÊp ®ãng vai trß nh
mét bé néi suy.
37
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
38
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
39
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng 4
Giíi thiÖu mµn h×nh tinh thÓ láng LCD
c¸ch ghÐp nèi víi vi xö lý
ë 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.
40
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
41
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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.
H×nh 2 H×nh 3
42
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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
43
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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:
8 D1
12 D5
13 D6
14 D7
44
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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.
45
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
46
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
47
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
Clear Display 0 0 0 0 0 0 0 1 01
(Xo¸ mµn h×nh)
Display & Cursor Home
0 0 0 0 0 0 1 x 02 or 03
Character Entry Mode
0 0 0 0 0 1 1/D S 04 to 07
(ChÕ ®é nhËn d÷ liÖu)
Display On/Off & Cursor
0 0 0 0 1 D U B 08 to 0F
(bËt/t¾t LCD vµ kiÓu con trá)
Display/Cursor Shift
0 0 0 1 D/C R/L x x 10 to 1F
(DÞch LCD vµ con trá)
10 /
Function Set 0 0 1 8/4 2/1 x x 20 to 3F
7
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: 1=Increment*, 0=Decrement 1=Display shift on, R / L: 8 / 4: 1=Right shift, 0=Left shift 1=8-bit interface*,
S: 0=Off* 0=4-bit interface
Ký
Chøc n¨ng Chó thÝch
hiÖu
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
DÞch con trá sau khi hiÓn Cã (1); Kh«ng (0)
S
thÞ
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)
48
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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 vµo LCD qua 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:
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 cha
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.
49
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ §Æ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 cha 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 .
50
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ 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)
51
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
52
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
53
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
Set Display Address 1 A A A A A A A 80 to FF
_ 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Þ trong kho¶ng $00-$7F tøc lµ 128 ®Þa chØ.
Nhng 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
54
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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.
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
Display/Cursor Shift 0 0 0 1 D/C R/L x x 10 to 1F
55
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ 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Þ.
56
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
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 .
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
Character Entry Mode 0 0 0 0 0 1 1/D S 04 to 07
57
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ LÖnh Character Entry Mode : NÕu S=1 con trá sÏ tù ®éng dÞch
®Þa chØ sau khi hiÓn thÞ (nÕu=0 th× kh«ng dÞch). NÕu 1/D=1 ®Þ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 =0 th× dÞch sang tr¸i).
_ ë 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:
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
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 .
58
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ 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 lu 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.
Binary
Command Hex
D7 D6 D5 D4 D3 D2 D1 D0
Function Set 0 0 1 8/4 2/1 10 / 7 x x 20 to 3F
59
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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 ) . Nhng 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. Nhng 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.
Binary
Instruction RS
D7 D6 D5 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)
60
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ 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ã cha 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
Thêi gian thùc hiÖn lÖnh Qu¸ tr×nh thùc hiÖn lÖnh (nhËn d÷ liÖu )
61
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
62
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
63
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
; ;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
;
64
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
;
************************************************************
**************
;
;
;
************************************************************
**************
;
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
65
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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
;
66
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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
;
;
************************************************************
**************
;
67
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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
68
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
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
69
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng 5:
giíi thiÖu c¸c ic hç trî vµo ra ( 8255 - 8251)
c¸ch lËp tr×nh c¸c cæng
Sô ñoà chaân vaø sô ñoà logic cuûa vi maïch 8255A ñöôïc theå hieän qua
hình veõ:
PA3 1 40 PA4
PA2 PA5
PA1 PA6
PA0 PA7 PA0 – PA7
RD\ WR\ D0 – D7
CS\ RESET
GND D0 8255A
A1 D1
A0 D2
PC7 8255A D3 RD\ PB0 – PB7
PC6 D4 WR\
PC5 D5
PC4 D6 RESET
PC0 D7
PC1 Vcc A0
PC2 PB7
PC3 PB6 A1 PC0 – PC7
PB0 PB5 CS\
PB1 PB4
PB2 20 21 PB3
70
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Baûng ñòa chæ löïa choïn thanh ghi vaø caùc coång:
71
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
III. CÊu tróc bªn trong vµ ho¹t ®éng cña vi m¹ch 8255A.
1. S¬ ®å khèi cÊu tróc bªn trong cña vi m¹ch 8255A. PA7 - PA0
Port A
Ñieàu
khieån
nhoùm A PC7 – PC4
Port C
(4 bit cao)
D7 – D0 Ñeäm bus
Nhoùm A
döơ lieäu
PC3 – PC0
Port C
(4 bit
Ñieàu thaáp)
khieån
nhoùm B PB7 – PB0
RD\ Logic
ñieàu
Port B
WR\
CS\ khieån
ghi/ñoïc
A0
Nhoùm B
A1
72
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
- Ñöôøng ñòa chæ: goàm 2 ñöôøng (A0 – A1) duøng ñeå löïa choïn coång
hoaëc thanh ghi ñieàu khieån nhö ñaõ trình baøy ôû phaàn tröôùc.
- Ñöôøng ñieàu khieån: goàm caùc ñöôøng RD\, WR\, CS\, Reset duøng
ñeå ñieàu khieån vieäc hoaït ñoäng cuûa 8255A.
Ñeå söû duïng caùc coång laøm coâng cuï giao tieáp, ngöôøi söû duïng
phaûi göûi töø ñieàu khieån ra thanh ghi ñieàu khieån ñeå 8255A ñònh caáu hình
laøm vieäc cho caùc coång ñuùng nhö yeâu caàu cuûa ngöôøi laäp trình.
3. Tõ ®iÒu khiÓn
Töø ñieàu khieån laø döõ lieäu ñöôïc gôûi tôùi thanh ghi ñieàu khieån. Giaù
trò cuûa töø ñieàu khieån seõ xaùc ñònh caáu hình laøm vieäc cho caùc coång
cuûa 8255A, ñoù laø vieäc löïa choïn chöùc naêng nhaäp hay xuaát cuûa caùc
coång.
73
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
D7D6D5D4D3D2D1D0
Nhoùm B
Coång C (4 bit
thaáp)
1 = Input
0 = OutputCoång B
1 = Input
0 = OutputMode
select
1 = mode 0
0 = mode 1
Nhoùm A
Coång C (4 bit cao)
1 = Input
0 = OutputCoång A
1 = Input
0 = OutputMode
select
00 = mode 0
01 = mode 1
1x = mode 2
Ñaët
Hình 3 : Caáu truùc töø ñieàu khieån cuûa vi maïch traïng thaùi
8255A
côø.
1 = Active
b. Cô cheá hoaït ñoäng caùc coång cuûa 8255A ôû caùc traïng thaùi.
8255 hoaït ñoäng ôû ba cheá ñoä mode:
* Mode 0: “ Vaøo/ra cô sôû ”. moãi coång PA, PB, PCL, PCH ñeàu ñöôïc
ñònh nghóa laø caùc coång vaøo hoaëc ra.
* Mode 1: “ vaøo/ra coù xung cho pheùp ”, caùc coång port PA, PB coù
theå ñöôïc ñònh nghóa laø caùc coång vaøo hoaëc ra vôùi tín hieäu moùc noái do
caùc bit töông öùng cuûa port PC trong cuøng nhoùm ñaûm nhieäm.
* Mode 2: “ vaøo/ra 2 chieàu ”, chæ rieâng Port PA ñöôïc ñònh nghóa
thaønh coång vaøo/ra 2 chieàu vôùi caùc tín hieäu moùc noái do caùc bit cuûa Port
PC ñaûm nhieäm. Port PB coù theå laøm vieäc trong cheá ñoä 0 hoaëc 1.
74
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Moùc noái ( Hanshare ) laø moät phöông phaùp kyõ thuaät chung ñeå truyeàn
döõ lieäu trong moät giao dieän. Moät maùy tính, moät thieát bò thoâng thöôøng
hoaït ñoäng vôùi caùc ñoàng hoà heä thoáng coù toác ñoä khaùc nhau vaø do
ñoù, döõ lieäu truyeàn ñi giöõa caùc I/O töông öùng coù theå seõ khoâng coøn
ñaùng tin caäy. Nhö vaäy moùc noái ( hansharing ) coøn laø phöông tieän naâng
cao ñoä tin caäy cuûa döõ lieäu khi truyeàn ñi.
* Nhoùm A vaø Nhoùm B caáu hình ôû mode 0.
Khi ñöôïc ñònh cô caáu hình naøy, caùc coång cuûa hai nhoùm hoaït ñoäng
xuaát hoaëc nhaäp döõ lieäu ñoäc laäp vôùi nhau.
Töø ñieàu khieån:
1 0 0 D4 D3 0 D1 D0
Vôùi D0, D1. D3, D4 tuøy choïn theo yeâu caàu cuûa ngöôøi söû duïng.
* Nhoùm A ñöôïc caáu hình ôû mode 1.
ÔÛ mode 1, caùc coång laøm vieäc coù choát (Strobed I/O), thieát bò giao
tieáp muoán 8255A nhaän döõ lieäu thì thieát bò ñoù phaûi taïo ra moät tín
hieäu yeâu caàu 8255A nhaän döõ lieäu vaø ngöôïc laïi, 8255A muoán gôûi
döõ lieäu cho moät thieát bò khaùc thì noù phaûi gôûi 1 tín hieäu yeâu caàu
thieát bò ñoù nhaän döõ lieäu, tín hieäu ñoù goïi laø tín hieäu choát.
+ Khi coång A ñöôïc caáu hình laø coång nhaäp döõ lieäu, chöùc naêng
caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ: PA –PA 0 7
INTE
A PC4 STBA\
Töø ñieàu khieån :
PC5 IBFA
1 0 1 1 D3 x x x
Hình 4 : Chöùc naêng caùc ñöôøng tín hieäu khi coång A laø coång nhaäp döõ
lieäu
Caùc ñöôøng tín hieäu coång C trôû thaønh caùc ñöôøng ñieàu khieånINTR
cuûa
PC3
coång A. RD\ A
75
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Thoâng thöôøng bit naøy duøng ñeå taùc ñoäng vaøo ngoõ vaøo ngaét cuûa vi xöû
lyù ñeå baùo cho vi xöû lyù bieát : döõ lieäu môùi ñaõ xuaát hieän ôû ngoõ vaøo.
Caùc bit PC6, PC7 cuûa coång C laø caùc bit xuaát/ nhaäp bình thöôøng
tuøy thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån. Coøn coång B
ñöôïc ñieàu khieån baèng caùc bit D0 – D2 trong thanh ghi ñieàu khieån (neáu
coång B hoaït ñoäng ôû mode 1 thì caùc bit PC0 – PC2 laø caùc bit ñieàu khieån).
+ Coång A ñöôïc caáu hình laø coång xuaát döõ lieäu.
Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ:
PA0–PA7
Töø ñieàu khieån : INTE
A PC7 OBFA\
PC6 ACKA\
1 0 1 0 D3 X x x
PC3 INTRA
WR\
Hình 5 : Chöùc naêng caùc ñöôøng tín hieäu khi coång A laø PCcoång
4,5
xuaát
I/Odöõ
lieäu
Bit PC7 trôû thaønh bit OBFA (Output Buffer Full, taùc ñoäng möùc thaáp),
khi coù döõ lieäu töø vi xöû lyù gôûi ra coång A, tín hieåu OBF seõ yeâu caàu
thieát bò beân ngoaøi nhaän döõ lieäu.
Bit PC6 trôû thaønh bit ACKA (Acknowledge Input, taùc ñoäng möùc
thaáp), thieát bò nhaän döõ lieäu duøng tín hieäu naøy ñeå baùo cho 8255A bieát
döõ lieäu ñaõ ñöôïc nhaän vaø saün saøng nhaän döõ lieäu môùi.
Bit PC3 trôû thaønh bit INTRA (Interrupt Request, taùc ñoäng möùc cao),
bit naøy coù möùc logic baèng 1 khi bit OBF A = 1, ACKA = 1 vaø bit INTEA = 1.
Tín hieäu INTRA taùc ñoäng ñeán ngoõ vaøo ngaét cuûa vi xöû lyù ñeå baùo cho
vi xöû lyù bieát thieát bò beân ngoaøi ñaõ nhaän döõ lieäu töø coång A.
Caùc bit PC4, PC5 vaãn laø bit nhaäp/ xuaát döõ lieäu bình thöôøng tuøy
thuoäc vaøo töø ñieàu khieån. Caùc bit D0 – D2 trong thanh ghi ñieàu khieån
duøng ñeå thieát laäp caáu hình cho coång B.
* Nhoùm B ñöôïc caáu hình ôû mode 1.
+ Coång B ñöôïc caáu hình laø coång nhaäp döõ lieäu.
Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ:
PB0–PB7
Töø ñieàu khieån : INTE
B PC2 STBB\
1 x x x x 1 1 x PC1 IBFB
76 INTRB
PC0
RD\
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Hình 6 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång nhaäp döõ
lieäu
Chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö khi nhoùm A hoaït
ñoäng ôû mode 1 vaø coång A ñöôïc caáu hình laø coång nhaäp döõ lieäu.
+ Coång B ñöôïc caáu hình laø coång xuaát döõ PB0–PB7
lieäu. INTE
B PC1 OBFB\
PC2 ACKB\
Töø ñieàu khieån:
1 x X x x 1 0 x INTRB
PC0
WR\
Hình 7 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång xuaát döõ
lieäu
Chöùc naêng cuûa caùc töø ñieàu khieån gioáng nhö khi nhoùm A hoaït ñoäng
ôû mode 1 vaø coång A ñöôïc caáu hình laø coång xuaát döõ lieäu.
* Nhoùm A ñöôïc caáu hình ôû mode 2.
Mode 2 laø kieåu hoaït ñoäng strobed bi-directional IO : coù hai chöùc naêng
nhaäp xuaát döõ lieäu.
Töø ñieàu khieån khi nhoùm A ñöôïc caáu hình ôû mode 2 vaø chöùc
naêng cuûa caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ:
Töø ñieàu khieån :
PA0–PA7
1 0 1 1 D3 x x x
INTE
PC3 A
PC7 OBFA\
INTE
1 PC6 ACKA\
INTE
2 PC4 STBA\
WR\ IBFA
77 PC5
RD\ PC2,1,0 I/O
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Hình 8: Chöùc naêng caùc ñöôøng tín hieäu khi nhoùm A hoaït ñoäng ôû mode 2
Caùc ñöôøng tín hieäu coång C trôû thaønh caùc ñöôøng ñieàu khieån cuûa coång
A.
Bit PC7 trôû thaønh bit OBFA, PC6 trôû thaønh bit ACKA, PC4 trôû thaønh
bit STBA, PC5 trôû thaønh bit IBFA vaø bit PC3 trôû thaønh bit INTRA, chöùc
naêng cuûa caùc bit ñieàu khieån gioáng nhö ôû mode 1, chæ khaùc tín hieäu
INTRA = 1 khi OBFA = 1 vaø INTE1 = 1 hoaëc IBFA = 1 vaø INTE2 = 1.
Caùc bit PC0 – PC2 laø caùc bit nhaäp xuaát döõ lieäu bình thöôøng tuøy
thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån.
Moät chuù yù caàn thieát laø khi nhoùm A ñöôïc caáu hình ôû mode 2 thì
nhoùm B chæ ñöôïc caáu hình ôû mode 0.
78
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
roài caùc ngoõ ra cuûa vi maïch giaûi maõ seõ ñöa ñeán CS\ cuûa caùc vi maïch
8255A.
Moät ví duï khi thieát keá vi xöû lyù giao tieáp vôùi 4 vi maïch 8255A:
Sô ñoà keát noái nhö hình veõ : (vi maïch 74139).
Trong ñoù, ñöôøng A0 vaø A1 ñöôïc noái vôùi 8255A nhö ñaõ trình baøy ôû
treân, ñöôøng A2, A3 ñöôïc ñöa vaøo vi maïch giaûi maõ 2 ñöôøng thaønh 4
ñöôøng ñeå löïa choïn vi maïch 8255A.
Töø ñoù, ta coù baûng ñòa chæ cuûa caùc vi maïch 8255A nhö sau :
IC A7 A6 A5 A4 A3 A2 A1 A0 Hex
8255A-1 0 0 0 0 0 0 0 0 00
0 0 0 0 0 0 1 1 03
8255A-2 0 0 0 0 0 1 0 0 04
0 0 0 0 0 1 1 1 07
8255A-3 0 0 0 0 1 0 0 0 08
0 0 0 0 1 0 1 1 0B
8255A-4 0 0 0 0 1 1 0 0 0C
0 0 0 0 1 1 1 1 0F
79
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Caùch keát noái töông töï nhö khi vi xöû lyù keát noái vôùi boä nhôù neân
ôû ñaây khoâng caàn trình baøy laïi.
Hình treân laø sô ñoà khoái cuûa heä thoáng. Chuùng ta coù theå löïa chon cheá
ñoä hoaït ñoäng cuûa caùc modules chöông trình cuûa 8051, ñoàng thôøi coù theå
söûa chöõa caùc Modules ñoù. Khi thay ñoåi chöông trình thì caàn phaûi thieát
laäp chöông trình cho caùc coång Port PA, PB cuûa 8255 trong maïch noái gheùp
ñeå chuùng hoaït ñoäng ôû cuøng moät cheá ñoä. Ta coù theå taäp hôïp vaø keát
noái caùc Modules cuûa mình vôùi caùc thieát bò, caùc boä keát noái ñeå thöïc
hieän caùc döõ lieäu phaùt sinh.
Ñoái vôùi ba Port trong 8255 vaø caùc bit cuûa chuùng coù theå hoaït ñoäng nhö
caùc chaân xuaát/nhaäp, ngoaøi ra chuùng coøn coù moät soá caùc phöông thöùc
hoaït ñoäng khaùc, cuï theå nhö:
Vôùi moãi moät cheá ñoä hoaït ñoäng nhö treân, chuùng ta vieát moät chöông
trình töông öùng ñeå phoái hôïp giöõa 8255 vaø 8051:
80
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
; Ai0Bo0X. asm
; Port A -> mode 0 input
; Port B -> mode 0 output
; Input data from port A and output it to prot B
pa equ 8000h ; prot a
pb equ pa+ 1 ; prot b
pc equ pa+ 2 ; prot c
cr equ pa+ 3 ; control register
org 00h
ajmp main
;------------------------------------
main:
mov sp,# 60h ; set stack pointer to address 60h
mov r5,# 10 ; delay 100ms for
call delay ; 8255 initialization
mov a,# 90h ; set port a to mode 0 input
mov dptr,# cr ; and port b to mode 0 output
movx @dptr, a
loop: ; periodically wait 2. 5s, get a data
; and dump it
mov r5,# 250 ; delay 2. 5s
call delay ;
mov a,# 0 ; clear port b for 20ms
mov dptr,# pb ;
movx @dptr, a ;
mov r5,# 2 ;
call delay ;
mov a,# 255 ; set port b for 20ms
mov dptr,# pb ;
movx @dptr, a ;
mov r5,# 2 ;
call delay ;
mov dptr,# pa ; input from port a
movx a,@ dptr
81
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
; Ai1Bo0. asm
; Port A -> mode 1 input
; Port B -> mode 0 output
; Input data from port A and output it to prot B
pa equ 8000h ; prot a
pb equ pa+ 1 ; prot b
pc equ pa+ 2 ; prot c
cr equ pa+ 3 ; control register
org 00h
ajmp main
org 13h
ajmp int1
;------------------------------------
82
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
main:
mov sp,# 60h ; set stack pointer to address 60h
setb it1 ; set int1 to negative edge trigger
setb ea ; enable hardware interrupt
setb ex1 ; enable int1
mov r5,# 10 ; delay 10ms for
call delay ; 8255 initialization
mov a,_____ ; set port a to mode 1 input
mov dptr,# cr ; and port b to mode 0 output
movx @dptr, a
mov a,_____ ; enable interrupt request
mov dptr,# cr ; for port a
movx @dptr, a
loop:
mov dptr,# pb ; output to port b
movx @dptr, a
jmp loop
;------------------------------------
int1:
mov r5,# 200 ; delay 200ms to make
call delay ; IBF visible
mov dptr,# pa ; input from port a
movx a,@ dptr
reti
;------------------------------------
delay: ; delay time = r5* 10ms
mov r6,# 50
$1: mov r7,# 100
$2: djnz r7,$ 2
djnz r6,$ 1
djnz r5, delay
ret
;------------------------------------
end
* Phöông thöùc hoaït ñoäng 3 : Ai0Bo1. asm
+ Port A: mode 0, Input
+ Port B: mode 1, Output
83
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
; Ai0Bo1. asm
; Port A -> mode 0 input
; Port B -> mode 1 output
; Input data from port A and output it to prot B
pa equ 8000h ; prot a
pb equ pa+ 1 ; prot b
pc equ pa+ 2 ; prot c
cr equ pa+ 3 ; control register
org 00h
ajmp main
org 03h
ajmp int0
;------------------------------------
main:
mov sp,# 60h ; set stack pointer to address 60h
setb it0 ; set int0 to negative edge trigger
setb ea ; enable hardware interrupt
setb ex0 ; enable int0
mov r5,# 10 ; delay 10ms for
call delay ; 8255 initialization
mov a,_____ ; set port a to mode 0 input
mov dptr,# cr ; and port b to mode 1 output
movx @dptr, a
mov a,_____ ; enable interrupt request
mov dptr,# cr ; for port b
movx @dptr, a
loop:
mov dptr,# pa ; input from port a
movx a,@ dptr
jmp loop
;------------------------------------
int0:
mov dptr,# pb ; output to port b
movx @dptr, a
reti
;------------------------------------
delay: ; delay time = r5* 10ms
mov r6,# 50
84
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
; Ai1Bo1. asm
; Port A -> mode 1 input
; Port B -> mode 1 output
; Input data from port A and output it to prot B
pa equ 8000h ; prot a
pb equ pa+ 1 ; prot b
pc equ pa+ 2 ; prot c
cr equ pa+ 3 ; control register
org 00h
ajmp main
org 03h
ajmp int0
org 13h
ajmp int1
;------------------------------------
main:
mov sp,# 60h ; set stack pointer to address 60h
setb it0 ; set int0 to negative edge trigger
setb it1 ; set int1 to negative edge trigger
setb ea ; enable hardware interrupt
setb ex0 ; enable int0
setb ex1 ; enable int1
85
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
86
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
BEGIN
GHI LEÄNH :
DTR, TxEN
ÑOÏC TRAÏNG
THAÙI:
DSR, TxRDy
SOÁ LIEÄU
GHI LEÄNH PHAÙT:
RTS
END
87
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
2 Lu ®å nhËn d÷ liÖu.
BEGIN
GHI LEÄNH :
DTR, A{RxEN,RTS
H̀NH 7.2
xxxxxxxxxxxxxxxxxxxxx
88
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
89
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
call delay
x2: in 01h
ani 81h
cpi 81h
jnz x2
ldax d
mov h,a
out 00h
call delay
mvi a,21h
out 01h
call delay
inr e
mvi a,03h
out 01h
call delay
x13: in 01h
ani 81h
cpi 81h
jnz x13
ldax d
mov c,a
out 00
call delay
mvi a,21h
out 01h
call delay
x3: in 01h
ani 81h
cpi 81h
jnz x3
90
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
out 01h
call delay
inr l
dcr c
jnz x4
;hien chu E de biet cham dut
lxi h,0a000h
mvi m,79h
hlt
y5: in 01h
ani 82h
cpi 82h
jnz y5
y6: in 01h
ani 82h
cpi 82h
91
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
jnz y6
y7: in 01h
ani 82h
cpi 82h
jnz y7
in 00h
mov c,a
y8: in 01h
ani 81h
cpi 81h
jnz y8
end
92
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
SYN SYN SOH HEADER STX TEXT ETX hay ETB BCC
93
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Trong caùch truyeàn khoâng ñoàng boä, döõ lieäu ñöôïc truyeàn ñi theo
töøng kyù tö. Kyù töï caàn truyeàn ñi ñöôïc gaén theâm moät bit ñaùnh daáu ôû
ñaàu ñeå baùo baét ñaáu kyù töï (start) vaø 1 hoaëc 2 bit ñaùnh daáu cuoái ñeå
baùo keát thuùc kyù töï (stop)ï. Vì cuoái kyù töï ñöôïc nhaän daïng rieâng bieät
neân noù coù theå ñöôïc truyeàn ñi theo phöông phaùp khoâng ñoàng boä, ñöôïc
theå hieän hình treân.
Hình 2. Khung cuûa moät kyù töï ñeå truyeàn khoâng ñoàng boä
Tuyø theo loaïi maõ ñöôïc choïn duøng trong khi truyeàn (Baudot, Ascii,… )
ñoä daøi cho maõ kyù töï coù theå laø 5 , 6 , 7, 8 bit. Tuyø theo heä thoáng truyeàn
tin, beân caïnh caùc bit döõ lieäu coøn coù theå tuyø choïn coù hay khoâng coù 1
bit parity ñeå kieåm tra loãi khi truyeàn coù theå tuyø choïn 1 hoaêc 2 bit stop,
nhöng baét buoäc phaûi coù moät bit start. Nhö vaäy ñeå truyeàn moät kyù töï
theo phöông phaùp khoâng ñoàng boä, ngoaøi kyù töï mang tin ta buoäc phaûi
truyeàn theâm ít nhaát 2 vaø nhieàu nhaát laø 4 bit phuï ñeå taïo ra khung cho kyù
töï ñoù, vì theá phöông phaùp naày tuy ñôn giaûn nhöng coù hieäu suaát khoâng
cao.
Toác ñoä truyeàn döõ lieäu theo phöông phaùp noái tieáp ñöôïc ño baèng
bit/s. Ngoaøi ra ngöôøi ta cuõng hay duøng ñôn vò baud, ñoù laø giaù trò ngòch
ñaûo cuûa thôøi gian giöõa caùc laàn thay ñoåi möùc tín hieäu, vôùi döõ lieäu chæ
coù hai möùc (0 vaø 1)ø vaø moãi thay ñoåi möùc tín hieäu chæ maõ hoùa moät
bit thì coù theå hieåu baud = bit/s, caùc toác ñoä truyeàn thöôøng gaëp trong thöïc
teá laø 11, 300, 600, 1200, 2400, 4800, 9600, 19200 baud.
94
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ñeå taïo ñieàu kieän deå daøng cho vieäc phoái gheùp ñöôøng truyeàn noái
tieáp vôùi heä vi xöû lyù vaø ñeå giaûm toái ña caùc maïch phuï theâm ôû beân
ngoaøi ngöôøi ta ñaõ cheá taïo ra caùc vi maïch toå hôïp côõ lôùn laäp trình ñöôïc
coù khaû naêng hoaøn thaønh phaàn lôùn caùc coâng vieäc caàn thieát trong khi
phoái gheùp. Ñoù laø caùc maïch thu phaùt di boä vaïn naêng IN8250/16450 cuûa
National vaø maïch thu phaùt ñoàng boä – dò boä vaïn naêng 8251 cuûa Intel.
95
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Trong phaàn naøy ta seõ giôùi thieäu maïch 8251A ñoù laø vi maïch USART coù
theå duøng cho caû hai kieåu truyeàn thoâng tin noái tieáp ñoàng boä, dò boä. Sô
ñoà chaân vaø sô ñoà thanh ghi ñöôïc trình baøy ôû hình 3
1. S¬ ®å ch©n vµ s¬ ®å khèi
c. Nhoùm tín hieäu geùp noái vôùi ñöôøng daây truyeàn – nhaän vaø KGN:
- TxEMTY thanh ghi ñeäm truyeàn roãng.
- TxR cho soá lieäu truyeàn.
- TxRDy baùo soá lieäu truyeàn ñaõ saün saøng.
- RxRDy baùo soá lieäu nhaän ñaõ saün saøng.
96
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
d. Nhoùm tín hieäu gheùp noái vôùi maùy phaùt xung nhòp.
- TxD : nhòp truyeàn.
- RxC : nhòp nhaän.
97
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
(a)
/CS TxD
/RD Thanh ghi truyeàn
/WR
C/D
D0 Thanh ghi ñeäm
D1 truyeàn
D2 RxD
Thanh
D3 ghi nhaän
D4
D5
D6 Thanh ghi ñeäm
D7 nhaän
CLK
RST
RxRDY Thanh ghi cheá ñoä Hình 3 : Sô
TxRDY ñoà chaân (a)
TxEMTy Thanh ghi leänh vaø caùc thanh
Vcc ghi (b) cuûa
GND
2 C¸c thanh ghi Thanh ghi traïng thaùi 8251A
ÔÛ hình 4a vaø hình 4b moâ taû boä thanh ghi cuûa 8251, goàm: thanh
/DSR /DTR /CTS /RTS Syn/BRK TxC RxC (b)
ghi traïng thaùi vaø thanh ghi ñieàu khieån.
98
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Hai thanh ghi treân coù cuøng moät ñòa chæ vôùi A0 = 1, moät duøng ñeå
ghi (/WR) leänh ñieàu khieån vaø moät ñeå ñoïc (/RD) traïng thaùi. Hai thanh ghi
ñeäm soá lieäu ghi vaø ñoïc coù cuøng moät ñòa chæ (A0 = 0) vaø duøng ñeå ghi
vaø ñoïc soá lieäu caàn truyeàn vaø nhaän cuûa KGN. Caùc leänh cho caùc thanh
ghi treân nhö baûng sau:
99
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
D7 D6 D5 D4 D3 D2 D1 D0
100
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
b Lêi lÖnh
D7 D6 D5 D4 D3 D2
D1 D0
EH IR RTS ER SBRK RxEN DTR TxEN
Ngaét meàm
1= xoaù caùc thanh ghi
H́nh 4b
c C¸c thanh ghi tr¹ng th¸i
101
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
D7 D6 D5 D4 D3 D2 D1 D0
102
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
103
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
RxD RxD
DTR\ DTR\
8251 8251
VXL1 DSR\ DSR\ VXL2
RTS\ RTS\
CTS\ CTS\
H́nh 5
Muoán 8251 hoaït ñoäng ñuùng cheá ñoä (khoâng ñoàng boä), toác ñoä (300,
600, 1200, 2400, 4800, 9600bps hoaëc lôùn hôn), soá bit tin (5, 6, 7, 8) coù kieåm
tra chaün hoaëc leû vaø xaùc ñinh soá bit döøng (1; 1,5; 2 bit) ta phaûi ghi lôøi
ñieàu khieån cheá ñoä vaøo thanh ghi ñieàu khieån cuaû 8251.
Ví duï:
Moät 8251 coù ñiaï chæ goác CS\ vôùi 0FFF0h, caàn trao ñoåi thoâng tin 8 bit,
toác ñoä x16 khoâng coù kieåm tra Parity chaün leû, 2bit stop.
Lôøi ñieàu khieån laø: 1 1 0 0 1 1 1 0
104
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Begin
03h AH
AH - 1
Delay
sai
AH = 0 ?
Ñuùng
Delay
End
H́nh 6
105
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
2 TruyÒn th«ng tin nèi tiÕp gi÷a Kit VXL vµ m¸y tÝnh
Giaûi
A1–A maõ ñiaï CS \
chæ
11 GND
D 0 –D 7 D 0 – D7
Reset TxD
Rest 5
CLK O O O O O
RxD O O O O
A0 CLK
6 9
RD \ DTR
C/D\
Xöû ngaét Coång COM
WR \ cuûa maùy
(8259A hai RD \ tính
möùc)
DSR\
WR\ Hình 7
INTR
VXL 8251
INTA \ RTS \
PhÇn ii
c¸c m¹ch øng dông
TxD
106
CTS\
RxRDy
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
ch¬ng tr×nh
gi¶i quyÕt bµi to¸n tæng hîp
Ch¬ng tr×nh vÝ dô díi ®©y minh ho¹ viÖc ghÐp nèi vi xö lý víi Ram
ngoµi, Rom ngoµi, 8255, vµ hiÓn thÞ LCD gi¶ sö trong Ram ngoµi ®·
chøa d÷ liªu ®Ó hiÓn thÞ ra LCD dßng ch÷ “BAI TAP LON VI XU LY”.
D÷ liÖu nµy n»m ë ®Çu vïng ®Þa chØ cña Ram ngoµi.Cho hiÓn thÞ ra
LCD trªn 1 dßng víi cì ch÷ 5x10, dßng ch÷ ch¹y tõ tr¸i qua ph¶i
Tuy nhieân taïi moät thôøi ñieåm chæ coù 1 IC nhôù ñöôïc truy xuaát
neân duøng caùc ñöôøng ñòa chæ A13, A14, A15 ñeå phaân bieät. Laáy
A15, A13, A14 noái tôùi 3 ñaàu vaøo IC giaûi maõ 74138 (A,B,C). Caùc
ngoõ ra Y0, Y1,Y2, Y3 laàn löôït ñöôïc noái tôùi CE cuûa Rom,Ram, CS
cuûa 8255. Khi Yi = 0 thì IC ñoù ñöôïc choïn:
A13, A14, A15 = 0 choïn Rom
A13 = 1, A14, A15 = 0 choïn Ram
A13 = 0, A14 = 1, A15 = 0 choïn 8255
Keát noái maïch choát:
- Chaân ALE (chaân 30) cuûa 8951 keát noái vôùi chaân G cuûa 74373.
Caùc ñöôøng cuûa Port0 noái vôùi caùc ñöôøng töø Do ñeán D7 cuûa
74373. Caùc ñöôøng tín hieäu (Q0Q7 ) cuûa 74373 vaø caùc ñöôøng port
2 (P2.0 P2.7) ñöôïc noái tôùi caùc ñöôøng ñòa chæ cuûa ROM vaø RAM
(A0 A12 ) coøn caùc ñöôøng döõ lieäu töø port 0 ñöôïc noái tôùi caùc
ñöôøng döõ lieäu cuûa ROM vaø RAM, 8255 (D0 D 7 ).
107
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
- Trong moãi chu kyø maùy seõ coù 2 xung ALE. Khi ALE ôû möùc
logic cao (G = 1) vaø OC\ = (0) thì ngoõ ra Qo Q7 töông öùng vôùi ngoõ
vaøo D, moïi söï thay ñoåi ôû ngoõ vaøo ñeàu aûnh höôûng ñeán ngoõ ra,
luùc naøy Port 0 töông öùng laø ñöôøng ñòa chæ Ao A7. Khi ALE
xuoáng möùc thaáp (G = 0), ngoõ ra Q seõ giöõ nguyeân traïng thaùi tröôùc
ñoù baát chaáp ngoõ vaøo D, luùc naøy caùc ñöôøng Port 0 töông öùng laø
caùc ñöôøng döõ lieäu Do D7.
* Tín hieäu PSEN\ cuûa 8951 (chaân 29) noái tôùi 0E cuûa Rom. Caùc
ñöôøng (RD,WR) noái ñeán RD, WR cuûa Rom vaø 8255.
Hình thaønh maïch giaûi maõ ñòa chæ döïa treân baûng ñoà boä nhôù
sau:
IC A A A A A A A A A A A A A A A A hex
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Rom 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0000 H
8K 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1FFFH
Ram 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 2000 H
8K 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3FFFH
8255 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4000 H
0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 4003 H
ROM RAM
7437 8Kx
8255
8Kx8
8
89C51
74138 LCD
108
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
SD_ROM EQU 0000h ; dia chi cua ROM tu 0000h den 1FFFh
SD_RAM EQU 2000h ; dia chi cua RAM tu 2000h den 3FFFh
FIST_NUM EQU 2000h
LAT_NUM EQU 200Eh
; khoi dong bo dinh thoi 8 bit che do 2
MOV TMOD,#02h ; che do tu nap lai 8 bit
MOV TH0,#00h ; TH0 chua gia tri 0
;
;
; Dinh nghia cac chan
DATA_PORT EQU P0
LO_ADDR_PORT EQU P0 ; dia chi phan thap
HI_ADDR_PORT EQU P2 ; dia chi phan cao
LCD_RS EQU P1.2
LCD_WR EQU P1.3
LCD_E EQU P1.4
SRAM_RD EQU P1.5
;
;
; khoi tao cho 8255A
MOV DPTR,#4003h ; dia chi thanh ghi lenh cua 8255 la 4003h
MOV A,#80h ; cac port cua 8255 la port xuat
MOVX @DPTR,A ; xuat tu dieu khien ra 8255
;
;
; thiet lap che do ban dau cho LCD
SETB LCD_E
CLR LCD_RS
CLR LCD_WR
MOV DPTR,#4000h ; dia chi portA cua 8255 la 4000h
MOV A,#0Fh
MOVX @DPTR,A ; gui lenh hien thi con tro cho LCD
CLR LCD_E ; cho phep LCD nhan lenh
NOP
NOP
NOP
SETB LCD_E ; treo LCD
MOV A,#34h
MOVX @DPTR,A ; hien thi tren 1 dong, co chu 5x10
CLR LCD_E
NOP
NOP
NOP
109
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
SETB LCD_E
; = = = = = = = CHUONG TRINH XUAT KI TU TU ROM RA LCD
ORG 0000h
DATA_IN_LCD:
CJNE FIST_NUM,LAST_NUM,HIENTHI_LCD
SETB LCD_RS ; cho phep LCD nhan du lieu
MOV LO_ADDR_PORT,LOW(FIST_NUM) ; dua dia chi phan thap vao
MOV HI_ADDR_PORT,HIGH(FIST_NUM) ; dua dia chi phan cao vao
MOV DATA_PORT,0FFh ; xoa port du lieu
CLR SRAM_CS
CLR SRAM_RD
MOV A,DATA_PORT ; dua du lieu vao thanh chua A
SETB LCD_RS
CLR LCD_RW
MOVX @DPTR,A ; dua ki tu vao bo nho LCD
CLR LCD_E ; cho phep LCD nhan du lieu
NOP
NOP
NOP
SETB LCD_E
INC FIST_NUM ; tang dia chi du lieu len 1
JMP DATA_IN_LCD
HIENTHI_LCD:
MOV R7,#100 ; lap lai 100 lan
loop:
CLR LCD_RS
CLR LCD_WR
MOV DPTR,#4000h ; dia chi portA cua 8255 la 4000h
MOV A,#18h ; ki tu chay tu phai qua trai
MOVX @DPTR,A ; gui lenh hien thi con tro cho LCD
CLR LCD_E ; cho phep LCD nhan lenh
NOP
NOP
NOP
SETB LCD_E ; treo LCD
SJMP TRE ; tre 256us de quan sat
DJNZ R7,LOOP
TRE:
SETB TR0
loop1:
JNB TF0,loop1
CLR TF0
RET
110
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
END
111
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
øng dông
vi ®iÒu khiÓn trong d©y chuyÒn c«ng nghiÖp
I. §Æt vÊn ®Ò
Coù theå öùng duïng ngay nhöõng gì ñöôïc hoïc vaøo thöïc teá laø
ñieàu maø moãi sinh vieân chuùng em mong muoán. Trong qua trình hoïc
taäp vaø tìm hieåu veà moân hoïc Vi Xöû Ly,ù chuùng em nhaän thaáy ñaây
laø moät moân hoïc hay vôùi nhieàu öùng duïng trong SX kinh doanh. Hieän
nay, PLC vôùi nhöõng tính naêng noåi troäi neân ñöôïc söû duïng chuû yeáu
trong caùc daây chuyeàn coâng nghieäp; nhöng vôùi ñieàu kieän cuûa nöôùc
ta, giaù thaønh cuûa PLC laø raát cao. Ñeå ñaåy maïnh quaù trình töï ñoäng
hoaù phuø hôïp vôùi ñieàu kieän ñaât nöôùc, chuùng em nhaäân thaáy raèng
Vi xöû lyù hoaøn toaøn coù theå thay theá ñöôïc PLC trong caùc daây
chuyeàn SX vöøa vaø nhoû.
Ngaøy nay cuøng vôùi söï phaùt trieån cuûa caùc ngaønh khoa hoïc kyõ
thuaät, kyõ thuaät ñieän töû ma øtrong ñoù laø kyõ thuaät soá ñoùng vai troø
quan troïng trong moïi lónh vöïc khoa hoïc kyõ thuaät, quaûn lí, coâng
nghieäp töï ñoäng hoùa, cung caáp thoâng tin…. do ñoù chuùng ta phaûi
naém baét vaø vaän duïng noù moät caùch coù hieäu quaû nhaèm goùp
phaàn vaøo söï phaùt trieån neàn khoa hoïc kyõ thuaät theá giôùi noùi chung
vaø trong söï phaùt trieån kyõ thuaät ñieän töû noùi rieâng.
Xuaát phaùt töø vieäc tìm hieåu caùc nhaø maùy vaø tham quan caùc
phöông thöùc saûn xuaát cuûa nhieàu doanh nghieäp, chuùng em ñaõ ñöôïc
thaáy nhieàu khaâu ñöôïc töï ñoäng hoùa trong quaù trình saûn xuaát. Tuy
nhieân ñoái vôùi nhöõng doanh nghieäp vöøa vaø nhoû thì vieäc töï ñoäng
hoùa laïi hoaøn toaøn chöa ñöôïc aùp duïng maø vaãn coøn söû duïng nhaân
coâng.
Töø nhöõng kieán thöùc thöïc teá vaø khaû naêng, kieán thöùc cuûa
mình, chuùng em nhaän thaáy coù theå söû duïng Vi xöû lyù ñeå goùp
phaàn naâng cao khaû naêng töï ñoäng hoaù cuûa caùc cô sôû SX vöøa vaø
nhoû; coù theå taêng hieäu suaát lao ñoäng leân gaáp nhieàu laàn, ñoàng
thôøi ñaûm baûo ñöôïc ñoä chính xaùc cao.
Trong phaïm vi moät baøi taâp lôùn, chuùng em khoâng theå trình baøy
taát caû moïi yù töôûng vaø caùc saûn phaûm cuûa mình. Maïch chuùng em
thieát keá coù theå öùng duïng trong khaâu cuoái cuûa moät chu trình saûn
xuaát.
112
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
III) ThiÕt kÕ
A) Khèi c¶m biÕn:
A1. HÖ thèng ph¸t:
§Ó cã thÓ nhËn biÕt ®îc s¶n phÈm cã rÊt nhiÒu ph¬ng ph¸p nh siªu
©m, laser hay hång ngo¹i mçi ph¬ng ph¸p cã u vµ nhîc ®iÓm riªng. Víi u
®iÓm gi¸ thµnh vµ dÔ dµng thiÕt kÕ vµ thi c«ng ph¬ng ph¸p c¶m biÕn
b»ng hång ngo¹i ®îc chän. Tuy nhiªn ph¬ng ph¸p nµy cho ta ®é æn ®Þnh
vµ tin cËy kh«ng cao.
113
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Víi hång ngo¹i cã rÊt nhiÒu c¸ch cã thÓ ®îc sö dông ®Ó c¶m biÕn.
Víi c¸c s¶n phÈm cã ®é bãng cao cã thÓ øng dông ®Æc tÝnh ph¶n x¹ cña
hång ngo¹i ®Ó c¶m biÕn, b»ng ph¬ng ph¸p nµy chóng ta sÏ bè trÝ cÆp
thu ph¸t ë cïng mét phÝa, rÊt dÔ cho l¾p ®Æt, nhng víi c¸c s¶n phÈm cã
®é ph¶n x¹ kh«ng cao thi ta sÏ bè trÝ cÆp thu ph¸t ë hai phÝa, ph¬ng ph¸p
nµy cho chóng ta ®é tin cËy cao h¬n tuy nhiªn khi l¾p ®Æt thiÕt bÞ sÏ
phøc t¹p h¬n.
Ngay khi cung cÊp ®iÖn lÇn ®Çu cho m¹ch nµy, ®iÖn ¸p trªn tô C1
b»ng 0V nªn m¹ch ë tr¹ng th¸i ban ®Çu nh sau: R = 0, S = 1 Q cña FF ë
møc logic cao Q bï cña FF ë møc logic thÊp (0V) dÉn ®Õn T1 t¾t møc
®iÖn ¸p ra ë ch©n 3 ë møc cao. Tô C1 b¾t ®Çu n¹p ®iÖn qua ®iÖn trë
R1, R2 cho ®Õn khi ®iÖn ¸p trªn C1 t¨ng ®Õn trÞ sè 2/3Vcc ( lóc ®iÖn
114
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
¸p trªn tô C1 t¨ng qu¸ Vcc/3, m¹ch so s¸nh 2 ®æi tr¹ng th¸i R = S = 0 nªn FF
vÉn gi÷ nguyªn tr¹ng th¸i cò ch©n 3 vÉn ë møc cao) ë thêi ®iÓm nµy
m¹ch so s¸nh 1 ®æi tr¹ng th¸i nªn R = 1, S = 0 FF ®æi tr¹ng th¸i tøc lµ Q bï
ë møc cao ph©n cùc cho T1 dÉn b·o hoµ lµm cho ch©n 3 chuyÓn tr¹ng
th¸i vÒ møc thÊp, tô C1 phãng ®iÖn qua R1, ch©n 7 vµ T1cho ®Õn khi
®iÖn ¸p trªn tô gi¶m xuèng cßn 1/3Vcc m¹ch so s¸nh 2 ®æi tr¹ng th¸i S =
1, R = 0 Q bï cña FF chuyÕn lªn møc ®iÖn ¸p cao T1 t¾t tô C1 l¹i b¾t
®Çu n¹p ®Õn ®iÖn ¸p 2/3Vcc. Chu tr×nh cø lÆp ®i lÆp l¹i t¹i ch©n 3 sÏ
t¹o dao ®éng xung vu«ng. V× R2 rÊt lín h¬n R1 nªn thêi gian n¹p lín h¬n
rÊt nhiÒu thêi gian phãng nªn mét chu kú cña bé ®Þnh thêi t = R2.C1 =
0,01 s VËy tÇn sè ph¸t lµ f = 1/t = 100Hz.
A2 HÖ thèng thu:
Khèi 1 cã nhiÖm vô t¹o dao ®éng theo tÝn hiÖu cña Diot thu hång
ngo¹i, läc vµ khuÕch ®¹i s¬ bé tÝn hiÖu thu ®îc.
Nh vËy khèi mét sÏ gåm c¸c linh kiÖn: Diot thu D2, bé khuÕch ®¹i thuËt
to¸n (IC1), tô C2, C3, ®iÖn trë R4, R5.
115
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Trong ®ã IC1, ®iÖn trë R4, tô C2 ®ãng vai trß lµ bé läc tÝch cùc th«ng
thÊp mét cùc dïng håi tiÕp ©m.
Khèi 2 cã nhiÖm vô khuÕch ®¹i tÝn hiÖu gåm IC 2 , tô C4, R6, R7.
Víi hÖ sè khuÕch ®¹i tÝnh theo c«ng thøc ;
R6
Ku 1
Z
A2 Ho¹t ®éng ph¸t hiÖn s¶n phÈm cña khèi C¶m biÕn
Cô thÓ nh sau
116
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Vµo
Ra
_ Nh vËy ñoái töôïng ®i vµo vµ ®i ra theo 2 chu tr×nh kh¸c h¼n nhau,
ta sö dông sù kh¸c biÖt nµy ®Ó lËp tr×nh cho Vi diÒu khiÓn nhËn ra
chóng.
Vi ®iÒu k h iÓn
89c 51
117
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
M« t¶:
_ 89C51 ®a ra 8 ch©n cña Port2, 4 bit ®Çu lµ 4 bÝt cao, 4 bÝt sau
lµ 4 bÝt thÊp. 4 bÝt cao vµ 4 bÝt thÊp ®îc gi¶i m· ®éc lËp qua IC gi¶i
m· 74LS47. TÝn hiÖu vµo IC 74LS47 qua c¸c ch©n A,B,C,D, vµ ra ë c¸c
ch©n OA, OB, OC, OD, OE, OF, OG. §Çu ra 74LS47 nèi víi LED 7
thanh ®Ó hiÓn thÞ sè thËp ph©n.
KÕt qu¶ thu ®îc lµ trªn LED 7 thanh ta thÊy ®îc gi¸ trÞ thËp ph©n cña
tÝn hiÖu ®Çu ra 89C51.
_ Trªn giao diÖn cña khèi hiÓn thÞ cßn cã 5 LED b¸o hiÖu tr¹ng th¸i
lµm viÖc cña hÖ thèng:
+Led 1: saùng baùo hieäu saûn phaåm ñi vao.
+Led 2: saùng baùo hieäu saûn phaåm ñi ra.
+Led 3: s¸ng chæ chieàu quay cuûa ñoäng cô (quay phaûi).
+Led 4: s¸ng chæ chieàu quay cuûa ñoäng cô (quay traùi).
+Led 5: saùng baùo hieäu relay ñoùng.
C¸c Led nµy ®Òu ®îc lÊy tÝn hiÖu ®iÒu khiÓn trùc tiÕp tõ Vi §iÒu
KhiÓn 89C51.
_ S¬ ®å khèi.
§iÒu khiÓn
Vi ®iÒu ®éng c¬
khiÓn chiÒu quay
®éng c¬
118
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
_ M« t¶ ho¹t ®éng :
_ §éng c¬ ®îc lùa chän trong m¹ch øng dông nµy lµ ®éng c¬ 1 chiÒu.
§éng c¬ quay khi ®iÖn ¸p ®Æt vµo nã tõ 5V-12V. ChiÒu quay cña ®éng
c¬ thay ®æi khi ®æi vÞ trÝ 2 cùc ®iÖn ¸p ®Æt vµo.
119
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
D Khèi xö lý
D1 S¬ ®å ghÐp nèi:
U 1
8 1 0
7 P 1 .7 R XD 1 1
6 P 1 .6 TXD 3 0
5 P 1 .5 A L E /P 2 9
4 P 1 .4 PSEN 1 6
3 P 1 .3 W R 1 7
P 1 .2 R D
Khèi c¶m 2
1 P
P
1 .1
1 .0 P 2 .7
2 8
2 7
biÕn 15 P 2 .6 2 6
14
13
T1
T0
P
P
2 .5
2 .4
2
2
5
4
Khèi
IN T 1 P 2 .3
VC C _BAR
12
IN T 0 P 2 .2
2
2
3
2
HiÓn
P 2 .1
9
R ESET
P 2 .0
2 1
thÞ
3 2
P 0 .7 3 3
18 P 0 .6 3 4
C 2 X2 P 0 .5 3 5
Y 1 P 0 .4 3 6
C AP 19 P 0 .3 3 7
X1 P 0 .2 3 8
31 P 0 .1 3 9
R 1 C R Y STAL E A /V P P 0 .0
R E S IS T O R
C 3 C 4 89C 51
120
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
töôïng ®i vµo hay ®i ra theo 2 chu tr×nh kh¸c nhau, nhê ®ã mµ ph©n
biÖt ®îc. Sau khi ®îc nèi víi Vi ®iÒu khiÓn, c¸c th«ng tin vÒ 2 qu¸ tr×nh
nµy ®îc ®a vµo khèi xö lý nhËn biÕt vµ ra quyÕt ®Þnh cho khèi chÊp
hµnh.
D3.1 M« t¶
_ H·y xÐt chu tr×nh ñoái töôïng ®i vµo. C¸c ch©n P1.0, P1.1 sÏ lÇn lît
tr¶i qua 4 giai ®o¹n sau:
P1.0 =0; P1.1=1 (§îi) P1.0 =1; P1.1=0 (Vµo 1) (®Ìn 1 bÞ
ch¾n)
P1.0 =1; P1.1=1 (Vµo 2) (2 ®Ìn ®Òu chÞ ch¾n) P1.0
=0 ; P1.1=1 (Vµo 3) (®Ìn 1 th«ng, ®Ìn 2 ch¾n) P1.0 =0; P1.1=0
(Vµo 4) (2 ®Ìn cïng th«ng).
VËy s¶n phÈm vµo th× hÖ thèng lÇn lît chuyÓn tr¹ng th¸i: §îi
Vµo1 Vµo 2 Vµo 3 Vµo 4
_Mçi 1 giai ®o¹n sÏ t¬ng øng víi 1 thñ tôc trong ch¬ng tr×nh. Ch¬ng
tr×nh chÝnh sÏ lÇn lît kiÓm tra tÝn hiÖu Bé c¶m biÕn ®a vµo cã lÇn lît
121
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
tr¶i qua c¸c thñ tôc nµy kh«ng, trªn c¬ së ®ã Vi ®iÒu khiÓn ®a ra quyÕt
®Þnh.
ÖÙng víi mçi ñoái töôïng ®i vµo, Vi ®iÒu khiÓn sÏ t¨ng gi¸ trÞ thanh
ghi sè lîng lªn 1 ®¬n vÞ. ÖÙng víi mçi ñoái töôïng ®i ra, Vi ®iÒu khiÓn
sÏ gi¶m gi¸ trÞ thanh ghi sè lîng 1 ®¬n vÞ.
122
BEGIN
§
0,0
S
S §
1,0 Vµo 1
S §
0,1 Ra 1 1,0
0,1
§
1,0
§
0,1
S
S
1,1
1,1 Vµo 2
§
Ra 2
§ 1,1
1,1
§
§ 1,1
1,1
S
S
S
S 0,1
1,0
Vµo 3
Ra 3 §
§
0,1
1,0
§
§ 0,1
1,0
S
S
S
S 0,0
0,0
Ra 4 Vµo 4 §
§
END
123
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
BEGIN
Wait
Out In
Decrease Increase
Repeat
124
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng tr×nh:
#include <sfr51.inc>
;===============================================?======
;======================Khaibao==========================
;====================================================== Vao
equ 80h ; Bit bao hieu sp vao (P0.0, Pin39)
Ra equ 81h ; Bit bao hieu sp ra (P0.1, Pin38)
Divao equ 82h ; Bit dong role cho sp di vao (P0.2, Pin37)
Dira equ 83h ; Bit dong role cho sp di ra (P0.3, Pin36)
Dong equ 84h ; Bit dong role de rot bia (P0.4, Pin35)
Soluong equ 00h ; R0 la thanh ghi soluong
;
======================================================;====
===================Thu tuc wait======================
;==================================================?=== setb
divao
mov p1,#FFh ; Dat gia tri ban dau cho thanh ghi P1 la FF
nop
mov a,p1 ; Lay tin hieu dua vao
mov b,a ; Cat noi dung P1 vao thanh b
xrl a,#FFh ; P1 co khac voi gia tri khoi tao ban dau
;khong
jz wait ; Nhay toi wait neu khong khac
125
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
sjmp wait ; Quay tro lai urang thai cho neu khong phai
;hai truong hop tren
;======================================================
;======================Qua trinh vao======================
;======================================================
vao1:
mov a,p1 ; Lay mau tin hieu vao
mov b,a ; Luu gia tri mau
xrl a,#FEh ; Con la 'vao1' khong?
jz vao1 ; Cho trang thai tiep theo neu van con la 'vao1'
vao2:
mov a,p1 ; Lay mau tin hieu vao
mov b,a ; Luu gia tri mau
xrl a,#FCh ; con la 'vao2' khong?
jz vao2 ; Cho trang thai tiep theo neu van la 'vao2'
vao3:
mov a,p1 ; Lay mau tin hieu vao
mov b,a ; Luu gia tri mau
xrl a,#FDh ; Con la 'vao3' khong?
126
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
vao4:
setb vao ; Dat bit bao hieu vao
mov R6,#FFh ; Khoi tao gia tri cho thu tuc tre
mov R7,#FFh
Lcall Tre ; Tre de quan sat
clr Vao ; Xoa bit bao hieu vao
mov R6,#FFh ; Khoi tao gia tri cho thu tuc Tre
mov R7,#FFh
lcall Tre ; Tre de rot bia
clr Dong
setb dira
ljmp wait
tiepvao:
ljmp wait ; Cho qua trinh moi
;
======================================================;====
===================Qua trinh ra======================
;======================================================
ra1:
mov a,p1 ; Lay mau tin hieu vao
127
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
ra2:
mov a,p1 ; Lay mau tin hieu vao
mov b,a ; Luu gia tri mau
xrl a,#FCh ; Con la 'ra2' khong?
jz ra2 ; Cho trang thai tiep theo neu van la 'ra2'
ra3:
mov a,p1 ; Lay mau tin hieu vao
mov b,a ; Luu gia tri mau
xrl a,#FEh ; Con la 'ra3' khong?
jz ra3 ; Cho trang thai tiep theo neu van la 'ra3
ra4:
setb Ra ; Dat bit bao hieu ra
mov R6,#FFh ; Khoi tao gia tri cho thu tuc Tre
mov R7,#FFh
lcall Tre ; Tre de quan sat
128
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
cjne R0,#00h,tiepra
clr dira
mov R6,#FFh ; Khoi tao gia tri cho thu tuc Tre
mov R7,#FFh
lcall Tre ; Tre de dong co dung quay, dao chieu quay
setb divao
ljmp wait
tiepra:
ljmp wait ; Cho qua trinh moi
;======================================================
;===================Thu tuc Tre==========================
;====================================================== Tre:
DJNZ R6,Tre
NOP
DJNZ R7,Tre
REt
;
======================================================;====
===================Hienthi=========================
;======================================================
hienthi:
mov A,soluong ; chuyen noi dung thanh thanh ghi soluong vao
;thanh tong
mov B,#10
Div AB
SWAP A
ADD A,B
MOV p2,A
RET
END
129
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
PhÇn I:
Tæng quan vÒ c¸c thiÕt bÞ Vi Xö Lý
Ch¬ng 1 :
Giíi thiÖu chung vÒ chÝp AT89C51
I. Giíi thiÖu AT89C51....................................................................................................................1
I.1 M« t¶ c¸c ch©n...........................................................................................................2
I.2 C¸c chÕ ®é ®Æc biÖt...............................................................................................5
I.2.1 ChÕ ®é nghØ......................................................................................................5
I.2.2 ChÕ ®é nguån gi¶m............................................................................................6
I.3 C¸c bÝt kho¸ bé nhí ch¬ng tr×nh...............................................................................6
I.4 Tæ chøc bé nhí...........................................................................................................8
Ch¬ng 2:
bé nhí ngoµi (RAM, ROM) - c¸ch ghÐp víi VXL
Ch¬ng 3
Giíi thiÖu vÒ ic chuyÓn ®æi ad – da
c¸ch ghÐp nèi chóng víi vi xö lý
Ch¬ng 4
Giíi thiÖu mµn h×nh tinh thÓ láng LCD
c¸ch ghÐp nèi víi vi xö lý
I/ KiÕn thøc chung vÒ LCD (Liquid Crystals Display)..........................................................41
1.Mµn h×nh tinh thÓ láng (LCD) lµ g× vµ ph¹m vi øng dông?...................................41
2. C¬ së vËt lý cña LCD................................................................................................42
II/ XÐt LCD cô thÓ Hitachi HD44780......................................................................................44
1. CÊu tróc cña LCD.....................................................................................................44
1a. Giíi thiÖu s¬ ®å ch©n LCD ...............................................................................44
1b. CÊu tróc bé nhí trong LCD..................................................................................47
2. TËp lÖnh cña LCD....................................................................................................47
2a. Kh¶ n¨ng hiÓn thÞ cña LCD................................................................................47
2b. TËp lÖnh cña LCD..............................................................................................48
3. C¸c øng dông hiÓn thÞ trªn LCD...............................................................................51
130
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
Ch¬ng 5:
giíi thiÖu c¸c ic hç trî vµo ra ( 8255 - 8251)
c¸ch lËp tr×nh c¸c cæng
phÇn ii
m¹ch øng dông
131
b¸o c¸o bµi tËp lín m«n Vi xö lý - nhãm I - Líp §T11.K45
132