Giao tiếp máy tính với thiết bị thực tập 8085

  • Số trang: 98 |
  • Loại file: DOC |
  • Lượt xem: 16 |
  • Lượt tải: 0
hoanggiang80

Đã đăng 24000 tài liệu

Mô tả:

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 -