Giao tiếp máy tính với KIT vi xử lý 8086

Tài liệu Giao tiếp máy tính với KIT vi xử lý 8086: ... Ebook Giao tiếp máy tính với KIT vi xử lý 8086

doc138 trang | Chia sẻ: huyen82 | Lượt xem: 1552 | Lượt tải: 0download
Tóm tắt tài liệu Giao tiếp máy tính với KIT vi xử lý 8086, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ÑAÏI HOÏC QUOÁC GIA TP. HOÀ CHÍ MINH ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA ÑIEÄN – ÑIEÄN TÖÛ LUAÄN VAÊN TOÁT NGHIEÄP Ñeà taøi: GIAO TIEÁP MAÙY TÍNH VÔÙI KIT VI XÖÛ LYÙ 8086 Giaùo vieân höôùng daãn : Thaày NGUYEÃN ÑÌNH PHUÙ Sinh vieân thöïc hieän : PHAÏM XUAÂN HÖNG Lôùp : 95 KÑÑ TP.HOÀ CHÍ MINH 2 – 2000 ÑAÏI HOÏC QUOÁC GIA TP. HOÀ CHÍ MINH ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA ÑIEÄN - ÑIEÄN TÖÛ LUAÄN VAÊN TOÁT NGHIEÄP Ñeà taøi: GIAO TIEÁP MAÙY TÍNH VÔÙI KIT VI XÖÛ LYÙ 8086 PHAÀN 1: GIÔÙI THIEÄU CHUNG CHÖÔNG DAÅN NHAÄP CHÖÔNG CÔ SÔÛ LYÙ LUAÄN CHÖÔNG I: CAÁU TRUÙC VI XÖÛ LYÙ 8086 CHÖÔNG II: KHAÛO SAÙT TOÅNG QUAÙT TAÄP LEÄNH 8086 CHÖÔNG III: GIAO TIEÁP VÔÙI MAÙY TÍNH PHAÀN 2 : PHAÀN CÖÙNG VAØ PHAÀN MEÀM CUÛA Û MAÏCH GIAO TIEÁP CHÖÔNG IV: GIÔÙI THIEÄU KIT VXL 8086 CHÖÔNG V: GIAO TIEÁP NOÁI TIEÁP DUØNG VI MAÏCH 8251A CHÖÔNG VI: CHÖÔNG TRÌNH GIAO TIEÁP ( CHÖÔNG TRÌNH TRUYEÀN, NHAÄN DÖÕ LIEÄU) HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI KEÁT LUAÄN ÑAÙNH GIAÙ PHUÏ LUÏC TAØI LIEÄU THAM KHAÛO Giaùo vieân höôùng daãn: NGUYEÃN ÑÌNH PHUÙ Sinh vieân thöïc hieän: PHAÏM XUAÂN HÖNG BOÄ GIAÙO DUÏC& ÑAØO TAÏO COÄNG HOØA XAÕ HOÄI CHUÛ NGHÓA VIEÄT NAM ÑAÏI HOÏC QUOÁC GIA TP. HOÀ CHÍ MINH ÑOÄC LAÄP – TÖÏ DO – HAÏNH PHUÙC ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT TP. HOÀ CHÍ MINH _____________ KHOA ÑIEÄN BOÄ MOÂN ÑIEÄN – ÑIEÄN TÖÛ NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP šl› Hoï vaø teân sinh vieân : PHAÏM XUAÂN HÖNG Lôùp : 95KÑÑ Ngaønh : Kyõ thuaät Ñieän – Ñieän töû Teân ñeà taøi: GIAO TIEÁP MAÙY TÍNH VÔÙI KIT VI XÖÛ LYÙ 8086 Caùc soá lieäu ban ñaàu: ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Noäi dung caùc phaàn thuyeát minh tính toaùn: …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Caùc baûn veõ: ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Giaùo vieân höôùng daãn : NGUYEÃN ÑÌNH PHUÙ Ngaøy giao nhieäm vuï : Ngaøy hoaøn thaønh nhieäm vuï: 25/2/2000 Giaùo vieân höôùng daãn: Thoâng qua Boä moân Ngaøy thaùng naêm 1999 NHAÄN XEÙT CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN šl› …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Giaùo vieân höôùng daãn NHAÄN XEÙT CUÛA GIAÙO VIEÂN PHAÛN BIEÄN šl› ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Giaùo vieân phaûn bieän Lôøi caûm taï šl› Trong thôøi gian thöïc hieän ñeà taøi sinh vieân thöïc hieän ñaõ hoïc hoûi ñöôïc nhieàu ñieàu boå ích töø thaày höôùng haãn, caùc thaày coâ vaø caùc baïn. Sinh vieân thöïc hieän xin baøy toû loøng bieát ôn ñeán thaày Nguyeãn Ñình Phuù treân cöông vò laø ngöôøi höôùng daãn ñeà taøi ñaõ taän tình höôùng daãn vaø taïo ñieàu kieän thuaän lôïi cho em hoaøn thaønh toát ñeà taøi. Sinh vieân thöïc hieän cuõng xin chaân thaønh caûm ôn caùc thaày, caùc coâ trong khoa cuøng caùc baïn ñaõ ñoùng goùp yù kieán vaø kinh ngieäm quùy baùu trong quùa trình thöïc hieän ñeà taøi naøy. TP.HOÀ CHÍ MINH Ngaøy 25 thaùng 2 naêm 2000 Sinh vieân thöïc hieän Phaïm Xuaân Höng MUÏC LUÏC Phaàn 1: Phaàn giôùi thieäu Chöông daãn nhaäp Chöông cô sôû lyù luaän Xaây döïng ñeà cöông luaän vaên Keá hoaïch nghieân cöùu Chöông I: Caáu truùc beân trong cuûa VXL 8086 Caáu taïo beân trong khoái thöïc hieän khoái phoái phoái gheùp bus sô ñoà khoái beân trong Caáu truùc beân trong vaø chöùc naêng cuûa VXL 8086 sô ñoà chaân cuûa VXL 8086 chöùc naêng caùc chaân Caùc phöông phaùp ñònh ñòa chæ cuûa 8086 Chöông II: Khaûo saùt toång quaùt taäp leänh cuûa VXL 8086 caùch maõ hoùa leänh khaûo saùt toång quaùt taäp leänh Chöông III: Giao tieáp vôùi maùy tính Giao tieáp song song Giao tieáp qua coång maùy in Giao tieáp qua Slot card Giao tieáp noái tieáp qua coång COM Vaøi neùt cô baûn veà coång noái tieáp Söï trao ñoåi cuûa caùc ñöôøng daãn tín hieäu Phaàn 2: Phaàn cöùng cuûa maïch giao tieáp Chöông IV: Giôùi thieäu kit VXL 8086 Caùc linh kieän baùn daãn lieân quan vi maïch MAX 232 IC ñeäm 74LS244 Maïch taïo xung nhòp 8284 Toång quaùt veà boä nhôù Giôùi thieäu kit VXL 8086. Chöông V: Giao tieáp noái tieáp duøng 8251A. truyeàn thoâng tin noái tieáp Vi maïch USART 8251A ÖÙng duïng 8251A ñeå truyeàn thoâng tin noái tieáp Truyeàn thoâng tin noái tieáp giöõa 2 kit VXL Truyeàn thoâng tin noái tieáp giöõa kit VXL vaø maùy tính Phaàn 3 : Phaàn meàm cuûa maïch giao tieáp Chöông VI: Caùc chöông trình truyeàn döõ lieäu Chöông trình truyeàn, nhaän döõ lieäu döõ lieäu treân kit Giaûi thuaät Chöông trình Chöông trình truyeàn döõ lieäu treân maùy tính Phaàn 4: Toång keát, ñaùnh giaù Höôùng phaùt trieån ñeà taøi Keát luaän ñaùnh giaù Taøi lieäu tham khaûo LÔØI NOÙI ÑAÀU Ñaát nöôùc ta ñang treân con ñöông tieán leân moät ñaát nöôùc coâng ngieäp hoùa hieän ñaïi hoùa. Ñeå ñaït ñöôïc muïc tieâu ñoù thì ngaønh coâng ngieäp maùy tính laø moät ngaønh then choát ñeå tieán leân con ñöôøng coâng ngieäp hoaù vaø hieän ñaïi hoùa ñaát nöôùc. Ngaøy nay trong caùc nhaø maùy xí nghieäp hay coâng xöôûng ñeàu söû duïng maùy vi tính vaøo vieäc ño löôøng ñieàu khieån, tính toaùn vaø trong quaûn lyù haønh chính, nhôø coù ñaëc tính goïn nheï, ñoä tin caäy cao linh hoaït vaø ñôn giaûn trong söû duïng. Ñaëc bieät trong caùc ngaønh coâng nghieäp hieän ñaïi, maùy tính ñieän töû khoâng nhöõng goùp phaàn vaøo vieäc naâng cao naêng suaát lao ñoäng maø coøn goùp phaàn vaøo vieäc baûo veä söùc khoeû vaø an toaøn lao ñoäng cho con ngöôøi. Ñeã hoaøn thaønh nhöõng coâng vieäc keå treân chuùng ta caàn phaûi keát noái caùc maùy vi tính vôùi nhau, hoaëc keát noái chuùng vôùi caùc thieát bò ngoaïi vi nhaän döõ lieäu ñeå xöû lyù hay göûi döõ lieäu ñi cho caùc thieát bò khaùc xöû lyù. Ñeå thöïc hieän ñöôïc coâng vieäc naøy thì ñieàu ñaàu tieân chuùng ta phaûi laøm ñoù laø chuùng ta phaûi keát noái phaàn cöùng cho phuø hôïp vaø vieát caùc chöông trình truyeàn döõ lieäu. Tröôùc yeâu caàu ñoù sinh vieân thöïc hieän ñeà taøi quyeát ñònh thöïc hieän ñeà taøi “Giao tieáp maùy tính vôùi kit VXL 8086” nhaèm muïc ñích tìm hieåu, hoïc hoûi theâm vaø öùng duïng caùc kieán thöùc ñaõ hoïc ra thöïc teá. Sinh vieân thöïc hieän xin chaân thaønh caûm ôn thaày Nguyeãn Ñình Phuù cuøng caùc thaày coâ trong khoa ñaõ taän tình höôùng daãn em hoaøn thaønh toát ñeà taøi naøy. Vì thôøi gian vaø kieán thöùc coù haïn neân taäp luaän vaên naøy chaéc chaén khoâng traùnh khoûi sai soùt, raát mong nhöõng yù kieán ñoùng goùp cuûa quùy thaày coâ vaø caùc baïn. TP.Hoà Chí Minh, ngaøy 25 thaùng 2 naêm 2000 Sinh vieân thöïc hieän Phaïm Xuaân Höng Phaàn 1 GIÔÙI THIEÄU CHUNG CHÖÔNG DAÃN NHAÄP oOo Cuøng vôùi söï phaùt trieån cuûa khoa hoïc kyõ thuaät thì ngaønh coâng nghieäp maùy tính cuõng ñöôïc phaùt trieån raát maïnh meõ vaø ngaøy caøng ñöôïc öùng duïng roäng raõi trong moïi coâng vieäc nhö caùc coâng vieäc trong coâng nghieäp cuõng nhö trong thoâng tin lieân laïc. Ñeå thöïc hieän ñöôïc nhöõng coâng vieäc nhaän döõ lieäu töø caùc thieát bò khaùc ñeå xöû lyù hoaëc göûi döõ lieäu ñi ñeå ñieàu khieån caùc thieát bò khaùc thì coâng vieäc giao tieáp giöõa hai heä vi xöû lyù vôùi nhau hay giöõa vi xöû lyù vôùi maùy tính laø moät coâng vieäc chuû yeáu trong vieäc truyeàn döõ lieäu vì theá sinh vieân quyeát ñònh thöïc hieän ñeà taøi “Giao tieáp maùy tính vôùi kit VXL 8086”. Muïc ñích ñeå hoïc hoûi vaø tìm hieåu theâm caùc öùng duïng cuûa VXL vaø caùc IC giao tieáp ngoaïi vi trong thöïc teá, laøm quen vôùi caùc chöông trình truyeàn döõ lieäu ñeå hoaøn thaønh toát luaän vaên toát nghieäp naøy. Trong phaïm vi chuyeân ngaønh thì ñeà taøi ñaõ hoaøn thaønh toát phaàn cöùng vaø phaàn meàm giao tieáp. Rieâng trong lónh vöïc giao tieáp thì ñoù cuõng laø taøi lieäu tham khaûo ban ñaàu cho nhöõng ngöôøi muoán ñi saâu vaøo lónh vöïc giao tieáp. Ñeà taøi naøy khoâng chæ giuùp cho sinh vieân hoøan thaønh luaän vaên toát nghieäp maø coøn hình thaønh trong moãi sinh vieân nhöõng kinh nghieäm, saùng taïo vaø naêng ñoäng. Sau naøy ñeà taøi seõ keát hôïp vôùi caùc ngaønh chuyeân moân khaùc ñeå phaùt trieån moâ hình naøy ñöôïc hoaøn thieän hôn. CHÖÔNG CÔ SÔÛ LYÙ LUAÄN ___ oOo ___ I. XAÂY DÖÏNG ÑEÀ CÖÔNG LUAÄN VAÊN: 1). Xaùc ñònh nhieäm vuï nghieân cöùu: Vieäc choïn ñeà taøi xuaát phaùt töø hai lyù do: Khaùch quan: hieän nay caùc neàn coâng nghieäp coù nhu caàu hieän ñaïi hoùa caùc thieát bò theo xu höôùng caûi tieán hoùa caùc thieát bò baèng cô khí sang thieát bò ñieàu khieån töï ñoäng öùng duïng kyõ thuaät ñieän töû. Chuû quan: do nhu caàu hoïc taäp, nghieân cöùu, reøn luyeän kyõ naêng thöïc haønh, öùng duïng voán kieán thöùc khoa hoïc kyõ thuaät tieân tieán tröïc tieáp vaøo lónh vöïc saûn xuaát. Nhieäm vuï nghieân cöùu nhaèm ñaït ñöôïc caùc muïc ñích chuû yeáu: + Muïc ñích tröôùc maét: thoûa maõn veà cô baûn caùc yeâu caàu ñeà ra theo phöông chaâm “Hoïc ñi ñoâi vôùi haønh“. + Muïc ñích sau cuøng: Tích luõy kinh nghieäm, reøn luyeän vaø naâng cao naêng löïc, taïo baûn lónh ñeå saün saøng tham gia lao ñoäng saûn xuaát, hoøa nhaäp vaøo böôùc tieán cuûa theá heä. 2). Phaân tích taøi lieäu lieân heä: Trong thôøi gian nghieân cöùu ñeà taøi, sinh vieân thöïc hieän ñaõ thoáng nhaát tham khaûo moät soá taøi lieäu coù lieân quan trong khoaûng thôøi gian cho pheùp. Phöông phaùp luaän nghieân cöùu khoa hoïc: tìm hieåu veà caáu truùc hình thöùc cuûa moät ñeà taøi nghieân cöùu khoa hoïc vaø phöông phaùp tö duy ñeå giaûi quyeát vaán ñeà. Kyõ thuaät Vi xöû lyù - Traàn Vaên Troïng: Taøi lieäu cung caáp veà caáu truùc cuûa vi xöû lyù 8086. Sô ñoà chaân linh kieän baùn daãn - Döông Minh Trí: cung caáp sô ñoà chaân vaø baûng traïng thaùi hoïat ñoäng cuûa caùc IC vaø caùc linh kieän baùn daãn. Caáu truùc maùy tính - Leâ Anh Vieät: Taøi lieäu cung caáp kieán thöùc cô baûn veà caáu truùc maùy tính, toå chöùc CPU, hôïp ngöõ vaø caùch laäp trình. The 8086/8088 - Family Design Programming and Interfacing – John Uffenbeck: taøi lieäu cung caáp nhöõng kyõ thuaät keát noái vi xöû lyù vaø nhöõng phaàn meàm öùng duïng. Kyõ thuaät vi xöû lyù – Vaên Theá Minh: taøi lieäu cung caáp kyõ thuaät giao tieáp vôùi caùc thieát bò ngoaïi vi. II. KEÁ HOAÏCH NGHIEÂN CÖÙU: 1). Daøn yù nghieân cöùu: Phaàn I: Giôùi thieäu chung. Phaàn II: Phaàn cöùng vaø phaàn meàm cuaû maïch giao tieáp. Phaàn III : Toång keát vaø ñaùnh giaù 2). Ñoái töôïng nghieân cöùu: Vi xöû lyù laø trung taâm ñieàu khieån caùc ñoái töôïng, ñieàu khieån heä thoáng nhö maùy töï ñoäng, daây chuyeàn saûn xuaát… Ñeå heä thoáng xöû lyù thi haønh caùc chöùc naêng ñieàu khieån nhö mong muoán, chuùng ta phaûi laäp trình baèng ngoân ngöõ töông öùng vaø trao ñoåi döõ lieäu giöõa caùc heä vi xöû lyù. Vì theá ñoái töôïng nghieân cöùu chính laø thieát keá maïch giao tieáp ñeå truyeàn döõ lieäu ñi xa. CHÖÔNG I CAÁU TRUÙC BEÂN TRONG CUÛA VI XÖÛ LYÙ 8086 ___ oOo ___ Ñaây laø boä vi xöû lyù noåi tieáng moät thôøi cuûa haõng Intel, noù ñöôïc söû duïng trong nhieàu lónh vöïc khaùc nhau, nhaát laø trong caùc maùy IBM PC/XT. Caùc boä vi xöû lyù thuoäc hoï naøy seõ coøn ñöôïc söû duïng roäng raõi trong haøng chuïc naêm nöõa. I . CAÁU TAÏO BEÂN TRONG: Beân trong goàm hai khoái chính: Khoái thöïc hieän EU (Execution Unit) Khoái giap tieáp bus (Bus Interface Unit) 1 .Khoái thöïc hieän EU ÔÛ hình 1.1 ta thaáy trong khoái EU ta thaáy coù moät khoái ñieàu khieàn (Control Unit, CU) chính taïi beàn trong khoái ñieàu khieån naøy coù maïch giaûi maõ leänh. Maõ leänh ñoïc vaøo töø boä nhôù ñöa ñeán ñaàu cuûa boä giaûi maõ, caùc thoâng tin thu ñöôïc töø ñaàu ra cuûc noù seõ ñöôïc ñöa ñeán maïch taïo xung ñieàu khieån, keát quaû laø thu ñöôïc caùc daõy xung khaùc nhau (tuøy theo maõ leänh) ñeå ñieàu khieån hoaït ñoäng cuûa caùc boä phaän beân trong vaø beân ngoaøi CPU. Trong khoái EU coøn coù khoái soá hoïc vaø logic (Arithmetic and Logic Unit ALU) duøng ñeå thöïc hieän caùc thao taùc khaùc nhau vôùi caùc toaùn haïng cuaû leänh. Toùm laïi khi CPU hoaït ñoäng EU seõ cung caáp thoâng tin veà ñiaï chæ cho BIU ñeå khoái naøy ñoïc leänh vaø döõ lieäu, coøn baûn thaân noù thì giaûi maõ leänh vaø thöïc hieän leänh 2. Khoái phoái gheùp bus (Bus Interface Unit BIU) Khoái BIU coù nhieäm vuï ñöa ra ñiaï chæ, ñoïc maõ leänh töø boä nhôù. Noùi caùch khaùc BIU chiu traùch nhieäm ñöa ñiaï chæ ra bus vaø trao ñoåi döõ lieäu vôùi bus. Trong BIU coøn coù boä nhôù ñeäm leänh vôùi dung löôïng 4 byte duøng ñeå ñöa caùc maõ leänh ñoïc ñöôïc naèm saün saøng chôø EU xöû lyù (trong taøi lieäu cuaû Intel boä leänh naøy coøn ñöôïc goïi laø haøng ñôïi leänh. Ñaây laø moät caáu truùc môùi ñöôïc ñöa vaøo boä VXL 8086/8088 cho vieäc Intel ñöa cheá ñoä xöû lyù xen keõ lieân tuïc duøng maõ leänh vaøo öùng duïng vaøo trong caùc boä VXL theá heä môùi. 3. Sô ñoà khoái beàn trongvaø chöùc naêng caùc khoái cuaû VXL 8086: Haøng ñôïi leänh Caùc côø AH AL BH BL CH CL DH DL BP DI SI SP CS ES SS DS IP Ñieàu khieån bus vaø taïo ñòa chæ 6 5 4 3 2 1 Bus ñòa chæ Bus döõ lieäu Caùc thanh ghi ñoaïn Arithmetic logic unit (ALU) Bus döõ lieäu noäi Caùc bus heä thoáng Excution Unit (EU) Bus Interface Unit (BIU) S Hình 1.1: Sô ñoà khoái 8086 Boä vi xöû lyù thöïc hieän caùc leänh theo caùc böôùc sau: Laáy leänh töø boä nhôù. Ñoïc toaùn haïng (neáu leänh yeâu caàu). Thöïc hieän leänh. Ghi keát quaû. 3.1). Khoái thöïc hieän: Nhieäm vuï cuûa khoái thöïc hieän leänh laø thöïc hieän caùc leänh cuûa chöông trình. Noù goàm coù khoái soá hoïc – logic (ALU) cho pheùp thöïc hieän caùc pheùp tính soá hoïc (+ , - , * , /) vaø caùc pheùp logic (AND, OR, NOT…). Trong khoái thöïc hieän coøn coù moät soá oâ nhôù goïi laø thanh ghi duøng ñeå chöùa döõ lieäu cho caùc pheùp tính. Moãi thanh ghi gioáng nhö moät oâ nhôù ngoaïi tröø chuùng ñöôïc ñaët teân thay vì duøng soá ñeå chæ ñòa chæ. EU (Execution Unit) coù caùc thanh ghi coâng duïng chung chia thaønh hai nhoùm: nhoùm thanh ghi döõ lieäu vaø nhoùm thanh ghi chæ soá. ¨ Caùc thanh ghi döõ lieäu (Data Register): AH AL BH BL CH CL DH DL AX (Accumulator) BX (Base) CX (Count) DX (Data) ¨ Caùc thanh ghi chæ soá vaø con troû (Index & Pointer Register): SP BP SI DI Con troû Stack (Stack Pointer) Con troû neàn (Base Pointer) Chæ soá nguoàn (Source Index) Chæ soá ñích (Destnation Index) ¨ Caùc thanh ghi ñoaïn (Segment Register): CS DS SS ES Ñoaïn maõ (Code Segment) Ñoaïn döõ lieäu (Data Segment) Ñoaïn Stack (Stack Segment) Ñoaïn theâm (Extra Segment) ¨ Caùc thanh ghi traïng thaùi vaø ñieàu khieån (Status & Control Register): IP Flag Con troû leänh (Intruction Pointer) Côø ¨ Caùc thanh ghi döõ lieäu: Coù boán thanh ghi döõ lieäu kyù hieäu laàn löôït laø: AX, BX, CX, DX, ñöôïc ngöôøi laäp trình söû duïng cho caùc thao taùc vôùi döõ lieäu. Maëc duø vi xöû lyù coù theå thao taùc vôùi döõ lieäu trong boä nhôù, nhöng moät leänh nhö vaäy seõ ñöôïc thöïc hieän nhanh hôn trong thanh ghi (caàn ít chu kyø ñoàng hoà hôn). Ñoù cuõng laø nguyeân nhaân taïi sao caùc boä vi xöû lyù hieän ñaïi coù xu höôùng nhieàu thanh ghi. Caùc byte cao vaø byte thaáp trong thanh ghi ñöôïc truy caäp ñoäc laäp: Byte cao cuûa thanh ghi AX ñöôïc goïi laø AH vaø byte thaáp ñöôïc goïi laø AL. Töông töï nhö vaäy cho caùc byte cao vaø byte thaáp cuûa caùc thanh ghi BX, CX, DX laàn löôït laø BH & BL, CH & CL, DH & DL. Nhôø ñieàu naøy maø ta coù nhieàu thanh ghi hôn khi laøm vieäc vôùi caùc soá lieäu coù kích thöôùc byte daøi. Trong ña soá leänh caùc thanh ghi döõ lieäu ñöôïc choïn tuøy yù nhöng caùc thanh ghi naøy laïi coù chöùc naêng rieâng coá ñònh trong moät soá ít leänh. · Thanh ghi tích luõy AX (Accumulator): Laø thanh ghi ñöôïc söû duïng nhieàu nhaát trong caùc leänh soá hoïc – logic vaø truyeàn döõ lieäu bôûi vì vieäc söû duïng thanh ghi naøy taïo ra maõ maùy ngaén nhaát. Trong caùc thao taùc nhaân hoaëc chia moät trong caùc soá haïn tham gia phaûi chöùa trong AH hoaëc AL, caùc thao taùc vaøo ra cuõng söû duïng thanh ghi AH hoaëc AL. · Thanh ghi cô sôû BX (Base): Thanh ghi BX ñöôïc duøng cho tính toaùn ñòa chæ trong phöông phaùp ñònh ñòa chæ giaùn tieáp. · Thanh ghi ñeám CX (Count): Vieäc thöïc hieän caùc chöông trình laäp ñöôïc thöïc hieän deã daøng nhôø thanh ghi CX, trong ñoù CX ñoùng vai troø laø boä ñeám voøng laäp. Moät thí duï khaùc cuûa vieäc söû duïng thanh ghi CX ñoù laø leänh REP (Repeat) leänh naøy ñieàu khieån moät lôùp caùc leänh chuyeân veà caùc thao taùc chuoãi. CL cuõng ñöôïc söû duïng laø moät bieán ñeám trong caùc leänh dòch hay quay caùc bit. · Thanh ghi döõ lieäu DX (Data): DX duøng ñeå ñònh ñòa chæ giaùn tieáp trong caùc thao taùc vaøo ra, noù cuõng coøn ñöôïc söû duïng chöùa toaùn haïn, keát quaû trong pheùp nhaân vaø chia. · Thanh ghi con troû vaø chæ soá: Caùc thanh ghi SP, BP, SI, DI thöôøng troû tôùi caùc oâ nhôù (töùc laø chöùa caùc ñòa chæ offset cuûa caùc oâ nhôù ñoù). Khaùc vôùi thanh ghi ñoaïn, caùc thanh ghi con troû vaø ngaên xeáp ñöôïc söû duïng trong caùc thao taùc soá hoïc vaø moät soá thao taùc khaùc nhau. · Thanh ghi con troû – ngaên xeáp SP (Stack Pointer): Di chuyeån töø ñòa chæ cao ñeán ñòa chæ thaáp, duøng ñeå keát hôïp vôùi thanh ghi ñoaïn Stack SS (Stack Segment)ñeå löu tröû ñòa chæ trôû veà hoaëc döõ lieäu vaøo trong ngaên xeáp. · Thanh ghi con troû cô sôû BP (Base Pointer): Thanh ghi naøy ñöôïc duøng ñeå truy caäp döõ lieäu trong ngaên xeáp maø khoâng laøm thay ñoåi SP. Tuy nhieân, khaùc vôùi SP thanh ghi BP cuõng coøn ñöôïc söû duïng ñeã truy caäp döõ lieäu ôû caùc ñoaïn khaùc. · Thanh ghi chæ soá nguoàn SI (Source Index): Thanh ghi SI ñöôïc söû duïng ñeå troû tôùi caùc oâ nhôù trong ñoaïn döõ lieäu ñöôïc ñònh bôûi thanh ghi ñoaïn döõ lieäu DS (Data Segment), coù theå truy caäp deã daøng caùc oâ nhôù lieân tieáp baèng caùch taêng SI. · Thanh ghi chæ soá ñích DI (Destination Index): Thanh ghi DI coù chöùc naêng töông töï nhö thanh ghi SI vaø ñöôïc duøng keát hôïp vôùi thanh ghi ñoaïn theâm ES (Extra Segment). Caû hai DI vaø SI thích hôïp trong caùc thao taùc sao cheùp, di chuyeån hoaëc so saùnh caùc khoái döõ lieäu coù dung löôïng ñeán 64kB. · Thanh ghi con troû leänh IP (Intruction Pointer): 8086 khoâng thöïc hieän leänh tröïc tieáp trong boä nhôù maø leänh ñöôïc laáy ôû haøng ñôïi leänh coù caáu taïo gioáng nhö moät thanh ghi dòch (FIFO: First In First Out: vaøo tröôùc ra tröôùc) chöùa caùc maõ leänh cung caáp bôûi khoái BIU. Thanh ghi IP chæ ñeán leänh tieáp theo chöa ñöôïc nhaäp vaøo haøng ñôïi leänh vaø ñöôïc duøng keát hôïp vôùi thanh ghi CS. Thanh ghi IP ñöôïc caäp nhaät moãi khi coù moät leänh ñöôïc thöïc hieän xong, khaùc vôùi caùc thanh ghi khaùc, IP khoâng bò taùc ñoäng tröïc tieáp bôûi caùc leänh. · Thanh ghi côø (Flag Register): Thanh ghi côø cuûa 8086 coù ñoä daøi 16bit (2byte) byte thaáp chöùa caùc bit traïng thaùi gioáng nhö trong 8085 phaûn aùnh traïng thaùi cuûa vi xöû lyù, byte cao chöùa 1 bit traïng thaùi ñoù laø bit 11 vaø 3 bit ñieàu khieån duøng ñeå ñieàu khieån hoaït ñoäng cuûa vi xöû lyù. Sau ñaây laø caáu taïo cuûa thanh ghi côø trong 8086: 15 8 7 0 O D I T S Z A P C Thanh ghi côø cuûa 8086 C: carry flag. P: parity flag. A: auxiliary flag. Z: zero flag. S: sign flag. T: trap flag. I: interrupt enable flag. D: direction flag. O: overflow flag. + Côø nhôù CF : Côø nhôù CF ñöôïc thieát laäp khi coù soá nhôù töø bit MSB. Trong pheùp coäng hoaëc soá thieáu trong pheùp tröø (MSB trong caùc leänh byte laø bit 7 vaø trong caùc leänh word laø bit 15) côø CF cuõng bò aûnh höôûng bôûi caùc leänh quay vaø dòch. + Côø chaün leû PF : Sau caùc leänh soá hoïc hoaëc logic ñoái vôùi caùc leänh byte neáu soá löôïng soá ‘1’ trong byte keát quaû laø chaün thì côø PF ñöôïc thieát laäp laø ‘1’ ngöôïc laïi laø ‘0’ neáu laø leû, ñoái vôùi caùc leänh word chæ xeùt caùc byte thaáp. + Côø nhôù phuï AF: Côø nhôù phuï ñöôïc thieát laäp neáu coù nhôù (coäng) hoaëc coù thieáu (tröø) töø phaân nöûa döôùi ñeán phaân nöûa treân cuûa toaùn haïn (ñoái vôùi leänh byte ñoù laø bit 3 vaø ñoái vôùi leänh word laø bit 7) côø AF ñöôïc söû duïng trong caùc thao taùc vôùi soá BCD. + Côø zero ZF: Côø zero ñöôïc thieát laäp khi keát quaû baèng 0. + Côø daáu SF: Côø daáu laø ‘1’ khi bit MSB cuûa keát quaû baèng ‘1’ töùc laø soá aâm, ñoái vôùi leänh byte MSB laø bit 7 vaø trong leänh word laø bit 15. + Côø baãy TF: Taïo khaû naêng thöïc hieän chöông trình theo töøng böôùc, khi TF baèng ‘1’ 8086 phaùt sinh ngaét loaïi 1 (ngaét cöùng). Chöông trình DEBUG söû duïng khi thi haønh leänh T (trace) ñeå chaïy töøng böôùc moät leänh. Ñaàu tieân DEBUG thieát laäp côø TF roài môùi chuyeån ñieàu khieån cho leänh ñoù. Sau khi leänh ñöôïc thi haønh vi xöû lyù seõ phaùt sinh moät ngaét do TF ñöôïc laäp DEBUG söû duïng chính phuïc vuï ngaét naøy ñeå laáy quyeàn ñieàu khieån töø vi xöû lyù. + Côø ngaét IF: Côø ngaét ñöôïc söû duïng ñeå ñieàu khieån caùc ngaét phaàn cöùng beân ngoaøi, neáu côø naøy ñöôïc thieát laäp caùc ngaét phaàn cöùng coù theå ngaét 8086. Khi xoùa IF, caùc ngaét beân ngoaøi khoâng coøn taùc duïng nöûa (bò che). Thöïc ra vaãn coøn moät ngaét cöùng khoâng che ñöôïc NMI (Non Maskable Interrupt). Tröôùc khi vi xöû lyù trao quyeàn ñieàu khieån cho moät phuïc ngaét noù xoùa caû IF vaø TF, nhö vaäy phuïc ngaét ñoù seõ khoâng bò ngaét. Taát nhieân moät phuïc vuï ngaét coù theå ñoåi côø ñeå cho pheùp ngaét khi noù ñang thi haønh. + Côø traøn OF: Côø traøn laø ‘1’ khi coù hieän töôïng traøn vaø ngöôïc laïi noù baèng ‘0’. Hieän töôïng traøn cho thaáy moät söï thaät laø phaïm vi bieåu dieãn caùc soá trong maùy tính laø coù giôùi haïn. Phaïm vi bieåu dieån caùc soá coù daáu trong moät word töø –32768 ñeán +32767 vaø trong moät byte töø –126 ñeán +127. Ñoái vôùi caùc soá khoâng daáu töø 0 ñeán 65535 cho moät word vaø töø 0 ñeán 255 cho moät byte. Neáu keát quaû cuûa moät pheùp tính vöôït ra ngoaøi phaïm vi naøy thì hieän töôïng traøn seõ xaûy ra vaø keát quaû nhaän ñöôïc bò caét bôùt seõ khoâng phaûi laø keát quaû ñuùng. + Côø ñieàu khieån DF: Laø moät trong ba côø ñieàu khieån duøng ñieàu khieån caùc thao taùc cuûa vi xöû lyù coâng duïng cuûa DF laø dòch höôùng cho caùc thao taùc chuoãi, caùc thao taùc naøy ñöôïc thöïc hieän bôûi hai thanh ghi chæ soá SI & DI, noäi dung cuûa hai thanh ghi naøy seõ töï ñoäng taêng leân khi DF = 0 vaø giaûm xuoáng khi DF =1. 3.2). Khoái giao tieáp (BIU): Khoái giao tieáp laøm ñôn giaûn vieäc lieân laïc giöõa EU vaø boä nhôù hoaëc caùc vi maïch vaøo ra. Noù coù nhieäm vuï gôûi caùc ñòa chæ, soá lieäu vaø tín hieäu ñieàu khieån vaøo caùc bus, BUI & EU lieân heä vôùi nhau baèng caùc bus noäi boä, khi EU ñang thi haønh moät leänh, BIU naïp 6 byte maõ leänh tieáp theo vaøo vaø ñaët chuùng vaøo haøng ñôïi leänh, muïc ñích cuûa vieäc naøy laø laøm taêng toác ñoä cuûa vi xöû lyù. Neáu EU caàn lieân laïc vôùi boä nhôù hay thieát bò ngoaïi vi, BIU seõ treo caùc leänh nhaän tröôùc vaø thöïc hieän thöïc hieän caùc thao taùc caàn thieát. BIU caáu taïo goàm caùc thanh ghi ñoaïn vaø con troû leänh duøng ñeå chöùa ñòa chæ caùc oâ nhôù. a). Caùc thanh ghi ñoaïn: Ñöôïc duøng ñeå löu tröû ñòa chæ cuûa caùc leänh vaø döõ lieäu trong boä nhôù, vi xöû lyù döïa treân caùc giaù trò naøy ñeå truy caäp boä nhôù. Boä nhôù laø taäp hôïp caùc byte oâ nhôù, moãi byte coù moät ñòa chæ xaùc ñònh baét ñaàu töø 0. 8086 gaùn cho moãi oâ nhôù moät ñòa chæ vaät lyù 20 bit. Nhö vaäy, noù coù theå ñònh ñòa chæ ñeán byte (töông ñöông 1MB) oâ nhôù, caùc byte ñaàu tieân cuûa boä nhôù coù ñòa chæ nhö sau: 0000 0000 0000 0000 0000 0000 0000 0000 0000 0001 0000 0000 0000 0000 0010 0000 0000 0000 0000 0011 0000 0000 0000 0000 0100 Ñeå ñôn giaûn, caùc ñòa chæ treân thöôøng ñöôïc bieåu dieån baèng soá thaäp luïc phaân nhö sau: 00000H 00001H 00002H ………… H vaø cöù tieáp tuïc cho ñeán giaù trò lôùn nhaát laø FFFFFH Do caùc ñòa chæ quaù lôùn (20 bit) khoâng theå chöùa trong moät thanh ghi cuûa 8086 (16 bit) neân 8086 chia boä nhôù thaønh caùc ñoaïn boä nhôù (Memory Segment). Moät ñoaïn boä nhôù laø moät khoái goàm 216 (64K) oâ nhôù lieân tieáp nhau, moãi ñoaïn ñöôïc xaùc ñònh baèng moät ñòa chæ ñoaïn baét ñaàu töø ñòa chæ 0, ñòa chæ ñoaïn laø moät soá 16 bit neân ñòa chæ ñoaïn lôùn nhaát laø FFFF. Beân trong moãi ñoaïn soá oâ nhôù ñöôïc xaùc ñònh baèng ñòa chæ töông ñoái (offset), ñoù laø soá byte tính töø ñaàu ñoaïn, vôùi moät ñoaïn 64K thì offset cuõng laø moät soá 16 bit, byte ñaàu tieân trong ñoaïn coù offset baèng 0 vaø byte cuoái cuøng baèng FFFF. Moät oâ nhôù coù theå ñöôïc xaùc ñònh baèng ñòa chæ ñoaïn:ñòa chæ töông ñoái trong ñoaïn (segment:offset) vaø ñöôïc goïi laø ñòa chæ logic. Thí duï: oâ nhôù A4FB: 4872 coù ñòa chæ ñoaïn laø A4FB vaø ñòa chæ offset laø 4872. Ñeå tìm ñòa chæ vaät lyù cuûa oâ nhôù tröôùc tieân ta dòch ñòa chæ ñoaïn veà beân traùi 4 bit vaø sau ñoù coäng vôùi ñòa chæ offset, nhö vaäy ñòa chæ vaät lyù cuûa oâ nhôù A4FB:4872 ñöôïc tính nhö sau: A4FB0 4872 A9822 b). Saép xeáp ñoaïn: Trong boä nhôù ñoaïn 0 baét ñaàu töø ñòa chæ 0000:0000 = 00000 vaø keát thuùc ôû 0000:FFFF = 0FFFF, ñoaïn 1 baét ñaàu töø ñòa chæ 0001:0000 = 00010 vaø keát thuùc ôû ñòa chæ 0001:FFFF = 1000F. Nhö vaäy, coù raát nhieàu söï choàng nhau giöõa caùc ñoaïn. Caùc ñoaïn baét ñaàu töø c._.aùc ñòa chæ caùch nhau 16byte vaø ñòa chæ ñaàu cuûa moãi ñoaïn luoân keát thuùc baèng caùc soá 0. 16byte ñöôïc goïi laø moät khuùc (Paragraph), caùc ñòa chæ chia heát cho 16 ( caùc ñòa chæ keát thuùc baèng 0) laø caùc bieân giôùi khuùc (Paragraph Boundary) c). Caùc ñoaïn cuûa chöông trình: Moãi ñoaïn chöông trình ngoân ngöõ maùy bao goàm caùc leänh vaø döõ lieäu, coøn moät vuøng ñaëc bieät trong RAM goïi laø ngaên xeáp (stack). Maõ leänh, döõ lieäu vaø ngaên xeáp cuûa chöông trình ñöôïc naïp vaøo caùc ñoaïn boä nhôù khaùc nhau ñoù laø ñoaïn maõ (code segment), ñoaïn döõ lieäu (data segment), ñoaïn ngaên xeáp (stack segment). Ñeå theo doõi caùc ñoaïn khaùc nhau cuûa chöông trình 8086 ñöôïc cung caáp 4 thanh ghi ñoaïn ñeå chöùa caùc ñòa chæ ñoaïn, caùc thanh ghi CS, DS, SS laàn löôïc chöùa caùc ñòa chæ ñoaïn maõ, ñoaïn döõ lieäu, vaø ñoaïn ngaên xeáp. Neáu chöông trình muoán truy caäp ñeán moät döõ lieäu thöù hai noù coù theå söû duïng thanh ghi ñoaïn theâm ES (extra segment). Moät chöông trình khoâng phaûi bao giôø cuõng caàn chieám heát moät ñoaïn 64KB, do ñaëc ñieåm choàng nhau giöõa caùc ñoaïn cho pheùp caùc ñoaïn cuûa moät chöông trình nhoû hôn 64KB coù theå ñaët gaàn laïi vôùi nhau. Taïi moät thôøi ñieåm, chæ coù caùc oâ nhôù ñöôïc ñònh ñòa chæ bôûi 4 thanh ghi ñoaïn môùi coù theå truy caäp, nghóa laø chæ coù 4 ñoaïn boä nhôù laø taùc ñoäng. Tuy nhieân noäi dung cuûa caùc thanh ghi ñoaïn coù theå thay ñoåi bôûi chöông trình ñeå truy caäp ñeán caùc ñoaïn khaùc nhau. d). Haøng ñôïi leänh: Nhö ta ñaõ bieát, ñeå taêng toác ñoä vi xöû lyù khoái BIU tieáp nhaän caùc leänh vaø ñöa vaøo haøng ñôïi leänh (Queue) trong khi ñoù khoái EU ñang thi haønh leänh. Haøng ñôïi leänh coù theå nhaän 6 byte maõ leänh, caùc leänh cuûa 8086 coù ñoä daøi töø 1 ñeán 6 byte, neáu leänh chöa vaøo ñaày ñuû trong haøng ñôïi leänh thì khoái EU seõ chôø cho ñeán khi leänh naïp heát vaøo haøng ñôïi leänh. II. CAÁU TRUÙC BEÂN NGOAØI VAØ CHÖÙC NAÊNG CUÛA VXL 8086. 1). Sô ñoà chaân cuûa 8086: 8086 laø vi xöû lyù 16 bit noù goàm 16 ñöôøng döõ lieäu vaø 20 ñöôøng ñòa chæ, caùc ñöôøng döõ lieäu töø D0 ñeán D15 vaø caùc ñöôøng ñòa chæ töø A0 ñeán A15 hoaït ñoäng theo phöông phaùp ña loä thôøi gian. 8086 coù theå laøm vieäc ôû hai cheá ñoä: Cheá doä Minimum. Cheá ñoä Maximum. Trong cheá ñoä minimum, 8086 ñieàu khieån caùc thieát bò baèng caùc tín hieäu ñieàu khieån cuûa chính noù, trong cheá ñoä naøy hoã trôï boä xöû lyù toaùn hoïc 8087 Trong cheá ñoä maximum caàn thieát phaûi keát hôïp vôùi vi maïch ñieàu khieån bus 8288 ñeå taïo ra caùc tín hieäu ñoïc – ghi cho boä nhôù vaø caùc thieát bò ngoaïi vi vaø cheá ñoä naøy cho pheùp laøm vieäc vôùi 8087. Sau ñaây laø sô ñoà chaân cuûa 8086 ôû caû hai cheá ñoä minimum vaø maximum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND Vcc AD15 A16/S3 A17/S4 A18/S5 A17/S6 BHE/S7 MN/MX RD HOLD (RQ/GT0) HLDA (RQ/GT1) WR (LOCK) M/IO (S2) DT/R (S1) DEN (S0) ALE (QS0) INTA (QS1) TEST READY RESET 8086 CPU Hình 1.2: Sô ñoà chaân 8086 2). Chöùc naêng cuûa caùc chaân cuûa 8086: · Vcc = 5V Ñieän aùp nuoâi laø 5V DC, dung sai cho pheùp laø 10%. · GND = 0V Caùc ñöôøng mass neân coù ñieän trôû caøng nhoû caøng toát. · CLK = clock (input) Xung ñoàng hoà ñöa vaøo chaân naøy laø khoâng ñoái xöùng vaø coù tyû leä laø ½ (High/Low). · INTR- Interrupt Request (input): Möùc cao ôû ngoõ naøy baùo cho 8086 bieát coù moät yeâu caàu ngaét (thuôøng ñöôïc gôûi tôùi töø vi maïch xöû lyù ngaét 8259), tín hieäu ngaét taïi chaân naøy coù theå bò che baèng phaàn meàm. Khi vi xöû lyù chaáp nhaän yeâu caàu ngaét, noù seõ ñöa ra moät chu kyø chaáp nhaän ngaét vaø vi maïch xöû lyù ngaét phaûi gôûi ñòa chæ cuûa ngaét leân bus döõ lieäu töông öùng vôùi chu kyø thöù hai. · NMI (Non Maskable Interrupt): Ñaây laø ngaét khoâng che ñöôïc, taùc ñoäng ôû möùc cao vi xöû lyù nhaûy ñeán ñòa chæ ngaét soá 2 trong baûng vector ngaét vaø khoâng taïo ra chu kyø chaáp nhaän ngaét. · Reset (input): Ngoõ vaøo möùc cao ñaët vi xöû lyù veà traïng thaùi ban ñaàu sau ít nhaát 4 chu kyø ñoàng hoà. Thanh ghi CS ñöôïc ñaët giaù trò FFFF vaø thanh ghi IP ñöôïc ñaët giaù trò 0000. Nhö vaäy chæ thò ñöôïc thöïc hieän ñaàu tieân chöùa ôû oâ nhôù FFFF0 quaù trình chuyeån tieáp töø möùc cao xuoáng möùc thaáp ñöôïc ñoàng boä bôûi chu kyø ñoàng boä töø vi maïch taïo xung ñoàng hoà 8284. · Ready (input): Tín hieäu baùo ñaõ hoaøn taát thao taùc truyeàn döõ lieäu cuûa boä nhôù hoaëc thieát bò vaøo – ra, taùc ñoäng ôû möùc cao, vi xöû lyù seõ ñôïi neáu tín hieäu naøy ôû möùc thaáp. · AD0… AD15 - Address/Data bus (input/output): Gioáng nhö trong 8085, caùc ñöôøng ñòa chæ - döõ lieäu naøy laøm vieäc theo nguyeân taéc ña loä thôøi gian, laø ñòa chæ trong chu kyø T1 vaø laø döõ lieäu trong chu kyø T2, T3, Tw, T4, taùc ñoäng ôû möùc cao, coù caáu taïo ba traïng thaùi vaø ôû traïng thaùi toång trôû cao trong luùc vi xöû lyù ‘Interrupt acknowlegde’ vaø ‘Hold acknowledge’. · A16/S3 …… A19/S6 – Addres/Status (output): Trong chu kyø T1 laø 4 bit ñòa chæ cao khi thao taùc vôùi boä nhôù, trong luùc thao taùc vôùi thieát bò vaøo - ra chaân naøy coù gía trò thaáp. Trong caû hai thao taùc cuõng nhö vaøo – ra caùc bit naøy laø traïng thaùi trong caùc chu kyø T2, T3, Tw, T4. Traïng thaùi bit cao cho pheùp ngaét, S5 ñöôïc caäp nhaät taïi moãi thôøi ñieãm baét ñaàu cuûa moãi chu kyø ñoàng hoà. S3 & S4 cho bieát thanh ghi ñoaïn ñang ñöôïc söû duïng, thoâng tin naøy caàn thieát cho Co-processor xaùc ñònh vò trí cuûa toaùn haïng. Coù caáu taïo ba traïng thaùi vaø traïng thaùi toång trôû cao khi vi xöû lyù ‘Hold acknowledge’. S3 S4 Thanh ghi ñoaïn ñöôïc choïn 0 0 1 1 0 1 0 1 Thanh ghi ñoaïn theâm. Thanh ghi ñoaïn ngaên xeáp. Thanh ghi ñoaïn leänh. Thanh ghi ñoaïn döõ lieäu . Hai bit S3 & S4 ñeå choïn caùc thanh ghi ñoaïn. · BHE/S7 – Bus high enable / status (output): Keát hôïp vôùi bit ñòa chæ A0 ñeå xaùc ñònh cheá ñoä truyeàn döõ lieäu, BHE ôû möùc thaáp trong chu kyø T1 cuûa caùc thao taùc ñoïc – ghi vaø chaáp nhaän ngaét khi moät byte ñöôïc truyeàn trong byte cao cuûa bus döõ lieäu. S7 coù hieäu löïc trong caùc chu kyø T2, T3 & T4, caáu taïo ba traïng thaùi vaø traïng thaùi toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold’. HBE A0 Kieåu truyeàn döõ lieäu 0 0 1 1 0 1 0 1 Truy xuaát 16 bit Truy xuaát byte cao töø ñòa chæ leû Truy xuaát byte thaáp ñòa chæ chaún. Khoâng söû duïng . Caùc kieåu truy xuaát döõ lieäu. · RD – Read (output): Tín hieäu ra ñieàu khieån vieäc ñoïc boä nhôù hoaëc khoái vaøo ra phuï thuoäc vaøo bit traïng thaùi S2, möùc thaáp taïi T2, T3 vaø Tw trong moãi chu kyø ñoïc, caáu taïo ba traïng thaùi vaø toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’. · Test (input): Tín hieäu vaøo ñöôïc kieãm tra bôûi leänh ‘wait’ vi xöû lyù seõ khoâng laøm gì caû khi ñieän aùp chaân naøy coù giaù trò thaáp, ñoàng boä taïi caïnh leân cuûa moãi xung ñoàng hoà. · MN-MX – Minimum-Maximum (input): Chaân choïn cheá ñoä laøm vieäc cuûa 8086, cheá ñoä laøm vieäc laø minimum töông öùng vôùi möùc cao vaø cheá ñoä laøm vieäc laø maximum öùng vôùi möùc thaáp. Bus ñieàu khieån ôû hai cheá ñoä coù chöùc naêng khaùc nhau. · M/IO (output): Ngoû ra traïng thaùi gioáng nhö bit S0 ôû cheá ñoä maximum duøng ñeå baùo vò trí ñang truy xuaát döõ lieäu. Möùc cao laø boä nhôù vaø möùc thaáp laø khoái vaøo-ra. Caáu taïo ba traïng thaùi, toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’. · WR – write (output): Tín hieäu ra ñieàu khieån thao taùc ghi vaøo boä nhôù hoaëc khoái vaøo-ra tuøy theo giaù trò cuûa ngoõ M/IO. Taùc ñoäng möùc thaáp ôû T2, T3 vaø Tw cuûa moãi chu kyø ghi, caáu taïo ba traïng thaùi vaø traïng thaùi toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’. · INTRA – Interrup Acknowlegde (output): Tín hieäu chaáp thuaän ngaét, taùc ñoäng möùc thaáp taïi T2, T3 vaø Tw duøng ñeå ñöa ñòa chæ cuûa ngaét leân bus döõ lieäu. · ALE – Adress Latch Enable Tín hieäu ñieàu khieån choát ñòa chæ 74LS373 hoaëc 8282/8283 taùc ñoäng möùc cao trong khoaûng T1 cuûa moãi chu kyø bus : + Khi ALE = 1 caùc bit AD0 … AD15 laø ñòa chæ. · Hold (input): Tín hieäu vaøo cho bieát moät linh kieän ñoøi quyeàn söû duïng bus, taùc ñoäng ôû möùc cao. · HLDA – Hold acknowlegde (output): Tín hieäu ra ôû möùc cao cho bieát yeâu caàu Hold ñöôïc chaáp thuaän, vi xöû lyù seõ treo bus noäi boä vaø caùc ñöôøng ñieàu khieån cuûa noù ôû traïng thaùi toång trôû cao. · DT/R – Data Transmit/Receive (output): Tín hieäu ra duøng ñeå ñieàu khieån höôùng truyeàn döõ lieäu cuûa vi maïch thu-phaùt. Caáu taïo ba traïng thaùi vaø traïng thaùi toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’. · DEN – Data enable (output): Tín hieäu ra ôû möùc thaáp cho moãi chu kyø thao taùc boä nhôù vaø I/O vaø caû INTRA ñieàu khieån ngoû ra cho pheùp cuûa 8286/8287 trong hoaït ñoäng thu – phaùt döõ lieäu. Caáu taïo ba traïng thaùi, traïng thaùi toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’. · S0, S1, S2 (thoâng tin traïng thaùi) : Vi maïch 8288 döïa treân caùc thoâng tin naøy ñeå thöïc hieän caùc thao taùc ñieàu khieån. Caáu taïo ba traïng thaùi, traïng thaùi toång trôû cao khi ‘Hold acknowledge’. Taùc ñoäng trong caùc chu kyø T4, T1 & T2 vaø trôû veà traïng thaùi thuï ñoäng ôû T3 hoaëc Tw khi Ready ôû möùc cao. Moät söï thay ñoåi baát kyø cuûa tín hieäu naøy trong chu kyø T4 ñöôïc duøng ñeå ñaùnh daáu thôøi ñieåm baét ñaàu cuûa chu kyø bus vaø trôû veà thuï ñoäng ôû trong T3 hoaëc Tw xaùc ñònh ñieåm keát thuùc cuûa chu kyø bus. S2 S1 S0 Thoâng tin ñieàu khieån 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 Chaáp nhaän ngaét. Ñoïc töø coång. Vieát ra coång Döøng. Nhaäp maõ leänh. Ñoïc töø boä nhôù. Vieát ra boä nhôù. Thuï ñoäng. · RQ/GT0, RQ/GT1 – Request/Gram (input/output): Hai tín hieäu yeâu caàu vi xöû lyù nhöôøng quyeàn söû duïng bus, tín hieäu RQ/GT0 coù möùc öu tieân cao hôn. Nguyeân lyù hoaït ñoäng ñöôïc moâ taû nhö sau: + Moät xung coù beà roäng moät chu kyø ñoàng hoà cho bieát moät linh kieän caàn söû duïng bus. + Trong chu kyø ñoàng hoà T4 hoaëc T1 vi xöû lyù gôûi ñeán linh kieän ñoù xung coù beà roäng chu kyø ñoàng hoà cho bieát vi xöû lyù chaáp nhaän nhöôøng quyeàn söû duïng bus vaø noù seõ tieán vaøo traïng thaùi ‘Hold acknowledge’ sau xung ñoàng hoà keá tieáp ñeå treo bus cuûa chính noù. + Xung beà roäng chu kyø ñoàng hoà ñöôïc gôûi ñeán 8086 cho bieát quaù trình ‘Hold’ keát thuùc vaø vi xöû lyù trôû laïi quaûn lyù bus xau khi chaám döùt chu kyø ñoàng hoà keá tieáp. Neáu yeâu caàu naøy xaûy ra trong khi vi xöû lyù ñang truy xuaát boä nhôù, noù seõ treo bus trong khoaûngT4 neáu thoûa nhöõng dieàu kieän sau ñaây: Yeâu caàu xaûy ra trong khi hoaëc tröôùc T2. Chu kyø hieän haønh khoâng phaûi laø byte thaáp cuûa word (ôû ñòa chæ leû). Chu kyø hieän haønh khoâng ôû traïng thaùi chaáp nhaän ngaét. Khoâng coù chæ thò khoùa. Neáu bus khoâng baän khi coù yeâu caàu thì coù hai tröôøng hôïp seõ xaûy ra. Bus seõ treo ôû chu kyø ñoàng hoà keá tieáp. Moät chu boä nhôù seõ khôûi ñoäng trong voøng 3 chu kyø ñoàng hoà. · Clock (output): Möùc cao baùo cho caùc linh kieän ngoaøi bieát (Co-processor) raèng chu kyø bus tieáp theo khoâng ñöôïc pheùp giaùn ñoaïn, ñieàu naøy xaûy ra khi trong chöông trình coù chæ thò ‘Clock’. Caáu taïo ngoõ ra ba traïng thaùi, traïng thaùi toång trôû cao khi vi xöû lyù ôû cheá ñoä ‘Hold acknowledge’ · QS1, QS0 – Queue status (output): Ngoõ ra cho bieát traïng thaùi cuûa haøng ñôïi leänh, nhöõng thoâng tin naøy caàn thieát cho Co-processor. QS0 QS1 Traïng thaùi haøng ñôïi leänh 0 0 1 1 0 1 0 1 Khoâng hoaït ñoäng . Xoùa noäi dung haøng ñôïi keänh. Naïp byte maõ leänh ñaàu tieân vaøo thanh ghi leänh. Naïp byte maõ leänh tieáp theo cuûa leänh nhieàu byte III. CAÙC PHÖÔNG PHAÙP ÑÒNH ÑÒA CHÆ CUÛA VI XÖÛ LYÙ 8086: Phöông phaùp ñònh ñòa chæ (Addressing Mode) laø caùch ñeå CPU tìm thaáy toaùn haïng cho caùc leänh cuûa noù khi hoaït ñoäng. Moät boä vi xöû lyù coù theå coù nhieàu cheá ñoä ñònh ñòa chæ. Caùc cheá ñoä ñònh ñòa chæ naøy ñöôïc xaùc ñònh ngay töø khi cheá taïo ra boä vi xöû lyù vaø sau naøy ngöôøi ta laáy ñoù ñeå laøm chuaån maø khoâng thay ñoåi. Ngoaøi caùc phöông phaùp ñònh ñòa chæ: töùc thôøi, tröïc tieáp, giaùn tieáp gioáng nhö cuûa 8085, vi xöû lyù 8086 coøn coù theâm caùc caùch ñònh ñòa chæ khaùc vaø ñöôïc phaân loaïi nhö sau: Ñònh ñòa chæ baèng thanh ghi. Ñònh ñòa chæ töùc thôøi. Ñònh ñòa chæ tröïc tieáp. Ñònh ñòa chæ giaùn tieáp. Ñònh ñòa chæ töông ñoái. Baèng caùch keát hôïp caùc phöông phaùp ñònh ñòa chæ khaùc nhau trong moät chæ thò, coù theå taïo ra nhieàu khaû naêng phöùc taïp ñeå truy xuaát toaùn haïng (operand) caùc thieát bò vaøo – ra chæ ñöôïc truy caäp baèng caùc phöông phaùp tröïc tieáp vaø giaùn tieáp. Thöù töï moâ taû byte cuûa moät word ñöôïc löu trong boä nhôù gioáng nhö qui ñònh cuûa 8085, coù nghóa laø caùc byte thaáp (LSB) ôû ñòa chæ thaáp vaø caùc byte cao (MSB) ñöôïc ñaët ôû ñòa chæ cao hôn keá caän. Trong caùc trình baøy sau ñaây, boä ñeám chöông trình PC (Program Counter) chöùa ñòa chæ offset cuûa chæ thò keá tieáp seõ thöïc hieän, chæ thò naøy ñaû saún saøng trong haøng ñôïi leänh. Con troû leänh IP troû ñeán ñòa chæ cao hôn, ñoù laø byte tieáp theo seõ ñöôïc BIU nhaäp vaøo haøng ñôïi leänh. 1). Caùc phöông phaùp ñònh ñòa chæ thoâng duïng: 1.1) Ñònh ñòa chæ töùc thôøi: Trong phöông phaùp naøy toaùn haïng nguoàn chính laø döõ lieäu caàn xöû lyù cuûa chæ thò. AX BX CX DX SP BP SI DI 0100 PC O D I T S Z A P C FI B8 00 12 CS DS SS ES 2300 B8 00 12 O D I T S Z A P C FI AX BX CX DX SP BP SI DI CS DS SS ES 2300 0103 PC Sau Tröôùc CPU Boä nhôù 1200 2300 2300 0100 0103 Hình1.3 :Phöông phaùp ñònh ñòa chæ töùc thôøi Mov Ax, 1200 Thí duï: Mov ax, 1200 1.2). Phöông phaùp ñònh ñòa chæ tröïc tieáp: Trong chæ thò bao goàm ñòa chæ offset cuûa toaùn haïng, ñòa chæ ñoaïn ñöôïc quy ñònh laø noäi dung cuûa thanh ghi DS. Thí duï: Mov ax [0230] I/O 260 1C I/O 260 1C 0260 Hình1.4:Phöông phaùp ñònh ñòa chæ giaùn tieáp 0101 0100 2300 2300 1200 Boä nhôù CPU Tröôùc Sau PC 0101 CS DS SS ES 2300 SP BP SI DI AX BX CX DX FI O D I T S Z A P C EC CS DS SS ES 2300 EC FI O D I T S Z A P C PC 0100 SP BP SI DI 1.3). Ñònh ñòa chæ giaùn tieáp: Trong phöông phaùp truy xuaát giaùn tieáp caùc coång luoân luoân taùc ñoäng ñeán thanh ghi DX, noäi dung cuûa DX laø ñòa chæ 16 bit cuûa coång. Soá löôïng coång laø 64k. Hình 2.4: Phöông phaùp ñònh ñòa chæ töông ñoái AX BX CX DX SP BP SI DI 0100 PC O D I T S Z A P C FI 8B 07 CS DS SS ES 2300 8B 07 O D I T S Z A P C FI AX BX CX DX SP BP SI DI CS DS SS ES 2300 1002 PC Sau Tröôùc CPU Boä nhôù 1200 2300 2300 0100 0103 2780 2780 00 12 00 12 2080 2080 0280 0280 Thí duï: IN AL, DX CHÖÔNG II KHAÛO SAÙT TOÅNG QUAÙT TAÄP LEÄNH CUÛA VI XÖÛ LYÙ 8086 CAÙCH MAÕ HOAÙ LEÄNH CUÛA 8086 Vi xöû lyù 8086 coù nhieàu phöông phaùp ñònh ñòa chæ vaø cuõng coù nhieàu khaû naêng keát hôïp caùc phöông phaùp ñoù laïi vôùi nhau. Tuy nhieân, moät leänh chæ caàn 6 byte ñeå maõ hoùa, vaø byte baét ñaàu laø maõ coâng taùc (Operations code), byte tieáp theo chöùa kieåu ñòa chæ vaø tieáp theo ñoù coù theå laø moät hoaëc hai byte duøng ñeå chöùa ñòa chæ. Caùc byte cuoái cuøng goàm moät hoaëc hai chöùa toaùn haïng 8 hoaëc 16 bit. Thöïc teá ñeå bieåu dieån daïng thöùc caùc byte duøng ñeå maõ hoùa leänh Mov. Ta ttaáy raèng ñeå maõ hoùa leänh Mov ta phaûi caàn ít nhaát laø hai byte, trong ñoù 6 bit cuûa byte ñaàu duøng ñeå chöùa maõ leänh. Ñoái vôùi leänh Mov ñeå chuyeån döõ lieäu kieåu: Tröø thanh ghi ñoaïn Thanh ghi « thanh ghi Boä nhôù « thanh ghi Thì bit ñaàu (opcode) naøy luoân laø ‘100010’ (ñoái vôùi thanh ghi ñoaïn thì khaùc). Ñoái vôùi bit ‘D’ duøng ñeå chæ höôùng ñi cuûa döõ lieäu. D = 0 thì döõ lieäu ñi töø thanh ghi cho bôûi 3 bit cuûa REG. D = 1 döõ lieäu ñi ñeán thanh ghi cho bôûi 3 bit REG. Ñoái vôùi bit W duøng ñeå chæ raèng moät byte (W = 0) hoaëc moät töø (W = 1) seõ ñöôïc chuyeån. DispL DispH Byte1 Byte 2 Byte 3 Byte 4 D W Mod 1 0 0 0 1 0 hoaëc Opcode REG M/R Ñòa chæ tröïc tieáp phaàn thaáp Ñòa chæ tröïc tieáp phaàn cao Disp: displacement (dòch chuyeån ) KHAÛO SAÙT TOÅNG QUAÙT TAÄP LEÄNH CUAÛ VXL 8086. Taäp leänh cuûa 8086 goàm 9 nhoùm leänh: Nhoùm leänh truyeàn soá lieäu. Nhoùm leänh soá hoïc. Nhoùm leänh thao taùc chuoãi. Nhoùm leänh logic. Nhoùm leänh xöû lyù bit. Nhoùm leänh ñieàu khieån chöông trình. Nhoùm leänh ngoân ngöõ baäc cao. Nhoùm leänh ôû cheá ñoä baûo veä. Nhoùm leänh ñieàu khieån caùc boä vi xöû lyù. Qua nhöõng nhoùm leänh giôùi thieäu treân nhoùm thöïc hieän ñeà taøi chæ khaûo saùt nhöõng nhoùm leänh thoâng duïng nhaèm phuïc vuï cho vieäc laäp trình baèng ngoân ngöõ maùy. 2.1). Nhoùm leänh truyeàn soá lieäu: Caùc leänh truyeàn döõ lieäu seõ sao cheùp döõ lieäu giöõa thanh ghi vôùi thanh ghi, vôùi boä nhôù hoaëc vôùi khoái vaøo-ra. Chuùng coù theå söû duïng nhieàu caùch ñònh ñòa chæ khaùc nhau. Trong caùch vieát leänh döôùi daïng gôïi nhôù: toaùn haïng ñaàu tieân laø thanh ghi ñích hoaëc ñòa chæ ñích vaø tieáp sau daáu phaåy laø thanh ghi nguoàn hoaëc ñòa chæ nguoàn. Khaùc vôùi 8085, trong 8086 taát caû caùc leänh truyeàn döõ lieäu ñeàu duøng leänh “Mov” ¨ Truyeàn töø thanh ghi vaøo thanh ghi: Mov (Reg1), (Reg2) Noäi dung (Reg2) ñöôïc sao cheùp vaøo (Reg1). Thí duï: Mov AL, BL Sao cheùp noäi dung BL vaøo thanh ghi AL. ¨ Truyeàn töø thanh ghi vaøo boä nhôù: Mov (Mem), (Reg) Ñoái vôùi leänh byte, noäi dung cuûa thanh ghi ñöôïc ñöa vaøo ñòa chæ cuûa oâ nhôù. Ñoái vôùi leänh word thì noäi dung cuûa thanh ghi ñöôïc ñöa vaøo hai oâ nhôù coù ñòa chæ laàn löôïc laø (Mem) vaø (Mem + 1). Thí duï: Mov [1200], BL Sao cheùp noäi dung cuûa thanh ghi BL vaøo oâ nhôù coù ñòa chæ töông ñoái laø 1200. ¨ Truyeàn töø oâ nhôù vaøo thanh ghi: Mov (Reg), (Mem) Ñoái vôùi leänh byte, noäi dung oâ nhôù ñöôïc cheùp vaøo thanh ghi. Ñoái vôùi leänh word, noäi dung cuûa 2 oâ nhôù (Mem) vaø (Mem + 1) ñöôïc cheùp vaøo thanh ghi. Thí duï: Mov BL, [1500] Sao cheùp noäi dung oâ nhôù taïi ñòa chæ 1500 vaøo thanh ghi BL. Mov BX, [1500] Sao cheùp noäi dung hai oâ nhôù taïi ñòa chæ 1500 vaø 1501 vaøo thanh ghi BX (oâ 1500 vaøo BL vaø oâ 1501 vaøo BH) Chuù yù: neáu söû duïng AL hoaëc AX trong caùc leänh truyeàn töø thanh ghi vaøo oâ nhôù vaø ngöôïc laïi seõ nhaän ñöôïc maõ coâng taùc ngaén hôn khi söû duïng caùc thanh ghi khaùc. ¨ Truyeàn töùc thôøi vaøo thanh ghi: Mov (Reg), (Data) Trong leänh naøy, döõ lieäu ñöôïc truyeàn töùc thôøi vaøo thanh ghi. Thí duï: Mov BL, 20 Giaù trò 20 ñöôïc ñöa vaøo thanh ghi BL. ¨ Truyeàn töùc thôøi vaøo boä nhôù: Mov (Mem), (Data) Trong leänh byte döõ lieäu ñöôïc truyeàn töùc thôøi vaøo oâ nhôù coù ñòa chæ (Mem). Trong leänh word döõ lieäu ñöôïc truyeàn töùc thôøi vaøo 2 oâ nhôù coù ñòa chæ (Mem) vaø (Mem + 1). Thí duï: Mov [1200], 50 Giaù trò 50 ñöôïc ñöa vaøo oâ nhôù coù ñòa chæ 1200. Mov Word PTR [1200], 50 Giaù trò Word 0050 ñöôïc ñöa vaøo 2 oâ nhôù baét daàu taïi ñòa chæ 1200:50 (LSB) vaøo ñòa chæ 1200:00 (MSB) vaøo ñòa chæ 1201 Truy xuaát tröïc tieáp coång: IN (Reg), (Port) Ñoïc noäi dung cuûa coång vaøo thanh ghi. thanh ghi söû duïng l2 AL (daïng byte) vaø AX (daïng Word), ñòa chæ coång laø moät soá 8 bit. OUT (Reg), (Port) Xuaát noäi dung cuûa thanh ghi ra coång. Truy xuaát giaùn tieáp coång: IN (Reg), DX Ñoïc noäi dung cuûa coång coù ñòa chæ chöùa trong DX vaøo thanh ghi. Thanh ghi söû duïng laø AL hoaëc AX, ñòa chæ coång laø soá 16 bit. OUT DX, (Reg) Gôûi noäi dung thanh ghi ra coång coù ñòa chæ chöùa trong DX 2.2). Nhoùm leänh soá hoïc: Bao goàm caùc pheùp tính cô baûn (coäng, tröø, nhaân vaø chia) vaø pheùp so saùnh, toaùn haïng coù theå laø döõ lieäu 8 bit hoaëc 16 bit, keát quaû coù theå laø 8 bit, 16 bit hoaëc 32 bit. Caùc toaùn haïng ñöôïc chöùa trong thanh ghi boä nhôù töùc thôøi. Tuøy theo thao taùc, keát quaû coù theå ñöôïc chöùa trong 1 hoaëc 2 thanh ghi trong boä nhôù. · Pheùp coäng: Vi xöû lyù 8086 thöïc hieän pheùp coäng coù löu yù soá nhôù hoaëc khoâng löu yù soá nhôù 8 bit hoaëc 16 bit. + Soá haïng ñaàu tieân ñöôïc chöùa trong caùc thanh ghi döõ lieäu (AX, BX, CX, DX, AH, AL, BH …), trog moät thanh ghi chæ soá hoaëc moät oâ nhôù. Soá haïng thöù hai coù theå laø töùc thôøi trong thanh ghi hoaëc trong boä nhôù. Hai soá haïng khoâng theå cuøng ôû trong boä nhôù, keát quaû pheùp coäng ñöôïc chöùa trong toaùn haïng thöù nhaát. Sau ñaây laø baûng lieät keâ leänh coäng döôùi daïng gôïi nhôù: Coäng khoâng löu yù soá nhôù Coäng coù löu yù soá nhôù Thí duï ADD (accu), (data) ADD (mem), (data) ADD (reg), (data) ADD (reg1), (reg2) ADD (reg), (mem) ADD (mem), (reg) ADC (accu), (data) ADC (mem), (data) ADC (reg), (data) ADC (reg1), (reg2) ADC (reg), (mem) ADC (mem), (reg) ADD AX, 1250 ADD Byte PTR [0900],50 ADD BL, 50 ADC AL, AH ADD CX, [0800] ADC [0600], DL · Pheùp tröø: 8086 coù theå thöïc hieän pheùp tröø vôùi 8 bit hoaëc 16 bit, leänh SBB coù löu yù soá thieáu vaø leänh SUB khoâng löu yù soá thieáu. Sau ñaây laø baûng lieät keâ leänh tröø döôùi daïng gôïi nhôù: Tröø coù soá thieáu Tröø khoâng coù soá thieáu Thí duï SUB (accu), (data) SUB (mem), (data) SUB (reg), (data) SUB (reg1), (reg2) SUB (reg), (mem) SUB (mem), (reg) SBB (accu), (data) SBB (mem), (data) SBB (reg), (data) SBB (reg1), (reg2) SBB (reg), (mem) SBB (mem), (reg) SUB AX, 1230 SBB Byte PTR [5000], 90 SUB BL, 50 SBB AL, DL SUB CX, [1230] SBB [0300], DL Chöông III GIAO TIEÁP VÔÙI MAÙY TÍNH I. GIAO TIEÁP SONG SONG GIAO TIEÁP QUA COÅNG MAÙY IN: 1.1 Vaøi neùt cô baûn veà coång maùy in: Vieäc noái maùy in vôùi maùy tính ñöôïc thöïc hieân qua oå caém 15 chaân ôû phía sau maùy tính. Nhöng ñaây khoâng phaûi chæ laø choã noái vôùi maùy in maø khi söû duïng maùy tính vaøo vieäc khaùc, nhö truyeàn döõ lieäu töø maùy tính tôùi moät thieát bò khaùc, hay ñieàu khieån thieát bò baèng maùy tính thì vieäc gheùp noái cuõng ñöôïc gheùp noái qua coång maùy in. Qua coång naøy döõ lieäu ñöôïc truyeàn ñi song song, neân ñoâi khi coøn ñöôïc goïi la coång gheùp noái song song vaø toác ñoä truyeàn cuõng ñaït ñeán möùc ñaùng keå. Taát caû caùc ñöôøng daãn cuûa coång maùy in ñeàu töông thích vôùi TTL. Nghóa laø chuùng ñeàu cung caáp möùc ñieän aùp naèm giöõa 0V ñeán 5V. Do ñoù ta caà löu yù laø caùc ñöôøng daãn vaøo coång naøy khoâng ñöôïc ñaët möùc ñieän aùp quaù lôùn. Söï saép xeáp caùc chaân cuûa coång maùy in vôùi taát caû caùc ñöôøng daãn ñöôïc moâ taû nhö sau: 1 25 14 O O O O O O O O O O O O O O O O O O O O O O O O O HÌNH 3.1 Chöùc naêng caùc chaân Chaân Kyù hieäu Out/in Chöùc naêng 1 2 .. 9 10 11 12 13 14 15 16 17 18 ..25 Strobe D0 .. D7 ACK Busy PE SLCT AF ERROR INIT SLCTIN GND Out Out In In In In Out In Out Out Byte ñöôïc in Caùc ñöôøng döõ lieäu D0 .. D7. Phaàn thu baùo cho phaàn phaùt bieát ñaõ thu xong moät kí töï Phaàn tín hieäu do phaàn thu baùo cho phaàn phaùt bieát laø phaàn thu ñang baän Baùo heát giaâi Baùo l75a choïn maùy in Maùy tính baùo ra maùy in töï naïp giaá Baùo caùc loãi cuûa maùy in Reset maùy in Chon maùy in Noái ñaát 1.3 . Trao ñoåi vôùi caùc ñöôøng daãn tín hieäu: LPT1: Goàm coù 3 thanh ghi: thanh ghi döõ lieäu, thanh ghi traïng thaùi vaø thanh ghi ñieàu khieån. Thanh ghi döõ lieäu: goàm coù 8 bit döõ lieäu, coù ñòa chæ laø 378h. HÌNH 3.1 CHAÂN SOÁ : 9 8 7 6 5 4 3 2 D7 D6 D5 D4 D3 D2 D1 D0 Thanh ghi trang thaùi: coù ñòa chæ laø 379h. ERROR SLCT PE ACK BUSY D7 D6 D5 D4 D3 D2 D1 D0 c. Thanh ghi ñieàu khieån coù ñòa chæ : 37AH Strobe AF INIT SLCTIN ( Ngaét 8259 ) D7 D6 D5 D4 D3 D2 D1 D0 . Hoaït ñoäng cuûa vieäc trao ñoåi döõ lieäu . hoaït ñoäng cuûa phaàn phaùt + ñoïc Busy cho ñeán khi Busy\ = 1. + göûi döõ lieäu ra bus döõ lieäu + cho Strobe = 0. + chuoån bò döõ lieäu tieáp theo + quay veà böôùc 1 Hoaït ñoâng cuûa phaàn thu + ñoïc Strobe cho ñeán khi Strobe = 1. + Busy = 0 , ACK = 0. + ñoïc döõ lieäu vaøo . + ñöa ACK = 1 . + xöû lyù döõ lieäu . + cho Busy = 1 ñeå phaùt kyù töï tieáp theo + quay veà böôùc 1. BUSY = 1 BEGIN GÔÛI DÖÕ LIEÄU STROBE = 1 ACK = 1 STROBE = 0 HEÁT FILE THOAÙT RA CHUAÂN BÒ DÖÕ LIEÄU TIEÁP THEO HÌNH 5.1 LÖU ÑOÀ PHAÙT BEGIN STROBE =1 BUSY =1 , ACK =0 ÑOÏC DÖÕ LIEÄU XÖÛ LYÙ DÖÕ LIEÄU ACK = 1 BUSY = 1 LÖU ÑOÀ THU HÌNH 5.2 . GIAO TIEÁP QUA SLOT CARD. (coù ñòa chæ töø 300..31FH): Trong maùy tính ngöôøi ta cheá taïo saün caùc slot cho pheùp ngöôøi söû duïng tính naêng cuûa maùy vi tính baèng caùch gaén theâm caùc thieát bò vaøo noù. Moãi slot ñeàu coù caùc ñöôøng döõ lieäu (data), ñòa chæ (address), caùc ñöôøng +5V , – 5V , + 12V , -12V vaø caùc ñöôøng ñieàu khieån nhö CLK, IRQ, RESET, /IOW, IOR … vì vaäy neáu thieát keá maïch giao tieáp qua slot seõ giaûm ñöôïc raát nhieàu linh kieän, giaûm ñöôïc boä nguoàn beân ngoaøi, deã ñieàu khieån, giaù thaønh thaáp neân ñoàng thôøi toác ñoä truyeàn döõ lieäu cuõng nhanh. Tuy nhieân beân caïnh nhöõng öu ñieåm noù cuõng coù nhöõng nhöôïc ñieåm nhö: do slot card giao tieáp ñöôïc gaén beân trong maùy neân caùch giao tieáp naøy khoù nhaän ñöôïc döõ lieäu töø beân ngoaøi. Noù bò haïn cheá veà khoaûng caùch laøm vieäc ñoàng thôøi moãi laàn söû duïng phaûi môû raùp maùy gaây baát tieän cho ngöôøi söû duïng. * Caùc raõnh caém trong maùy tinh PC: ÔÛ maùy tính PC/XT raõnh caém trong maùy tính chæ coù 1 loaïi vôùi ñoä roäng laø 8 bit vaø tuaân theo tieâu chuaån ISA (Industry Standard Architecture). Töø maùy tính AT trôû ñi vieäc boá trí chaân treân raõnh caém trôû leân phöùc taïp hôn, tuøy theo tieâu chuaån khi löïa choïn maùy tính, caùc loaïi raõnh caém theo tieâu chuaån khaùc nhau coù theå kieåm tra nhö sau: + Raõnh caém 16 bit theo tieâu chuaån ISA (Industry standard Architecture) + Raõnh caém PS/2 vôùi 16 bit theo tieâu chuaån MCA (Micro Channel Architecture). + Raõnh caém PC/2 vôùi 32 bit theo tieâu chuaån MCA + Raõnh caém 32 bit theo tieâu chuaän EISA (Extended Micro Channel Architecture) + Raõnh caém 32 bit theo tieâu chuaån VESA. + Raõnh caém 32 bit theo tieâu chuaån PCI. Cho ñeán nay phaàn lôùn caùc card gheùp noái duøng trong kyõ thuaät do löôøng vaø ñieàu khieån ñeàu ñöôïc cheá taïo ñeå ñaët vaøo raõnh caém theo tieâu chuaån ISA. GIAO TIEÁP NOÁI TIEÁP QUA COÅNG COM . RS232: VAØI NEÙT CÔ BAÛN VEÀ COÅNG NOÁI TIEÁP: Coång noái tieáp RS232 laø moät loaïi giao dieän phoå bieán roäng raõi nhaát, ta coøn goïi laø coång COM1 , COM2 ñeå töï do cho caùc öùng duïng khaùc nhau. Gioáng nhö coång maùy in,coång noái tieáp RS232 cuõng ñöôïc söû duïng raát thuaän tieän trong vieäc gheùp noái maùy tính vôùi caùc thieát bò ngoaïi vi. Vieäc truyeàn döõ lieäu qua coång RS232 ñöôïc tieán haønh theo caùch noái tieáp, nghóa laø caùc bit döõ lieäu ñöôïc gôûi ñi noái tieáp voái nhau treân moät ñöôøng daãn. Tröôùc heát loaïi truyeàn naøy coù khaû naêng duøng cho nhöõng khoaûng caùch lôùn hôn, bôûi vì khaû naêng gaây nhieãu laø nhoû ñaùng keå hôn laø khi duøng moät coång song song. Vieäc duøng coång song song coù moät nhöôïc ñieåm ñaùng keå laø caùp truyeàn nhieàu sôïi vaø vì vaäi raát ñaét tieàn, hôn nöa möùc tín hieäu naèm trong khoûang 0..5V ñaõ toû ra khoâng thich öùng vôùi khoaûng caùch lôùn. Treân hình 5.3 laø söï boá trí chaân cuûa phích caém RS232 cuûa maùy tính PC. 1 2 3 4 5 6 7 8 9 O O O O O O O O O HÌNH 5.3 13 14 25 O O O O O O O O O O O O O O O O O O O O O O O O O CHAÂN (loaïi 9 chaân ) CHAÂN ( loaïi 25 chaân ) KYÙ HIEÄU YÙ NGHÓA 1 2 3 4 5 6 7 8 9 8 3 2 20 7 6 4 5 22 DCD RxD TxR DTR GND DSR RTS CTS RI Data carrier detect Nhaän döõ lieäu Phaùt döõ lieäu Döõ lieäu ñaàu cuoái saün saøng Noái ñaát Thieát bò thoâng tin saün saøng Yeâu caàu göûi Thieát bò thoâng tin saün saøng truyeàn Ring in dicator Vieäc truyeàn döõ lieäu xaåy ra treân 2 ñöôøng daãn qua chaân caém ra TxD, maùy tính göûi döõ lieäu cuûa noù ñeán thieát bò khaùc. Trong khi ñoù döõ lieäu maø maùy tính nhaän ñöôïc daãn ñeán chaân RxD. Caùc tín hieäu khaùc ñoùng vai troø nhö tín hieäu hoã trôï khi trao ñoåi thoâng tin vaø vì theá khoâng phaûi trong moïi öùng duïng ñeàu duøng ñeán. Möùc tín hieäu treân chaân ra RxD tuøy thuoäc vaøo ñöôøng daãn TxD vaø thoâng tin thöôøng naèm trong khoaûng – 12V.. + 12V caùc bit döõ lieäu ñöôïc ñaûo ngöôïc laïi. Möùc ñieän aùp ôû möùc cao naèm trong khoaûng – 3V vaø – 12V vaø möùc thaáp naèm trong khoaûng töø + 3Vvaø +12V. Traïng thaùi tónh treân ñöôøng daãn coù möùc ñieän aùp – 12V . Baèng toác ñoä baud ta thieát laäp toác ñoä truyeàn döõ lieäu caùc giaù trò thoâng thöôøng laø 300, 600, 1200, 2400, 4800, 9600 vaø 19200 baud. Kyù hieäu baud laø soá löôïng bit truyeàn trong 1s. Coøn moät vaán ñeà nöõa laø khuoâân maãu (Format) truyeàn döõ lieâu caàn phaûi ñöôïc thieát laäp nhö nhau caû beân göûi cuõng nhö beân nhaän caùc thoâng soá truyeàn coù theå ñöôïc thieát laäp treân maùy tính PC baèng caùc caâu leänh treân DOS. Ngaøy nay Windows cuõng coù caùc chöông trình rieâng ñeå söû duïng, khi ñoù caùc thoâng soá truyeàn döõ lieäu nhö: toác ñoä baud, soá bit döõ lieäu, soá bít döøng, bit chaün leû (parity) coù theå ñöôïc thieát laäp moät caùch raát ñôn giaûn. SÖÏ TRAO ÑOÅI CUÛA CAÙC ÑÖÔØNG DAÃN TÍN HIEÄU Cuõng nhö ôû coång maùy in, caùc ñöôøng daãn tín hieäu rieâng bieät cuõng cho pheùp trao ñoåi qua laïi caùc ñòa chæ trong maùy tính PC. Trong tröôøng hôïp naøy ngöôøi ta thöôøng söû duïng nhöõng vi maïch coù ñoä tích hôïp cao ñeå coù theå hôïp nhaát nhieà chöùc naêng treân 1 chip. ÔÛ maùy tính PC thöôøng coù moät boä phaùt/nhaän khoâng ñoàng boä vaïn naêng goïi taét laø UART: Universal Asynchronous Receiver/Transmister. Ñeå ñieàu kh._.

Các file đính kèm theo tài liệu này:

  • docDO22.DOC