LUAÂÄN VAÊN TOÁT NGHIEÄP
Chöông I:
CHÖÔNG DAÃN NHAÄP
1
LUAÂÄN VAÊN TOÁT NGHIEÄP
2
I. ÑAËT VAÁN ÑEÀ:
Khi nhu caàu hoïc taäp ngaøy caøng cao thì thieát bò, phöông tieän daïy hoïc caøng ñoùng
vai troø quan troïng, noù giuùp ngöôøi thaày dôõ vaát vaû trong vieäc truyeàn thuï kieán thöùc,
giuùp ngöôøi hoïc nhanh choùng tieáp thu, ngoaøi ra coøn ñeå minh hoïa, chöùng thöïc moât
caùch cuï theå nhöõng baøi hoïc mô hoà tröøu töôïng.
Trong baøi naøy, ngöôøi thöïc hieän muoán ñeà caäp ñeán moân hoïc vi xöû lyù, laäp trình vi
xöû lyù, moät moân hoïc mang yù nghóa thieát thöïc trong xaõ hoäi maø quaù trình coâng nghieäp
hoùa, hieän ñaïi hoùa dieãn ra töøng ngaøy. Khi hoïc moân naøy, ngöôøi hoïc khoâng chæ ñöôïc
hoïc veà caáu truùc vi xöû lyù caû phaàn cöùng laãn phaàn meàm, caùch keát noái vôùi caùc IC ngoaïi
vi 8255, 8279, … maø coøn phaûi söû duïng thaønh thaïo Kit vi xöû lyù 8085,…
Khi vieát moät chöông trình treân Kit vxl 8085 vaø ñeå kieåm nghieäm chöông trình
ñoù thì ngöoøi hoïc phaûi qua caùc böôùc :
Böôùc 1: Xaùc ñònh muïc ñích yeâu caàu cuûa chöông trình.
Muïc ñích, yeâu caàu ñöôïc xaùc ñònh töø ñeà baøi, hoaëc moät nhu caàu thöïc teá, ñaây laø
muïc ñích chung cuûa chöông trình. Ñeå thöïc hieän muïc ñích chung naøy, coù theå
seõ phaûi qua nhieàu böôùc, maø moãi böôùc laø moät muïc ñích cuï theå môùi, ñöôïc giaûi
quyeát baèng moät chöông trình nhoû hôn, phaùt sinh trong giai ñoaïn vieát löu ñoà.
Böôùc 2: Veõ löu ñoà
Löu ñoà duøng ñeå trình baøy caùch giaûi quyeát vaán ñeà, thöôøng thì ngoân ngöõ duøng
trong löu ñoà khoâng phaûi laø moät ngoân ngöõ maùy xaùc ñònh naøo, löu ñoà thöïc chaát
ñeå giuùp ngöôøi thaûo chöông chia nhoû moät chöông trình lôùn. Töø löu ñoà toång
quaùt, coù theå veõ ra löu ñoà chi tieát.
Böôùc 3: Vieát chöông trình baèng ngoân ngöõ gôïi nhôù(ngoân ngöõ Assembler).
Böôùc 4: Chuyeån sang maõ maùy.
Böôùc 5: Nhaäp maõ maùy vaøo Kit baèng phím.
Böôùc 6: Chaïy thöû chöông trình vaø kieåm tra keát quaû.
Moät chöông trình ñöôïc vieát phaûi ñöôïc chaïy thöû vaø kieåm tra keát quaû, keát quaû
phaûi ñuùng trong moïi tröôøng hôïp cho pheùp (ñieàu kieän ñaët ra tröôùc) cuûa chöông trình,
vaø töø keát quaû kieåm tra maø phaùn ñoaùn, nhaän ñònh loãi ñeå söûa chöông trình töø ñaâu, coù
khi phaûi söûa laïi caû löu ñoà.
Trong caùch laøm treân, ta nhaän thaáy coù nhöõng khoù khaên rieâng sau:
Quaù trình dòch töø ngoân ngöõ gôïi nhôù sang maõ maùy (böôùc 4), ñoøi hoûi söï
quen thuoäc baûng tra maõ, neáu khoâng vieäc naøy chieàm nhieáu thôøi gian, vaø vieäc kieåm
tra laïi cuõng chieám khoâng ít thôøi gian. Taïi nhöõng leänh jump, nhöõng leänh call, caàn
phaûi xaùc ñònh ñòa chæ cuï theå, chính xaùc cuûa oâ nhôù roài môùi xaùc ñònh ñöôïc leänh
jump. Vieäc naøy chæ hoaøn taát khi chöông trình ñöôïc dòch sang maõ maùy gaàn nhö
ñaày ñuû.
ÔÛ giai ñoaïn nhaäp maõ maùy (böôùc 5), ñeå nhaäp nhanh thì phaûi nhôù vò trí
phím, phaûi nhaäp chính xaùc ñeå traùnh thôøi gian doø ñeå söûa moät chöông trình nhaäp
sai. Ñeå nhaäp moät byte caàn goõ 3 phím vaø phaûi ñoái chieáuqua laïi giöõa baûn dòch
chöông trình, noäi dung hieån thò treân caùc led 7 ñoaïn cuøng vôùi ñòa chæ oâ nhôù vaø baøn
phím.
Ñoái vôùi nhöõng ai trong giai ñoaïn khôûi ñaàu hoïc laäp trình vi xöû lyù, thì 2
vieäc treân luoân xaåy ra nhaàm laãn gaây maát nhieàu thôøi gian voâ ích.
LUAÂÄN VAÊN TOÁT NGHIEÄP
3
Khi caàn theâm hoaëc xoùa, hoaëc söûa chöông trình thì maát nhieàu thôøi gian ñeå doø
laïi chöông trình, nhaäp laïi khoù khaên, thaäm chí phaûi nhaäp laïi phaàn lôùn chöông tình.
Sau khi bò maát ñieän thì döõ lieäu löu trong RAM khoâng coù nguoàn döï tröõ seõ bò
maát heát, phaûi nhaäp laïi toaøn boä chöông trình. Ñoái vôùi nhöõng chöông trình nhoû thì thôøi
gian nhaäp khoâng ñaùng keå, nhöng ñoái vôùi nhöõng chöông trình lôùn thì ñaây laø coâng vieäc
maát nhieàu thôøi gian, vaø gaây phieàn haø cho ngöôøi hoïc cuõng nhö ngöôøi laäp trình vi xöû
lyù.
Beân caïnh ñoù, thöïc teá ñaõ coù nhöõng thieát bò naïp EPROM raát tieän lôïi, maø coù theå
ñem yù töôûng ñoù vaøo vieäc hoïc laäp trình vi xöû lyù nhaát laø vieäc giao tieáp vôùi thieát bò
khaùc töø vi xöû lyù laø moät ñieàu khaù deã dang.
Ngoaøi ra, chöông trình ñaïi hoïc raát bao quaùt, thôøi gian vaø ñieàu kieän chæ cho
pheùp sinh vieân ñi heát beà noåi cuûa chöông trình maø chöa coù hoaëc ít coù dòp tìm hieåu veà
chieàu saâu. Do ñoù, ñoà aùn toát nghieäp laø moät cô hoäi toát cho sinh vieân ñaøo saâu vaøo
chöông trình hoïc, öùng duïng baøi hoïc vaøo thöïc teá, chöùng minh ñöôïc söï höõu ích cuûa
nhöõng kieán thöùc ñaõ hoïc ñöôïc trong moâi tröôøng sö phaïm.
Töø nhöõng lyù do treân, ngöôøi vieát quyeát ñònh choïn ñeà taøi “GIAO TIEÁP MAÙY
TÍNH VÔÙI VI XÖÛ LYÙ 8085”.
Ñeà taøi ñöa ra moät chöông trình nhö moät coâng cuï hoã trôï vieäc hoïc laäp trình vi xöû
lyù treân Kit8085 vôùi moät thöù töï sau:
1)
Xaùc ñònh muïc ñích yeâu caàu cuûa chöông trình caàn vieát.
2)
Veõ löu ñoà.
3)
Vieát chöông trình baèng ngoân ngöõ Assembly (ngoân ngöõ gôïi nhôù).
4)
Nhaäp chöông trình baèng ngoân ngöõ Assembly vaøo maùy (duøng Norton).
5)
Goïi chöông trình dòch Assembler ñeå dòch töø ngoân ngöõ Assembly sang moät
file coù phaàn môû roäng “prn” chöùa maõ maùy.
6)
Trong chöông trình Giao tieáp, goïi file dòch ñeå naïp vaøo RAM.
7)
Chaïy thöû vaø kieåm tra keát quaû.
Caùch laøm naøy coù nhöõng öu ñieåm sau:
Dòch töø ngoân ngöõ Assembly (ngoân ngöõ gôïi nhôù) toán raát ít thôøi gian vì vieäc naøy do
maùy tính ñaûm traùch, vôùi ñoä chính xaùc tuyeät ñoái.
Cuõng vaäy, vieäc naïp döõ lieäu vaøo RAM cuõng chæ trong vaøi giaây, vaø ñöôïc kieåm tra
trong khi naïp neân ñoä chính xaùc cuõng tuyeät ñoái.
Ngoaøi ra, chöông trình ñöôïc löu tröõ, quaûn lyù deå daøng, deå xem laïi, deå kieåm tra.
Khi caàn theâm, hoaëc xoùa hoaëc söûa hoaëc cheùp laïi moät ñoaïn chöông trình, ngay caû
thay ñoåi ñòa chæ baét ñaàu, cuõng raát ñôn giaûn.
Veà ñoä chính xaùc vaø thôøi gian caàn thieát thì ñoái vôùi chöông trình caùc lôùn caøng coù
lôïi, caøng phaûi naïp chöông trình nhieáu thì caøng coù lôïi.
II. TAÀM QUAN TROÏNG CUÛA VAÁN ÑEÀ.
Trong xaõ hoäi ngaøy caøng phaùt trieån, löôïng kieán thöùc caàn truyeàn taûi trong nhaø
tröôøng ngaøy caøng taêng, maø thôøi gian cho pheùp ngaøy caøng bò giaûm ñi, thì söï noå löïc
cuûa caû ngöôøi daïy laãn ngöôøi hoïc ñeàu raát caàn thieát. Beân caïnh ñoù, phöông tieän ít nhieàu
seõ goùp phaàn quan troïng trong quaù trình hoïc taäp.
Tröôùc ñaây, vieäc hoïc laäp trình vi xöû lyù ñaõ dieãn ra moät caùch töï nhieân, coù theå coi
nhö ñaõ ñaày ñuû veà phöông tieän hoïc taäp. Nhöng nay, neáu coù theâm moät chöông trình moâ
LUAÂÄN VAÊN TOÁT NGHIEÄP
4
phoûng caùc hoï vi ñieàu khieån, hay vi xöû lyù, giao tieáp maùy tính vôùi vi xöû lyù ñeå truyeàn
file… thì taát nhieân seõ coù maët tích cöïc, mang theâm nhieàu lôïi ích cho vieäc hoïc.
“Giao tieáp maùy tính vôùi vi xöû lyù” coøn laø moät chöùng thöïc veà giao tieáp _ nhöõng
gì ñaõ ñöôïc hoïc _ treân chính kit thöïc taäp, ñieàu ñoù seõ kích hoaït söï tìm toøi, söï ham thích
hieåu bieát cuûa sinh vieân.
III. GIÔÙI HAÏN VAÁN ÑEÀ
Ñaây laø moät chuyeân ñeà thuù vò, coù nhieàu vaàn ñeà ñaùng quan taâm, nhöng do nhöõng
giôùi haïn veà thôøi gian vaø kieán thöùc, neân trong ñoà aùn naøy, ngöôøi vieát chæ coù theå trình
baøy nhöõng phaàn sau:
Khaùi quaùt Kit 8085 söû duïng, caùc linh kieän coù lieân quan tröïc tieáp ñeán
giao tieáp.
Caùch thöùc söû duïng kit, nhöõng hoaït ñoäng beân trong kit veà leänh, döõ lieäu
… maø sau ñoù seõ ñöôïc thay theá baèng caùch naïp töø maùy tính.
Giao tieáp maùy tính.
Moät soá ñieåm caàn löu yù khi vieát moät chöông trình baèng ngoân ngöõ gôïi
nhôù cho chöông trình dòch Assembler ñeå taïo ra moät file coù phaàn môû roäng .prn.
Caáu truùc moät file .prn, nhöõng soá lieäu naøo caàn xuaát.
Ñoâi neùt veà ngoân ngöõ C, chöông trình Download
Chöông trình nhaän döõ lieäu.
IV. MUÏC ÑÍCH NGHIEÂN CÖÙU
Tröôùc maét: ñaây laø moät vaán ñeà hay, ñaõ thu huùt ngöôøi vieát töø laâu maø nay môùi coù
dòp thöïc hieän, vaø cuõng laø nhu caàu caàn thieát trong thöïc teá.
Laâu daøi: tuy chæ laø moät thieát keá ñôn giaûn, nhöng laø moät cô sôû ban ñaàu coù theå
phaùt trieån theâm ra höôùng toång quaùt.
V. XAÙC ÑÒNH THUAÄT NGÖÕ
Töïa ñeà taøi laø “Giao tieáp maùy tính vôùi kit vi xöû lyù 8085”. Thöïc chaát, vaán ñeà
giao tieáp chæ laø moät cô sôû, phöông tieän chuû yeáu. Coøn saûn phaåm cuûa ñeà taøi laø moät giao
dieän treân maøn hình vi tính maø trong ñoù, ngöôøi duøng cho theå choïn fie caàn truyeàn, vaø
truyeàn xuoáng kit qua moät port naøo ñoù ñeå naïp döõ lieäu vaøo RAM.
Ñeà taøi naøy chæ thöïc hieän vieäc naïp döõ lieäu vaøo RAM maø sau ñoù seõ coù nhöõng
phaùt trieån khaùc. Thöïc teá ñeà ra laø vieäc thöïc haønh laäp trình vi xöû lyù treân kit, chöông
trình chæ laø ñeå thöïc taäp, chuû yeáu chæ naïp vaøo RAM, maø vieäc naïp döõ lieäu vaøo Kit maát
nhieàu thôøi gian, vaø muïc ñích cuûa ñeà taøi tröôùc tieân laø ñeå giaûi quyeát vaán ñeà ñoù, sau ñoù
coù theå phaùt trieån leân ñeå ñoïc caùc vuøng RAM, EPROM.
LUAÂÄN VAÊN TOÁT NGHIEÄP
Chöông II:
CÔ SÔÛ LYÙ LUAÄN
5
LUAÂÄN VAÊN TOÁT NGHIEÄP
6
Töø vaán ñeà ñaët ra nhö ôû chöông 1 ñaõ trình baøy, ngöôøi thöïc hieän ñeà taøi ñaõ tieán
haønh giaûi quyeát theo höôùng sau:
Xaùc ñònh thieát bò giao tieáp: Kit vi xöû lyù 8085 ñaõ coù saün caùc IC ngoaïi vi 8255 laøm
nhieäm vuï giao tieáp, chæ caàn choïn IC, xaùc ñònh ñòa chæ cuûa IC ñoù, ñòa chæ cuûa caùc
port vaøo ra, mode hoaït ñoäng cuûa caùc port, xaùc ñònh caùc ñieåm noái keát phaàn cöùng
vôùi maùy tính vaø vieát chöông trình nhaän, phaùt döõ lieäu.
Xaùc ñònh coång giao tieáp: ñoái vôùi maùy tính: choïn coång LPT1 (maø sau naøy coù theå
phaùt trieån ñeå coù theå söû duïng caû LPT2, COM1, COM2) vôùi phöôùng phaùp giao tieáp
song song baát ñoàng boä.
Xaây döïng giao dieän treân maøn hình maùy tính:Yeâu caàu caàn coù …… vaø phuø hôïp vôùi
ngöôøi söû duïng. Sau ñoù tieán haønh vieát giaûi thuaät, vaø baét tay vaøo vieát chöông trình.
ÔÛ ñaây, ngöôøi thöïc hieän ñaõ vieát chöông trình truyeàn döõ lieäu trong moâi tröôøng
Borland C 3.1. Trong quaù trình vieát, phaûi giaûi quyeát nhöõng khoù khaên phaùt sinh
moät caùch cuï theå.
Vieát chöông trình truyeàn, nhaän döõ lieäu vôùi Kit.
Gheùp noái caùc phaàn laïi.
Thöû nghieäm.
Söûa loãi.
Phöông phaùp chuû yeáu laø tham khaûo taøi lieäu vaø thöïc nghieäm
LUAÂÄN VAÊN TOÁT NGHIEÄP
Chöông III:
KIT THÖÏC TAÄP
VI XÖÛ LYÙ 8085
7
LUAÂÄN VAÊN TOÁT NGHIEÄP
8
I. KIT THÖÏC TAÄP VI XÖÛ LYÙ 8085:
Kit thöïc taäp vi xöû lyù 8085 laø moät loaïi maùy tính chuû yeáu phuïc vuï cho muïc ñích
hoïc taäp vaø nghieân cöùu thieát keá veà lónh vöïc vi xöû lyù. Kit naøy, xuaát phaùt taïi tröôøng ÑH
Sö phaïm kyõ thuaät – Trung taâm Vieät-Ñöùc, vaø do nhu caàu hoïc taäp vaø nhu caàu thöïc teá,
caùc giaùo vieân trong boä moân Ñieän-Ñieän töû cuûa tröôøng ñaõ caûi tieán cho phuø hôïp. Maët
khaùc, sinh vieân thuoäc khoa, trong caùc ñeà taøi toát nghieäp, ñoà aùn moân hoïc, cuøng vôùi söï
höùng thuù, ñaõ tham khaûo, tìm hieåu veà caáu taïo vaø nguyeân lyù hoaït ñoäng, vaø môû roäng
theâm moät soá chöùc naêng cho kit.
Moät Kit thöïc taäp vi xöû lyù thöôøng coù caùc phaàn chính ñöôïc trình baøy trong sô ñoà
khoái ôû (Hình 1).
Vôùi muïc ñích cuûa ñeà taøi naøy laø giao tieáp song song neân trong Kit 8085, chæ caàn
quan taâm ñeán 8085 vaø boä leänh 8085, 8255, 8279.
I.1. SÔ LÖÔÏC VI XÖÛ LYÙ 8085:
Vi xöû lyù (microprocessor) laø moät thieát bò baùn daãn chöùa caùc maïch logic ñieän töû
coù khaû naêng xöû lyù caùc döõ lieäu, chöông trình töø ngoaøi ñöa vaøo ñeå ñieàu khieån caùc IC,
thieát bò keát noái theo muïc ñích ñònh tröôùc.
I.1.1. Caáu truùc phaàn cöùng:
I.1.1.1. Caáu truùc beân ngoaøi:
8085 laø moät boä vi xöû lyù 8 bit do Intel saûn xuaát, ñaàu tieân vaøo naêm 1977. Noù coù
khaû naêng ñònh ñòa chæ cho boä nhôù tôùi 64 Kbyte, IC naøy coù 40 chaân, daïng DIP, söû
duïng nguoàn ñôn + 5V.
Chöùc naêng, daïng tín hieäu, traïng thaùi caùc chaân cuûa 8085 ñöôïc cho ôû baûng sau:
Baûng 1:
Chaân
Kyù hieäu
In/out 3 state
YÙ nghóa
1,2
X1, X2
I
X1, X2 laø 2 ngoõvaøo cuûa maïch dao
ñoäng. Taàn soá ngoõ vaøo ñöôïc chia cho 2
bôûi maïch chia beân trong. Taàn soá laøm
vieäc cöïc ñaïicuûa:
8085A: 6MHz
8085A-2: 10MHz
8085A-1:12MHz
3
Reset Out
O
Cho bieát CPU ñang reset. Tín hieäu naøy
LUAÂÄN VAÊN TOÁT NGHIEÄP
9
coù theå duøng ñeå reset caùc thaønh phaàn
khaùc trong maïch.
4
SOD
O
Serial Output: ngoõ ra döõ lieäu noái tieáp
ñöôïc xaùc ñònh bôûi leänh SIM.
5
SID
I
Serial Input: ngoõ vaøo döõ lieäu noái tieáp,
döõ lieäu naøy ñöôïc naïpaøobit thöù 7 cuûa
thanh ghi Accumulator khi thöïc hieän
leänh RIM.
6
TRAP
I
Trap: tín hieäu khoâng ngaên ñöôïc. Ngoõ
vaøo trap ñöôïc kích bôûi caïnh leân.
7,8,9
RST 7.5, 6.5, 5.5
I
Restart Intrerupt Repuest: laø caùc tín
hieäu ngaét coù theå ngaên ñöôïc. RST 7.5
coù theå ñöôïc kích baèng caïnh, RST 6.5
vaø 5.5 coù theå ñöôïc kích baèng möùc.
10
INTR
I
Interrupt: laø tín hieäu ngaét thoângduïng
coù theå che ñöôïc leänh kích baèng möùc.
11
INTA\
O
Interrupt Acknowledge: tín hiweäu
duøng ñeå baùo cho thieát bò yeâu caàu ngaét
INTR bieát raèng microprocessor ñaõ
chaáp nhaän yeâu caàu ngaét vaø thieát bò yeâu
caàu ngaét haõy ñaët leänh leân bus döõ lieäu.
19-12
AD7-AD0
I/O-3
Address/Data bus: caùc ñöôøng döõ lieäu
vaø caùc ñöôøng ñòa chæ ñöôïc tích hôïp
chung vôùi nhau. Ôû traïng thaùi T1 cuûa
chu kyø maùy, caù ngoõ naøy ñoùng vai troø laø
caùc ngoõ ra ñòa chæ. Caùc traïng thaùi coøn
laïi cuûa chu kyø maùy, noù ñoùng vai troø laø
caùc ñöôøng döõ lieäu.
20
Vss
Ground.
28-22
A15-A8
O-3
Address bus:caùc ngoõ naøy ñöôïc duøng ñeå
xuaát 8 bit ñòa chæ cao.
30
ALE
O
Address Latch Ennable: ngoõ naøy taï ra
moät xungôû traïng thaùi T1 cuûa chu kyø
maùy ñeå xaùc ñònh A15-A8 vaø AD7-AD0
laø caùc ñöôøng ñòa chæ.
31
WR\
O-3
Write: duøng ñeå xaùc ñònh icroprocessor
LUAÂÄN VAÊN TOÁT NGHIEÄP
10
ñang thöïc hieän leänh ghi döõ lieäu leân boä
nhôù hay IO.
32
RD\
O-3
Read:
duøng
ñeå
xaùc
ñònh
microprocessor ñang thöïc hieän leänh
ñoïc döõ lieäu töø boä nhôù hay IO.
29,33,34
S0,S1, IO/M\
O,O-3
Machine Cycle Status: 3 bit naøy cho
bieát traïng thaùi chu kyø maùy.
IO/M\ S1 S0 Traïng thaùi
0
0
1
Memory Write
0
1
0
Memory Read
0
1
1
Op-code fetch.
1
0
1
IO write.
1
1
0
IO read.
1
1
1
Interrupt Ackowledge.
Ôû traïng thaùi döøng (halt), S1=S2=0 vaø
IO/M\ ôû traïng thaùi toång trôû cao. Trong
khoaûng thôøi gian Hold vaø reset thì
traïng thaùi cuûa S0 vaø S1 khoâng xaùc
ñònh,IO/M\ ôû traïng thaùi toång trôû cao.
Thöôøng thì caùc bit WR\, RD\ vaø IO/M\
duøng ñeå xaùc ñònh traïng thaùi laøm vieäc
cuûa bus nhö: memory read, memory
write, IO read, IO write.
35
READY
I
Ready laø tín hieäu traû lôøi töø boä nhôù
hoaëc thieát bò ngoaïi vi IO cho
microprocesser bieát ñeå microprocessor
coù theå hoaøn thaønh chu kyø maùy ñang
thöïc hieän.
36
RESET IN
I
Reset: ngoõ vaøo reset 8085 ñeå trôû veà
traïng thaùi ban ñaàu cuûa noù. Tín hieäu
naøy phaûi ôû möùc 0 khoaûng 3 chu kyø
xung clock.
37
CLK
O
Clock out: ngoõ ra tín hieäu clock ñeå
cung caáp cho caùc thieát bò khaùc. Taàn soá
cuûa noù baèngtaàn soá ngoõ vaøo chia 2.
LUAÂÄN VAÊN TOÁT NGHIEÄP
38
HLDA
11
O
Hold Ackowledge: tín hieäu ngoõ ra cho
bieát tín hieäu hold ñaõ ñöôïc chaáp nhaän
vaø CPU seõ ôû traïng thaùi Hold ôû chu kyø
xung clock tieáp theo.
39
HOLD
I
Hold request: nhaän tín hieäu yeâu caàu
ngöng töø boä ñieàu khieån DMA.
40
Vcc
Power: nguoàn cung caáp +5V.
Caùc chaân cuûa IC ñöôïïc boá trí nhö hình veõ sau (hình 2):
X1
1
40
Vcc
X2
2
39
HOLD
3
38
SOD
4
37
SID
TRAP
5
36
HLDA
CLK(OUT)
RESET IN
6
35
READY
RST7.5
7
34
IO/M
RST6.5
8
33
S1
RST5.5
INTR
9
32
RD
10
31
WR
INTA
11
30
ALE
AD0
12
29
S0
AD1
13
28
A15
AD2
14
27
A14
AD3
15
26
A13
AD4
16
25
A12
AD5
17
24
AD6
18
23
A11
A10
AD7
19
20
22
21
RESET(OUT)
Vss
8085
A9
A8
8085 Pin out
Hình 2: Sô ñoà chaân vaø caùc tín hieäu cuûa 8085
LUAÂÄN VAÊN TOÁT NGHIEÄP
12
Toaøn boä caùc tín hieäu cuûa 8085 coù theå ñuôïc phaân thaønh 6 nhoùm:
(1) Tuyeán ñòa chæ
(2) Tuyeán döõ lieäu
(3) Caùc tín hieäu traïng thaùi vaø ñieàu khieån
(4) Nguoàn cung caáp vaø caùc tín hieäu taàn soá
(5) Caùc ngaét vaø caùc tín hieäu taàn soá
(6) Caùc coång I/O noái tieáp
+5V GND
Serial
I/O
Ports
SID
SOD
5
4
TRAP
RST 7.5
RST 6.5
RST 5.5
Interrupts INTR
6
7
8
9
10
READY
HOLD
RESET IN
35
39
36
and
Externally
Initiated
Signals
INTA
INTR
2
X2
40
20
Vcc Vss
28
A15
High Outer
Address Bus
21
A8
8085
AD7
19
Multiplexed
Address/Data Bus
AD0
12
30
29
33
34
32
31
11
18
ALE
S0
S1
IO/M
RD
WR
INTA
HLDA
Control
and
Status Signals
RST 6.5 TRAP
RST 5.5
21 SID
RST 7.521
Interrupt Control
RESET
OUT
8 Bit Internal Data Bus
Accumulater
(8)
1
X1
Serial I/O Control
CLK
OUT
Instruction
Register
(8)
Temp. Reg.
(8)
SOD
Multiplexer
(8)
W
Temp. Reg.
(8)
B
Reg.
(8)
D
Reg.
(8)
H
Reg.
Z
Hình 3: caùc nhoùm hoaït ñoäng cuûa 8085
Temp. Reg.
Flag
Flip Flops
Re
g.
Sel
ect
C
Reg.
E
Reg.
(8)
(8)
(8)
Register
Array
(8)
I.1.1.2.
Caáu truùc beân trong
8085:
L
Instruction
Reg.
Decoder
and hoïc ALU (Arithmetic and Logic Unit),
8085ù bao goàmArithmatic
ñôn
soá
Stack Pointer
Logic vò logic vaø
Machine
Unit
Cycle
(16)
Encoding
Program
ñôn vò ñònh thôøi vaø ñieà(ALU)
u khieån (Timing
and Control Unit)
, boäCounter
giaûi maõ
vaø thanh
(16)
(8)
Incrementer
ghi leänh (Instruction Register and Decoder), daõy thanh
ghi/ Decrementer
( Register
Array),
Address Lactch
(16)
ñieàu +5V
khieån ngaét (Interrupt Control) vaø ñieàu khieån I/O noái tieáp (Serial I/O Control)
(xemGND
hình 4).
Power Supply
X1
X2
CLK
GEN
CLK OUT
READY
Timing and Control
Control
Status
RD WR ALE S0
DMA
S1
IO/M
Reset
HLDA
RESET OUT
HOLD
RESET IN
(8)
Address Buffer
AD15 - AD8
Address Bus
Data Address Buffer
(8)
AD7 - AD0
Address Data Bus
LUAÂÄN VAÊN TOÁT NGHIEÄP
13
Hình 4: Sô ñoà khoái chöùc naêng cuûa 8085
I.1.2. Caáu truùc phaàn meàm:
Taäp leänh cuûa 8085
Moät leänh (Instruction) laø moät maãu nhò phaân (binary pattern) ñöôïc thieát keá beân
trong vi xöû lyù ñeå thöïc hieän moät chöùc naêng cuï theå (Instruction set), xaùc ñònh caùc chöùc
naêng maø vi xöû lyù coù theå thöïc hieän. Taäp leänh cuûa 8085 coù 74 leänh (hôn 8080 hai
leänh), caùc leänh naøy coù theå ñöôïc phaân thaønh 5 nhoùm chöùc naêng :
Caùc hoaït ñoäng (sao cheùp) truyeàn döõ lieäu
Caùc hoaït ñoäng toaùn hoïc
Caùc hoaït ñoäng logic
Caùc hoaït ñoäng reõ nhaùnh
Vaø, caùc hoaït ñoäng ñieàu khieån
Taäp leänh vi xöû lyù 8085 ñöôïc phaân thaønh 3 nhoùm tuyø theo kích côõ töø :
Caùc leänh moät töø hoaëc 1 byte
Caùc leänh hai töø hoaëc 2 byte
Caùc leänh ba töø hoaëc 3 byte
LUAÂÄN VAÊN TOÁT NGHIEÄP
14
Leänh moät byte chöùa maõ hoaït ñoäng (Opcode) vaø toaùn töû (Operand) trong cuøng
moät byte.
Trong leänh hai byte, byte thöù nhaát neâu leân maõ hoaït ñoäng vaø theo sau laø toaùn töû.
Ñoái vôùi leänh ba byte, byte ñaàu tieân cho bieát maõ hoaït ñoäng, 2 byte theo sau laø
döõ lieäu (noäi dung hoaëc ñòa chæ) 16 bit.
I.2. IC NGOAÏI VI 8255:
I.2.1. Caáu truùc:
I.2.1.1. Phaàn cöùng:
8255 laø moät thieát bò I/O giao tieáp song song, noù coù theå ñöôïc laäp trình ñeå
truyeàn döõ lieäu döôùi caùc ñieàu kieän khaùc nhau, töø I/O ñôn giaûn ñeán I/O coù ngaét. Noù
khaù linh hoaït, ña naêng vaø tinh teá (khi coù nhieàu coång I/O ñöôïc ñoøi hoûi), nhöng cuõng
phöùc taïp. Noù laø moät thieát bò I/O phoå duïng coù theå ñöôïc söû duïng vôùi haàu heát baát kyø boä
vi xöû lyù naøo.
8255 coù 40 chaân daïng DIP nhö hình 5.
8255
PA3
1
40
PA4
PA2
2
39
PA5
PA1
3
38
PA6
PA0
RD
4
37
PA7
5
36
WR
CS
6
35
RESET
GND
7
34
D0
A1
8
33
D1
A0
9
32
D2
PC7
10
31
D3
PC6
11
30
D4
PC5
12
29
D5
PC4
13
28
D6
PC0
14
27
D7
PC1
15
26
Vcc
PC2
16
25
PB7
PC3
17
24
PB6
PB0
18
23
PB5
PB1
19
22
PB4
PB2
20
21
PB3
Group
A
Control
Bidirectional
Data Bus
Data
Bus
Buffer
D7-D0
RD
WR
A1
A0
Read
Write
Control
Logic
Group
A
Control
Group
A
Port
A
(8)
I/O
PA7-PA0
Group
A
Port C
Upper
(4)
I/O
PA7-PA0
Group
A
Port C
Lower
(4)
I/O
PA7-PA0
Group
B
Port
B
(8)
I/O
PA7-PA0
RESET
CS
Hình 5 : sô ñoà chaân vaø Sô ñoà khoái cuûa 8255
Baûng 2: Baûng lieät keâ chöùc naêng caùc chaân IC 8255
LUAÂÄN VAÊN TOÁT NGHIEÄP
Teân caùc chaân
D7 – D0
RESET
CS\
RD\
WR\
A0, A1
PA7 – PA0
PB7 – PB0
PC7 – BC0
15
Chöùc naêng
Data bus (Bi – Direction)
Rest Input
Chip Select
Read Input
Write Input
Port Address
Port A
Port B
Port C
Sô ñoà khoái treân hình 5. trình baøy hai coång 8 bit (A vaø B) vaø hai coång 4 bit (CU
vaø CL) boä ñieän tuyeán döõ lieäu, vaø logic ñieàu khieån. Hình 5.9 (b) trình baøy moät sô ñoà
ñôn giaûn hoùa nhöng môû roäng cuûa caáu truùc beân trong, chöùa moät thanh ghi ñieåu khieån.
Sô ñoà khoái naøy chöùa taát caû caùc phaàn töû cuûa moät thieát bò laäp trình; coång C thöïc hieän
chöùc naêng töông töï chöùc naêng cuûa thanh ghi traïng thaùi, ngoaøi ra coøn cung caáp caùc tín
hieäu baét tay.
I.2.1.2.Phaàn meàm:
Töø ñieàu khieån
Hình 6 trình baøy moät thanh ghi ñöôïc goïi laø thanh ghi ñieàu khieån (control
register). Noäi dung cuûa thanh ghi naøy, goïi laø töø ñieàu khieån (control word), neâu roõ
moät chöùc naêng I/O cho moãi coång. Thanh ghi coù theå ñöôïc xaâm nhaäp ñeå ghi töø ñieàu
khieån. Khi A0 vaø A1 ôû möùc logic 1, nhö ñaõ ñeà caäp ôû treân. Thanh ghi naøy khoâng theå bò
xaâm nhaäp ñoái vôùi hoaït ñoäng Ñoïc.
Bit D7 cuûa thanh ghi ñieàu khieån neâu roõ hoaëc chöùc naêng I/O hoaëc chöùc naêng
Ñaët/Ñaët laïi bit nhö phaân loaïi trong Hình 5.8 (b). Neáu D7 = 1caùc bit D6 D5 quyeát
ñònh caùc chöùc naêng I/O ôû caùc moát khaùc nhau. Neáu bit D7 = 0, coång C hoaït ñoäng ôû
moát Ñaët/Ñaët laïi bit (BSR). Töø ñieàu khieån BSR khoâng aûnh höôûng ñeán caùc chöùc naêng
cuûa caùc coång A vaø B.
LUAÂÄN VAÊN TOÁT NGHIEÄP
D7
D6
D5
D4
D3
16
D2
D1
D0
GROUP B
PORT C (LOWER)
1=INPUT
0=OUTPUT
PORT B
1=INPUT
0=OUTPUT
MODE SELECTION
0=MODE 0
1=MODE 1
GROUP A
PORT C (UPPER)
1=INPUT
0=OUTPUT
PORT A
1=INPUT
0=OUTPUT
MODE SELECTION
00=MODE 0
01=MODE 1
1X=MODE 2
MODE SET FLAG
1=ACTIVE
Hình 6: Caáu truùc töø ñieàu khieån cuûa IC ngoaïi vi 8255.
Caên cöù vaøo töø ñieàu khieån cuûa 8255, coù theå klhôûi taïo 8255 ôû caùc mode 0 hoaëc
mode 1 hoaëc mode 2, vaø coù theå xaùc ñònh höôùng vaøo ra döõ lieäu cho moãi port.
Ñeå trao ñoåi thoâng tin vôùi caùc ngoaïi vi (ôû ñaây laø caùc moâ - ñun vaøo ra) thoâng qua
8255, ba böôùc sau ñaây laø caàn thieát :
(1) Xaùc ñònh ñöôïc ñòa chæ caùc coång A, B vaø C vaø cuûa thanh ghi ñieàu khieån theo
logic choïn chip (CS) vaø caùc ñöôøng ñòa chæ A0, A1.
(2) Ghi töø ñieàu khieån vaøo thanh ghi ñieàu khieån.
(3) Ghi caùc leänh I/O ñeå thoâng tin vôùi caùc ngoaïi vi thoâng qua coång A,B vaø C.
Heä thoáng Kit ñaõ ñöôïc ñaët cho 8255 laøm vieäc vôùi caùc ngoõ vaøo / ra ôû moát 0 nhö
sau :
1. Caùc ngoõ ra ñöôïc choát
2. Caùc ngoõ vaøo khoâng ñöôïc choát
3. Caùc coång khoâng coù khaû naêng baét tay vaø ngaét.
Ví duï:
Ñeå A, C laø coång nhaäp (8 bít), B laø coång xuaát(8bít), vaø choïn ngoaïi vi coù ñòa chæ
töø 00 – 03 thì phaûi laøm nhö sau:
LUAÂÄN VAÊN TOÁT NGHIEÄP
17
Gôûi töø ñieàu khieån 99hex vaøo thanh ghi ñieàu khieån.
Xuaát töø ñieàu khieån ra thanh ghi ñieàu khieån coù ñòa chæ 03hex.
I.3. IC GIAÛI MAÕ HIEÅN THÒ 8279:
I.3.1. Caáu truùc 8279
I.3.1.1. Phaàn cöùng:
8279 laø moät phöông phaùp phaàn cöùng ñeå giao tieáp vôùi baøn phím ma traän vaø
hieån thò ña hôïp. Baát lôïi cuûa phöông phaùp duøng phaàn meàm laø vi xöû lí bò baän trong luùc
kieåm tra vaø laøm töôi hieån thò. 8279 seõ thay theá vi xöû lí ñaûm traùch hai nhieäm vuï naøy.
8279 (Hình ) laø moät thieát bò daïng DIP _ 40, coù hai phaàn chính : baøn phím vaø
hieån thò. Phaàn baøn phím coù theå ñöôïc noái vôùi moät ma traän toái ña 64 phím, söï goõ phím
ñöôïc giaûi naåy vaø maõphím ñöôïc löu tröõ vaøo boä nhôù FIFO beân trong (First _ In _ First _
Out : Vaøo tröôùc, ra tröôùc) , vaø moät tín hieäu ngaét ñöôïc phaùt ra moãi laàn goõ phím. Phaàn
hieån thò coù theå cung caáp moät hieån thò coù queùt toái ña 16 Led. Phaàn naøy coù boä nhôù
RAM 16 x 8, coù theå ñöôïc söû duïng ñoïc / ghi thoâng tin cho caùc muïc ñích hieån thò. Phaàn
hieån thò coù theå ñöôïc khôûi taïo ôû daïng ghi phaûi (right entry) hoaëc ghi traùi (left entry).
Taàn soá xung ñoàng hoà caáp cho 8279 toái ña laø 3,125MHz
Hình 7: Sô ñoà chaân logic cuûa 8279
Teân chaân
Soá chaân
Moâ taû vaø chöùc naêng
DB0 – DB7
8
Bi-directional
databus:Ñöôøng döõ lieäu 2
chieàu.
LUAÂÄN VAÊN TOÁT NGHIEÄP
18
Taát caû caùc leänh vaø döõ lieäu
giöõaCPU vaø 8279 ñöôïc
truyeàn treân nhöõng ñöôøng
döõ lieäu naøy.
CLK
1
Clock input: ngoõ vaøo xung
clock. Xung clock coù taàn oá
toái ña laø 3,125MHz.
RESET
1
Reset in: duøng ñeå ñaët laïi
traïng thaùi laøm vieäc cuûa
8279 khi ngoõ vaøo naøy ôû
möùc cao.
Sau khi ñöôïc reset, 8279
coù theå laøm vieäc ôû cheá ñoä:
Hieån thò 16 kyù töï loái
vaøo traùi.
Laäp maõ queùt phím
khoùa ngoaøi 2 phím.
CS\
1
Chip select: taùc ñoäng möùc
thaáp cho pheùp 8279 thöïc
hieän caùc chöùc naêng keát noái
vôùi CPU ñeå truyeàn vaø
nhaän döõ lieäu.
A0
1
Buffer address: ñöôøng ñòa
chæ naøy thöông ñöôïc keát
noái vôùi ñ5a chæ A0 cuûa vi
xöû lyù duøng ñeå phaân bieät
leänh hay döõ lieäu.
A0=[1]: tín hieäu vaøo ra
laø leänh.
A0=[0]:tín hieäu vaøo ra
laø döõ lieäu.
RD\, WR\
2
Read, Write:ch pheùp ñoïc
hay ghi döõ lieäu leân bus döõ
lieäu, thanh ghi ñieàu khieån
hay boä nhôù RAM hieån thò.
IRQ
1
Interrupt Request: ñöôøng
tín hieäu yeâu caàu ngaét
LUAÂÄN VAÊN TOÁT NGHIEÄP
19
(output). Ngoõ ra naøy seõ ôû
möùc cao neá coù döõ lieäu ôû
trong boä nhôù FIFO hay
SensorRAM, ngoõ ra naøy
seõ ôû möùc thaáp moãi khicoù
söï
ñoïc
boä
nhôù
FIFO/SensorRAM
vaø
trôûlaïi möùc cao khi d4coù döõ
lieäu chöùa trong RAM.
Vss, Vcc
2
Caáp nguoàn 0Vvaø +5V cho
8279.
SL0 – SL3
4
Scan lines: 4 ñöôøng scan
line naøycoù theå giaûi maõ ra
16 ñöôøng hay maõ hoùa
thaønh 1 ñöôøng, ñöôïc duøng
ñeå queùt phím hay ma traän
caûm bieán vaø hieån thò.
RL0 – RL7
8
Return line: ñöôïc noái vôùi
ñöôøng scan line thoâng qua
caùc phím hay coâng taéc
caûm bieán. ÔÛ cheá ñoä queùt
phím, seõ keát hôïp vôùi caùc
ñöôøng scan lines taïo thaønh
maõ cuûa phím ñöôïc nhaán.
SHIFT
1
CTRL/STB
1
Shift, Control / Strobe
input Mode: trong cheá ñoä
queùt phím, möùc logic cuûa
töøng ngoõ vaøo naøy seõ ñöôïc
löu tröõ vôùi vò trí cuûa phím
ñeå taïo ra 1 giaù trò cuûa
phím ñöôïc nhaán.
OUT A0 – A3
4
OUT B0 – B3
4
Ñeây laø 2 portngoõ ra cuûa
thanh ghi hieån thò 16 x 4
bit. Döõ lieäu töø nhöõng thanh
ghi naøy seõ ñöôïc ñöa ra
ñoàng boä keát hôïp vôùi caùc
ñöôøng queùt scan lines ñeå
ña hôïp thaønh soá hieån thò.
LUAÂÄN VAÊN TOÁT NGHIEÄP
20
Hai ngoõ ra 4 bit naøy coù theå
xoùa ñoäc laäp vaø coù theå keát
hôïp vôùi nhau ñeå taïo thaønh
moät ngoõ ra 8 bit.
BD\
1
Blanking display: duøng ñeå
xoùa hieån thò trong quaù
trình chuyeån ñoåi giöõa caùc
soá hay khi gaëp leänh xoùa
hieån thò.
Sô ñoà khoái logic (Hình 8) trình baøy boán phaàn chính cuûa 8279 : baøn phím, queùt,
hieån thò vaø giao tieáp vi xöû lí. Caùc chöùc naêng cuûa caùc phaàn naøy ñöôïc mieâu taû nhö döôùi
ñaây :
CL RESE DB0K T
DB7
RDWR CS A0
Data
Buffer
I/O Control
IR
Q
FIFO/Sensor
RAM
Status
Internal Data Bus (8)
Display
Address
Registers
16 x 8
Display
RAM
Control and
Timing
Registers
Timing
and
Control
Display
Registers
8x8
FIFO/Sensor
RAM
Keyboard
Debounce
and
Control
Scan Counter
Return
8
OUT A0-A3
B0-B3
OUT
BD
SL0SL3
Hình 8: Sô ñoà khoái cuûa 8279
SHIF
RL0-RL7
T
CNTL/STB
Ñeå giao tieáp vôùi vi xöû lyù, 8279 caàn taùm ñöôøng döõ lieäu hai chieàu (BD 0 _ BD7),
moät ñöôøng yeâu caàu ngaét (IRQ), vaø saùu ñöôøng giao tieáp, keå caû ñöôøng ñòa chæ cuûa boä
ñeäm (A0)
Khi A0 ôû möùc cao, caùc tín hieäu ñöôïc hieåu nhö laø caùc töø ñieàu khieån vaø traïng
thaùi. Khi A0 ôû möùc thaáp, caùc tín hieäu ñöôïc hieåu laø döõ lieäu.
Ñöôøng IRQ leân möùc cao baát kì luùc naøo vieäc ghi nhaän döõ lieäu vaøo FIFO. Tín
hieäu naøy ñöôïc söû duïng ñeå ngaét vi xöû lí nhaèm chæ thò tính khaû duïng cuûa döõ lieäu.
- Xem thêm -