Luận văn "Giao tiếp máy tính với VXL 8085"
Khi nhu cầu học tập ngày càng cao thì thiết bị, phương tiện dạy học càng
đóng vai trò quan trọng, nó giúp người thầy dỡ vất vả trong việc truyền thụ kiến
thức, giúp người học nhanh chóng tiếp thu, ngoài ra còn để minh họa, chứng
thực môt cách cụ thể những bài học mơ hồ trừu tượng.
Trong bài này, người thực hiện muốn đề cập đến môn học vi xử lý, lập
trình vi xử lý, một môn học mang ý nghĩa thiết thực trong xã hội mà quá trình
công nghiệp hóa, hiện đại hóa diễn ra từng ngày. Khi học...
LUẬN VĂN TỐT NGHIỆP
GIAO TIẾP MÁY
TÍNH VỚI VI XỬ LÝ 8085
Giáo viên thực hiện :
Sinh viên thực hiện :
LUAÂÄN VAÊN TOÁT NGHIEÄP 1
Chöông I:
CHÖÔNG DAÃN NHAÄP
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.
LUAÂÄN VAÊN TOÁT NGHIEÄP 3
− Ñ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.
− 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öï
LUAÂÄN VAÊN TOÁT NGHIEÄP 4
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â 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 5
Chöông II:
CÔ SÔÛ LYÙ LUAÄN
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 7
Chöông III:
KIT THÖÏC TAÄP
VI XÖÛ LYÙ 8085
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
LUAÂÄN VAÊN TOÁT NGHIEÄP 9
8085A-1:12MHz
3 Reset Out O Cho bieát CPU ñang reset. Tín hieäu
naøy 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
LUAÂÄN VAÊN TOÁT NGHIEÄP 10
ñ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 ñ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.
LUAÂÄN VAÊN TOÁT NGHIEÄP 11
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.
38 HLDA 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
RESET(OUT) 3 38 HLDA
SOD 4 37 CLK(OUT)
SID 5 36 RESET IN
TRAP 6 35 READY
RST7.5 7 34 IO/M
RST6.5 8 33 S1
RST5.5 9 32 RD
INTR 10
8085 31 WR
INTA 11 30 ALE
AD0 12 29 S0
AD1 13 28 A15
AD2 14 27 A14
AD3 15 26 A13
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
1 2 40 20
X1 X2 Vcc Vss
Serial SID 5 A15 28
I/O SOD 4 High Outer
Ports Address Bus
TRAP 6 A8 21
RST 7.5 7
RST 6.5 8
RST 5.5 9
10
8085
Interrupts INTR 19
and AD7
Externally Multiplexed
Initiated Address/Data Bus
Signals
READY 35 AD0 12
HOLD 39
RESET IN 36 30 ALE
29 S0
33 S1 Control
34 IO/M and
32 RD
31 WR Status Signals
11 INTA
18 HLDA
21 21
RESET CLK
OUT OUT
LUAÂÄN VAÊN TOÁT NGHIEÄP 13
Hình 3: caùc nhoùm hoaït ñoäng cuûa 8085
I.1.1.2. Caáu truùc beân trong 8085:
8085ù bao goàm ñôn vò logic vaø soá hoïc ALU (Arithmetic and Logic Unit),
ñôn vò ñònh thôøi vaø ñieàu khieån (Timing and Control Unit) , boä giaûi maõ vaø
thanh ghi leänh (Instruction Register and Decoder), daõy thanh ghi ( Register
Array), ñieàu khieån ngaét (Interrupt Control) vaø ñieàu khieån I/O noái tieáp
(Serial I/O Control) (xem hình 4).
INTA RST 6.5 TRAP
INTR RST 5.5 RST 7.5 SID SOD
Interrupt Control Serial I/O Control
8 Bit Internal Data Bus
Instruction
Accumulater Temp. Reg. Register Multiplexer
(8) (8) (8)
(8) (8)
W Z
Temp. Reg. Temp. Reg.
(8) (8)
B C
Reg. Reg.
Flag (8) (8) Register
Flip Flops D E Array
Re Reg. Reg.
g. (8) (8)
Instruction H L
Decoder Sel Reg. Reg.
Arithmatic and ect
Logic Machine Stack Pointer
Unit Cycle (16)
Encoding Program Counter
(ALU)
(16)
(8)
Incrementer / Decrementer
Address Lactch (16)
Power Supply
+5V
GND
X1 CLK Timing and Control
(8) (8)
X2 GEN Control Status DMA Reset Address Buffer Data Address Buffer
CLK OUT RD WR ALE S0 S1 IO/M HLDA RESET OUT AD15 - AD8 AD7 - AD0
READY HOLD RESET IN Address Bus Address Data Bus
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
LUAÂÄN VAÊN TOÁT NGHIEÄP 14
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öø :
1. Caùc leänh moät töø hoaëc 1 byte
2. Caùc leänh hai töø hoaëc 2 byte
3. Caùc leänh ba töø hoaëc 3 byte
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
Group
PA3 40 PA4 A
1 Group Port I/O
A PA7-PA0
PA2 2 39 PA5 Control A
(8)
PA1 3 38 PA6
PA0 4 37 PA7
RD 5 36 WR
CS 6 35 RESET Group
GND 34 D0 A
7 Bidirectional Port C I/O
A1 8 33 D1 Data Bus Upper PA7-PA0
(4)
A0 9 32 D2
Data
PC7 10 31 D3 Bus
PC6 11 30 D4 Buffer Group
PC5 12 29 D5 A
D7-D0 Port C I/O
PC4 13 28 D6 Lower PA7-PA0
LUAÂÄN VAÊN TOÁT NGHIEÄP 15
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
Teân caùc chaân Chöùc naêng
D7 – D0 Data bus (Bi – Direction)
RESET Rest Input
CS\ Chip Select
RD\ Read Input
WR\ Write Input
A0, A1 Port Address
PA7 – PA0 Port A
PB7 – PB0 Port B
PC7 – BC0 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öø
LUAÂÄN VAÊN TOÁT NGHIEÄP 16
ñ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 17
D7 D6 D5 D4 D3 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ï:
LUAÂÄN VAÊN TOÁT NGHIEÄP 18
Ñ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:
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
LUAÂÄN VAÊN TOÁT NGHIEÄP 19
Baûng 3: Chöùc naêng caùc chaân IC 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.
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.