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

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

doc140 trang | Chia sẻ: huyen82 | Lượt xem: 1601 | 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ý 8085, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Boä giaùo duïc vaø ñaøo taïo ñaïi hoïc quoác gia tp. hoà chí minh TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA : ÑIEÄN _ ÑIEÄN TÖÛ BOÄ MOÂ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 Ù8085 Sinh vieân thöïc hieän : NGUYEÃN TRUNG DUÕNG Lôùp : 95KÑÑ Giaùo Vieân höôùng daãn : NGUYEÃN ÑÌNH PHUÙ TP. HOÀ CHÍ MINH 03-2000 Ñaïi Hoïc Quoác Gia Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät Thaønh Phoá Hoà Chí Minh ---o0o--- Coäng Hoøa Xaõ Hoäi Chuû Nghóa Vieät Nam Ñoäc Laäp – Töï Do – Haïnh Phuùc ---o0o--- KHOA ÑIEÄN BOÄ MOÂN ÑIEÄN – ÑIEÄN TÖÛ NHIEÄM VUÏ LUAÄN VAÊN TOÁT NGHIEÄP Hoï vaø teân: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lôùp: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Nghaønh: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Khoùa: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1- Ñaàu ñeà luaän vaên: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2- Cô sôû ban ñaàu: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3- Noäi dung caùc phaàn thuyeát minh: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4- Caùc baûn veõ ñoà thò: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5- Caùn boä höôùng daãn: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6- Ngaøy giao nhieäm vuï: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7- Ngaøy hoaøn thaønh nhieäm vuï: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Thoâng qua boä moân Ngaøy . . . . thaùng . . . . naêm 2000 Caùn boä höôùng daãn Chuû nhieäm boä moân BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC QUOÁC GIA TP.HCM TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA : ÑIEÄN_ÑIEÄN TÖÛ BOÄ MOÂN ÑIEÄN TÖÛ NHAÄN XEÙT LUAÄN VAÊN TOÁT NGHIEÄP CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN Hoï vaø teân sinh vieân : NGUYEÃN TRUNG DUÕNG Ngaønh : ÑIEÄN TÖÛ Khoùa : 1995 – 2000 Lôùp : 95KÑÑ GIAÙO VIEÂN HÖÔÙNG DAÃN: NGUYEÃN ÑÌNH PHUÙ Nhaän Xeùt Cuûa Giaùo Vieân Höôùng Daãn : Ngaøy thaùng naêm 2000 Giaùo vieân höôùng daãn BOÄ GIAÙO DUÏC VAØ ÑAØO TAÏO TRÖÔØNG ÑAÏI HOÏC QUOÁC GIA TP.HCM TRÖÔØNG ÑAÏI HOÏC SÖ PHAÏM KYÕ THUAÄT KHOA : ÑIEÄN_ ÑIEÄN TÖÛ NHAÄN XEÙT LUAÄN VAÊN TOÁT NGHIEÄP CUÛA GIAÙO VIEÂN DUYEÄT HOÏ VAØ TEÂN SINH VIEÂN : NGYEÃN TRUNG DUÕNG NGAØNH : ÑIEÄN TÖÛ KHOÙA : 1995 – 2000 LÔÙP : 95KÑÑ GIAÙO VIEÂN DUYEÄT LUAÄN VAÊN : Nhaän Xeùt cuûa Giaùo Vieân duyeät : Ngaøy thaùng naêm 2000 GIAÙO VIEÂN DUYEÄT Lôøi môû ñaàu Kyõ thuaät vi xöû lí vôùi toác ñoä phaùt trieån nhanh ñaõ vaø ñang mang ñeán nhöõng thay ñoåi to lôùn trong khoa hoïc vaø coâng ngheä cuõng nhö trong ñôøi soáng haøng ngaøy. Ngaøy nay, caùc thieát bò maùy moùc ngaøy caøng trôû neân thoâng minh hôn, caùc coâng vieäc ñöôïc thöïc hieän vôùi hieäu quaû cao hôn, ñoù cuõng laø nhôø vi xöû lyù, vi ñieàu khieån. Kyõ thuaät vi xöû lyù, vi ñieàu khieån laø kyõ thuaät cuûa töông lai, laø chìa khoùa ñi vaøo coâng ngheä hieän ñaïi. Ñoái vôùi sinh vieân chuyeân ngaønh ñieän töû, ñaây laø moät lónh vöïc môùi, höùa heïn vaø môû ra nhieàu trieån voïng. Ñeå goùp phaàn taïo neàn taûng ban ñaàu cho vieäc hoïc taäp, tìm hieåu kyõ thuaät vi xöû lyù vaø caùch truyeàn döõ lieäu töø vi xöû lyù vôùi caùc thieát bò beânh ngoaøi em xin ñeà nghò thöïc hieän ñeà taøi: “GIAO TIEÁP MAÙY TÍNH VÔÙI KIT VI XÖÛ LYÙ 8085”. Trong quaù trình thöïc hieän ñeà taøi naøy, maëc duø em ñaõ raát coá gaéng, xong chaéc chaén khoâng traùnh khoûi nhöõng thieáu soùt. Raát mong nhaän söï goùp yù, pheâ bình vaø chæ daãn cuûa quí thaày coâ vaø baïn ñoïc. Sinh vieân thöïc hieän Nguyeãn Trung Duõng Lôøi caûm taï Cuoán luaän vaên naøy ñöôïc hoaøn thaønh toát ñeïp theo ñuùng thôøi gian quy ñònh cuûa nhaø tröôøng cuõng nhö cuûa khoa.Vieäc ñaït ñöôïc keát quaû nhö treân khoâng chæ laø söï noã löïc cuûa em maø coøn söï giuùp ñôõ, chæ baûo cuûa thaày höôùng daãn, cuûa quyù thaày coâ vaø caùc baïn sinh vieân. Em xin chaân thaønh caùm ôn: Söï daïy doã, chæ baûo vaø goùp yù cuûa quyù thaày coâ trong khoa, ñaëc bieät laø caùc thaày coâ ôû caùc xöôûng thöïc taäp ñaõ taïo moïi ñieàu kieän thuaän lôïi cho chuùng em hoaøn thaønh luaän vaên. Söï giuùp ñôõ vaø chæ baûo taân tình cuûa Thaày höôùng daãn Nguyeãn Ñình Phuù trong quaù trình laøm luaän vaên. Xin caùm ôn caùc baïn sinh vieân trong khoa ñaõ giuùp ñôõ chuùng toâi raát nhieàu maët: nhö phöông tieän, saùch vôû, yù kieán … Sinh vieân thöïc hieän Nguyeãn Trung Duõng Chöông: Cô sôû lyù luaän Theå thöùc nghieân cöùu: 1. Thôøi gian nghieân cöùu: Quaù trình nghieân cöùu ñeà taøi ñöôïc xem laø moät qui trình coâng ngheä haún hoi vì ñoøi hoûi phaûi tieán haønh theo caùc khaâu keá tieáp nhau bao goàm vieäc choïn ñeà taøi, bieân soaïn ñeà cöông, thu thaäp döõ kieän, xöû lyù döõ kieän, vieát coâng trình nghieân cöùu. Luaän vaên toát nghieäp ñöôïc tieán haønh thöïc hieän trong khoaûng thôøi gian laø 6 tuaàn: Tuaàn 1 : Choïn ñeà taøi, chính xaùc hoùa ñeà taøi, soaïn ñeà cöông, thu thaäp kieän vaø taøi lieäu lieân heä. Tuaàn 2 : Bieân soaïn noäi dung phaàn lyù thuyeát. Tuaàn 3 : Thieát keá maïch treân giaáy vaø tieán haønh thi coâng, thuû maïch. Tuaàn 4 : Thieát keá baøn thöïc taäp. Tuaàn 5 : Soaïn baøi thöïc taäp cho moâ hình ñaõ thieát keá. Tuaàn 6 : Hoaøn chænh moâ hình,caân chænh phaàn lyù thuyeát ñeå in aán vaø noäp luaän vaên. 2. Phöông phaùp thu thaäp döõ kieän: Ñaây laø giai ñoaïn quan troïng, söû duïng caùc phöông phaùp vaø phöông tieän nghieân cöùu ñeå thu thaäp caùc döõ kieän veà ñeà taøi ñaõ xaùc ñònh. Döõ kieän ñaõ thu thaäp ñöôïc seõ laø chaát lieäu ñeå hình thaønh coâng trình thöïc hieän ñeà taøi. Vaán ñeà laø laøm sao thu thaäp ñöôïc döõ kieän ñaày ñuû, chính xaùc, vaø phuø hôïp vôùi noäi dung nghieân cöùu. Trong phaïm vi luaän vaên naøy ngöôøi nghieân cöùu söû duïng phöông phaùp tham khaûo taøi lieäu ñeå thu thaäp döõ kieän giaûi quyeát ñeà taøi. Vieäc tham khaûo taøi lieäu giuùp ngöôøi thöïc hieän boå sung theâm kieán thöùc, lyù luaän cuõng nhö phöông phaùp maø nhöõng coâng trình nghieân cöùu tröôùc ñoù ñaõ xaây döïng. Nhôø ñoù ngöôøi nghieân cöùu taäp trung giaûi quyeát vaán ñeà coøn toàn taïi. Tuy nhieân vieäc nghieân cöùu tham khaûo taøi lieäu luoân baûo ñaûm tính keá thöøa vaø phaùt trieãn coù choïn loïc. 3. Xöû lyù döõ kieän: Caùc döõ kieän sau khi ñöôïc thu thaäp chöa theå söû duïng ñöôïc ngay maø phaûi qua quaù trình saøng loïc, söûa chöõa, phaân tích khaùi quaùt thaønh lyù luaän . Taøi lieäu ñöôïc söû duïng laø nhöõng taøi lieäu coù chaát löôïng cao chuû yeáu laø taøi lieäu goác neân baûo ñaûm chính xaùc veà noäi dung ñeà caäp. 4. Trình baøy ñoà aùn: Ñeà taøi toát nghieäp ñöôïc trình baøy theo caáu truùc moät taäp ñoà aùn toát nghieäp ñeå phuø hôïp vôùi noäi dung vaø thôøi gian nghieân cöùu ñoàng thôøi ñaùp öùng ñuùng yeâu caàu veà chöông trình ñaøo taïo cuûa tröôøng. Trình baøy thaønh vaên coâng trình nghieân cöùu khoa hoïc laø giai ñoaïn hoaøn thaønh nghieân cöùu, do ñoù khoâng ñöôïc xem ñoù laø quaù trình kyõ thuaät maø laø moät quaù trình saùng taïo saâu saéc. Chính vieäc naém vöõng buùt phaùp trong nghieân cöùu khoa hoïc giuùp ngöôøi nghieân cöùu laøm saùng toû theâm nhöõng keát quaû ñaït ñöôïc, phaùt trieãn chuùng vaø coù theâm nhöõng kieán thöùc môùi. II. Cô sôû lyù luaän: Ñoà aùn toát nghieäp thöïc chaát laø moät quaù trình nghieân cöùu khoa hoïc - quaù trình nhaän thöùc vaø haønh ñoäng. Quaù trình naøy ñoøi hoûi phaûi coù thôøi gian nhaát ñònh töông xöùng vôùi noäi dung cuûa ñoái töôïng nghieân cöùu vaø tính chaát phöùc taïp cuûa vaán ñeà nghieân cöùu. Vieäc nghieân cöùu khoa hoïc giuùp ta tìm ra caùi môùi. Caùi môùi ôû ñaây khoâng nhöõng mang tính chuû quan cuûa ngöôøi nghieân cöùu maø coøn mang tính khaùch quan ñoái vôùi xaõ hoäi. Nghieân cöùu khoa hoïc phaûi nhaèm muïc ñích phuïc vuï xaõ hoäi, ñaùp öùng yeâu caàu thöïc tieãn. Hoaït ñoäng ngieân cöùu khoa hoïc muoán ñaït keát quaû toát phaûi hoäi ñuû caùc yeáu toá: Phöông tieän, phöông phaùp, cô sôû vaät chaát, maùy moùc thieát bò, hình thöùc toå chöùc. Caùc yeáu toá naøy coù moái quan heä höõu cô vaø phuø hôïp vôùi ñoái töôïng nghieân cöùu. CAÙC CÔ SÔÛ CHO VIEÄC NGHIEÂN CÖÙU ÑEÀ TAØI 1. Kieán thöùc vaø naêng löïc ngöôøi nghieân cöùu: Trong quaù trình nghieân cöùu vaø thöïc hieän ñeà taøi ngöôøi nghieân cöùu caàn phaûi caân nhaéc kyõ ñoä khoù vaø ñoä phöùc taïp cuûa ñeà taøi sao cho phuø hôïp vôùi khaû naêng,ø kieán thöùc vaø naêng löïc cuûa ngöôøi nghieân cöùu. Ñoä phöùc taïp cuûa ñeà taøi theå hieän ôû caùc maët: lónh vöïc nghieân cöùu roäng hay heïp, ôû moät ngaønh hay lieân ngaønh, ñoái töôïng nghieân cöùu laø ñoàng nhaát hay khoâng ñoàng nhaát. Tuy nhieân caàn löu yù raèng giaù trò cuûa ñeà taøi khoâng phuï thuoäc vaøo ñoä phöùc taïp cuûa noù. Ñeà taøi heïp chöa haún laø ñeà taøi keùm giaù trò. Moãi ñeà taøi nghieân cöùu khoa hoïc coù moät phaïm vi nhaát ñònh, phaïm vi naøy caøng heïp thì söï nghieân cöùu caøng saâu. Ñoä khoù cuûa ñeà taøi noùi leân tính vöøa söùc ñoái vôùi ngöôøi nghieân cöùu. Do ñoù ñoä phöùc taïp cuûa ñeà taøi thöôøng coù moái lieân heä töông hoå vôùi ñoä khoù cuûa noù. Kieán thöùc cuûa ngöôøi nghieân cöùu (ñaây laø ñieàu kieän chuû quan ôû ngöôøi nghieân cöùu). Tröôùc heát ñoù laø voán lieáng, kinh nghieäm cuûa ngöôøi nghieân cöùu. Giaùo sö Haø Vaên Taán ñaõ nhaän xeùt: “Trình ñoä hoïc sinh, sinh vieân hieän nay khoâng cho pheùp hoï ngay töø ñaàu choïn ñöôïc ñeà taøi nghieân cöùu. Vì vaäy phaûi coù söï gôïi yù cuûa thaày coâ giaùo…”. Moãi ñeà taøi nghieân cöùu khoa hoïc coù nhöõng yeâu caàu nhaát ñònh cuûa noù. Ngöôøi nghieân cöùu caàn naém vöõng noäi dung, phöông phaùp nghieân cöùu phuø hôïp vôùi ñeà taøi, noùi khaùc ñi ñeà taøi nghieân cöùu phaûi mang tính vöøa söùc. Ngöôøi nghieân cöùu phaûi theå hieän naêng löïc nghieân cöùu khoa hoïc bao goàm vieäc naém vöõng lyù thuyeát cô baûn cuûa khoa hoïc trong lónh vöïc nghieân cöùu cuûa mình, naém ñöôïc möùc ñoä nhaát ñònh veà söï phaùt trieãn vaø tieán boä thuoäc lónh vöïc nghieân cöùu. Coù nhö theá môùi choïn ñöôïc ñeà taøi coù giaù trò. Trong tình hình tieán boä cuûa khoa hoïc kyõ thuaät hieän nay treân theá giôùi, khoái löôïng thoâng tin khoa hoïc gia taêng vôùi qui moâ lôùn vaø nhòp ñoä nhanh ñoøi hoûi ngöôøi nghieân cöùu phaûi tham khaûo taøi lieäu nöôùc ngoaøi. Ñeå thöïc hieän ñöôïc vaán ñeà naøy ngöôøi nghieân cöùu ngöôøi nghieân cöùu khoa hoïc caàn coù soá voán ngoaïi ngöõ nhaát ñònh. Theå hieän loøng ham meâ khoa hoïc vaø quyeát taâm nghieân cöùu tìm toøi chaân lyù. 2-Vaán ñeà thöïc tieãn: Ngöôøi nghieân cöùu phaûi coi thöïc tieãn laøm cô sôû, laø ñoäng löïc cuûa nhaän thöùc. Ang - ghen vieát: “Khi xaõ hoäi coù nhöõng yeâu caàu kyõ thuaät thì xaõ hoäi thuùc ñaåy khoa hoïc hôn möôøi tröôøng ñaïi hoïc”. Maët khaùc thöïc tieãn cuõng laø tieâu chuaån ñeå kieåm tra nhaän thöùc . Thöïc teá laø nhöõng söï vieäc coù thaät, nhöõng tình hình cuï theå, nhöõng vaán ñeà ñaõ hoaëc chöa ñöôïc giaûi quyeát trong cuoäc soáng. Ngöôøi nghieân cöùu vôùi kinh nghieäm baûn thaân trong coâng taùc haøng ngaøy thöôøng thaáy ñöôïc caùc maët cuûa vaán ñeà, caùc moái quan heä phöùc taïp, caùc dieãn bieán, phöông höôùng phaùt trieån cuûa söï vaät töø ñoù coù ñònh höôùng thích hôïp giaûi quyeát ñeà taøi. Chính thöïc tieãn giuùp ngöôøi nghieân cöùu tìm thaáy vaán ñeà moät caùch cuï theå. Ngöôøi nghieân cöùu phaûi xem thöïc tieãn cao hôn nhaän thöùc (lyù luaän) vì noù coù öu ñieåm khoâng nhöõng coù tính phoå bieán maø coøn coù tính hieän thöïc tröïc tieáp. Hoà Chuû Tòch cuõng ñaõ daïy: “Hoïc taäp thì theo nguyeân taéc: kinh nghieäm vaø thöïc tieãn phaûi ñi cuøng nhau”. Ñeà taøi thöïc hieän mang tính thöïc tieãn, noäi dung cuûa ñeà taøi laø coù thaät, phaùt trieån töø thöïc teá khaùch quan. Coù theå noùi haàu nhö moïi coâng trình nghieân cöùu ñieàu coù giaù trò thöïc teá cuûa noù, chæ khaùc nhau ôû möùc ñoä ít nhieàu, phuïc vuï tröôùc maét hay laâu daøi, giaùn tieáp hay tröïc tieáp. 3. Taùc ñoäng cuûa ñieàu kieän khaùch quan ñeán vieäc thöïc hieän ñeà taøi: Trong quaù trình nghieân cöùu thöïc hieän ñeà taøi ngöôøi nghieân cöùu laø yeáu toá chuû quan goùp phaàn quan troïng ñeán keát quaû coøn ñoái töôïng nghieân cöùu, phöông phaùp nghieân cöùu keå caû phöông tieän ngieân cöùu, thôøi gian nghieân cöùu cuøng nhöõng ngöôøi coäng taùc nghieân cöùu vaø ngöôøi höôùng daãn nghieân cöùu laø nhöõng ñieàu kieän khaùch quan aûnh höôûng tröïc tieáp ñeán vieäc nghieân cöùu vaø keát quaû nghieân cöùu. Ngöôøi nghieân cöùu caøng naém chaéc caùc yeáu toá khaùch quan ñoù bao nhieâu thì keát quaû nghieân cöùu caøng ñöôïc khaúng ñònh baáy nhieâu. Chöông I: CAÁU TRUÙC VI XÖÛ LYÙ 8085 CAÁU TAÏO BEÂN TRONG VI XÖÛ LYÙ 8085 1. Caáu truùc cuûa moät vi xöû lyù cô baûn : Moät vi xöû lyù veà cô baûn goàm coù 3 khoái chöùc naêng: ñôn vò thöïc thi (Execution), boä ñieàu khieån tuaàn töï (Sequencer) vaø bus giao tieáp. - Ñôn vò thöïc thi : Xöû lyù caùc leänh soá hoïc vaø logic. Caùc toaùn haïng lieân quan coù maët ôû caùc thanh ghi döõ lieäu hoaëc ñòa chæ hoaëc töø bus noäi. - Boä ñieàu khieån tuaàn töï : Bao goàm boä giaûi maõ leänh (Intrustruction Decoder) vaø boä ñeám chöông trình (Program Counter). + Boä ñeám chöông trình goïi caùc leänh chöông trình tuaàn töï. + Boä giaûi maõ leänh thì khôûi ñoäng caùc böôùc caàn thieát ñeå thöïc hieän leänh. Boä ñieàu khieån tuaàn töï taïo thaønh moät heä thoáng logic tuaàn töï maø caùch thöùc hoaït ñoäng cuûa noù ñöôïc chöùa trong ROM. Noäi dung chöùa trong ROM ñöôïc goïi laø vi chöông trình. Caùc leänh beân ngoaøi trong tröôøng hôïp naøy xaùc ñònh caùc ñòa chæ vaøo vi chöông trình. Khi chöông trình baét ñaàu thöïc hieän thì boä ñeám chöông trình PC ñöôïc ñaët ôû ñòa chæ baét ñaàu, thöôøng laø ñòa chæ 0000H (vôùi xi xöû lyù 8 bit). Ñòa chæ naøy ñöôïc chuyeån ñeán boä nhôù thoâng qua bus ñòa chæ (Address Bus). Khi tín hieäu Read ñöôïc ñöa vaøo ôû bus ñòa chæ noäi dung cuûa boä nhôù lieân quan xuaát hieän treân bus döõ lieäu (data bus) vaø seõ ñöôïc chöùa ôû boä giaûi maõ leänh (Instruction Decoder). Sau khi khôûi ñoäng moät soá böôùc caàn thieát ñeå thöïc thi leänh nhôø moät soá chu kyø maùy vaø khi leänh ñaõ thöïc thi, thì boä giaûi maõ leänh laøm cho boä ñeám chöông trình chæ ñeán oâ ñòa chæ cuûa leänh keá. Trong ñeà taøi naøy, söû duïng vi xöû lyù 8085 laø moät vi xöû lyù 8 bit neân döôùi ñaây xin trình baøy caáu truùc cuûa vi xöû lyù 8085. Address Register Data Register ALU Instruction Decoder Program Counter Logic Control Hình 1.1 : Sô ñoà khoái cuûa moät vi xöû lyù 8 bit. Control Logic Instruction Register Instruction Decoder TEMP-1 TEMP-2 ALU Out SP PC High Low Memory Address Register Accumulator (A) Status Register Register B Register D Register H Register C Register E Register L 16 bit Address Bus 8 bit Data Bus IN IN 8 bit Internal data bus Bus Hình 1.2 : Sô ñoà caáu truùc cuûa moät vi xöû lyù. Qua sô ñoà treân, ta thaáy vi xöû lyù bao goàm caùc khoái chính sau: khoái ñôn vò soá hoïc/logic ALU (Arithmatic Logic Unit), caùc thanh ghi vaø khoái Control Logic. Caùc khoái naøy lieân heä vôùi nhau qua caùc ñöôøng daây truyeàn tín hieäu. 2. Chöùc naêng vaø nhieäm vuï cuûa caùc khoái trong vi xöû lyù: a. Khoái ALU (Arithmatic Logic Unit). Khoái ñôn vò soá hoïc/ logic laø khoái quan troïng nhaát beân trong vi xöû lyù, khoái ALU chöùa caùc maïch ñieän logic coù chöùc naêng chính laø thöïc hieän caùc pheùp toaùn, caùc pheùp thay ñoåi soá lieäu. Cô sôû chính cuûa khoái ALU laø maïch coäng, neân noù coù khaû naêng thöïc hieän caùc pheùp xöû lyù soá nhò phaân. Khoái ALU coù hai ngoõ vaøo vaø moät ngoõ ra, caùc ngoõ vaøo coù chöùc naêng chuyeån tín hieäu ngoõ vaøo vaøo khoái ALU ñeå tính toaùn, sau ñoù döõ lieäu ñöôïc chuyeån ñeán ngoõ ra ñeå chuyeån ra ngoaøi. Döõ lieäu tröôùc khi vaøo khoái ALU ñöôïc chöùa ôû thanh ghi TEMP 1 vaø TEMP 2 laø caùc thanh ghi ñeäm. Trong vi xöû lyù coù moät thanh ghi ñaëc bieät coù teân laø thanh ghi A, haàu heát moïi hoaït ñoäng cuûa ALU ñeàu thoâng qua thanh ghi naøy. Thoâng thöôøng khoái ALU nhaän döõ lieäu töø thanh ghi A roài xöû lyù döõ lieäu, sau khi xöû lyù xong thì laïi gôûi döõ lieäu ra thanh ghi A. b. Caùc thanh ghi beân trong vi xöû lyù. Caùc thanh ghi beân trong cuûa vi xöû lyù coù chöùc naêng löu tröõ taïm thôøi caùc döõ lieäu khi xöû lyù. Trong soá ñoù coù moät vaøi thanh ghi ñaëc bieät khi thöïc hieän leänh, coøn caùc thanh ghi coøn laïi laø caùc thanh ghi thoâng duïng. Caùc thanh ghi naøy giuùp cho ngöôøi laäp trình thöïc hieän chöông trình deã daøng hôn, soá löôïng thanh ghi phuï thuoäc vaøo töøng loaïi vi xöû lyù. Caùc thanh ghi trong moät vi xöû lyù goàm coù: thanh ghi tích luõy (Accumulator Register), thanh ghi PC (Program Counter Register), thanh ghi con troû ngaên xeáp (Stack Pointer Register), thanh ghi traïng thaùi (Status Register), caùc thanh ghi thoâng duïng, thanh ghi ñòa chæ vaø thanh ghi leänh (Instruction Register). * Thanh ghi tích luõy (thanh ghi A – Accumulator Register) : Thanh ghi A laø moät thanh ghi quan troïng cuûa vi xöû lyù coù chöùc naêng löu tröõ döõ lieäu khi tính toaùn. Haàu heát caùc pheùp toaùn soá hoïc vaø pheùp toaùn logic ñeàu xaûy ra giöõa ALU vaø thanh ghi A, nhöng caàn löu yù raèng haàt heát sau khi thöïc hieän pheùp tính, ALU thöôøng gôûi döõ lieäu vaøo thanh ghi A laøm döõ lieäu trong thanh ghi A tröôùc ñoù bò maát. Thanh ghi A thöôøng laøm trung gian ñeå trao döõ lieäu cuûa vi xöû lyù vôùi caùc thieát bò ngoaïi vi. Vôùi vi xöû lyù 8085A, thanh ghi A coù ñoä daøi 8 bit. * Thanh ghi PC (Program Counter Register) : Thanh ghi PC laø thanh ghi quan troïng nhaát cuûa vi xöû lyù. Khi thöïc hieän moät chöông trình, caùc leänh cuûa chöông trình seõ ñöôïc quaûn lyù baèng thanh ghi PC. Thanh ghi PC seõ chöùa ñòa chæ cuûa caùc leänh ñang thöïc hieän cuûa moät chöông trình. Chính vì vaäy, tröôùc khi vi xöû lyù thöïc hieän moät chöông trình thì thanh ghi PC phaûi ñöôïc naïp moät döõ lieäu, ñoù chính laø ñòa chæ ñaàu tieân cuûa chöông trình. Trong quaù trình thöïc hieän chöông trình, vi xöû lyù töï ñoäng taêng noäi dung thanh ghi PC ñeå chuaån bò ñoùn caùc leänh tieáp theo, tuy nhieân trong chöông trình coù leänh coù khaû naêng laøm thay ñoåi noäi dung thanh ghi PC. Vôùi vi xöû lyù 8085, thanh ghi PC coù ñoä daøi 16 bit vaø khi vi xöû lyù ñöôïc reset laïi, thanh ghi PC seõ töï ñoäng naïp cho mình giaù trò 0000H. * Thanh ghi traïng thaùi (Status Register): Thanh ghi traïng thaùi coøn goïi laø thanh ghi côø (Flag Register – thanh ghi F) duøng ñeå löu tröõ keát quaû cuûa moät soá leänh kieåm tra. Vieäc löu tröõ keát quaû cuûa caùc leänh kieåm tra giuùp cho ngöôøi laäp trình coù khaû naêng ñieàu khieån chöông trình theo caùc nhaùnh khaùc nhau. Vôùi vi xöû lyù 8085 caáu truùc cuûa thanh ghi traïng thaùi nhö sau: 7 6 5 4 3 2 1 0 S Z x AC x P x CY Trong ñoù: S (signal): bit daáu : S = 1 khi keát quaû aâm, S = 0 khi keát quaû döông. Z (Zero): bit Zero: Z = 1 khi keát quaû baèng 0, Z = 0 khi keát quaû khaùc 0. AC (Auxiliary carry): bit traøn: AC = 1 : pheùp tính bò traøn treân bit 4. AC = 0 : pheùp tính khoâng bò traøn treân bit 4. P (Parity): bit chaün, leû: P = 1 khi keát quaû laø soá chaün. P = 0 khi keát quaû laø soá leû. CY (Carry): bit nhôù: CY = 1 khi keát quaû coù soá nhôù. CY = 0 khi keát quaû khoâng coù soá nhôù. Caùc bit x laø caùc bit khoâng ñöôïc söû duïng thoâng duïng neân khoâng giôùi thieäu trong ñeà taøi naøy. * Thanh ghi con troû ngaên xeáp (Stack Pointer Register – thanh ghi SP): Thanh ghi con troû ngaên xeáp laø thanh ghi quan troïng cuûa vi xöû lyù, ñoä daøi döõ lieäu cuûa thanh ghi SP baèng vôùi ñoä daøi döõ lieäu cuûa thanh ghi PC. Chöùc naêng cuûa thanh ghi SP laø duøng ñeå quaûn lyù boä nhôù ngaên xeáp khi muoán löu tröõ taïm thôøi döõ lieäu vaøo ngaên xeáp, cuõng gioáng nhö thanh ghi PC, thanh ghi SP cuõng töï ñoäng chæ tôùi oâ nhôù keá. Trong caùc vi xöû lyù, vò trí con troû ngaên xeáp luoân töï ñoäng giaûm ñeå chæ tôùi oâ nhôù keá tieáp, vì vaäy khi thieát laäp giaù trò cho thanh ghi con troû ngaên xeáp phaûi laø ñòa chæ cuoái cuøng cuûa chöông trình vaø noù phaûi naèm trong vuøng nhôù RAM. Neáu khoâng khôûi taïo ñòa chæ con troû ngaên xeáp, noù seõ chæ ñeán moät ñòa chæ ngaãu nhieân, do ñoù döõ lieäu caát vaøo ngaên xeáp coù theå ghi choàng leân phaàn chöông trình laøm chöông trình chaïy sai hoaëc SP khoâng naèm trong vuøng nhôù RAM laøm noù khoâng thöïc hieän ñuùng chöùc naêng cuûa mình. * Thanh ghi ñòa chæ boä nhôù: Thanh ghi ñòa chæ oâ nhôù coù chöùc naêng taïo ñuùng ñòa chæ oâ nhôù maø vi xöû lyù muoán truy xuaát döõ lieäu. Thanh ghi ñòa chæ luoân baèng vôùi thanh ghi PC. * Thanh ghi leänh : Thanh ghi naøy coù chöùc naêng chöùa leänh maø vi xöû lyù ñang thöïc hieän. Ñaàu tieân, leänh ñöôïc ñoùn töø boä nhôù ñeán chöùa trong thanh ghi leänh, tieáp theo leänh seõ ñöôïc thöïc hieän, trong khi thöïc hieän leänh, boä giaûi maõ leänh seõ ñoïc döõ lieäu trong thanh ghi leänh ñeå xöû lyù vaø baùo chính xaùc cho vi xöû lyù bieát yeâu caàu cuûa leänh. Trong suoát quaù trình naøy thanh ghi leänh khoâng ñoåi, noù chæ thay ñoåi khi thöïc hieän leänh keá tieáp. Vôùi vi xöû lyù 8085 thanh ghi leänh coù ñoä daøi döõ lieäu laø 8 bit. Ngöôøi laäp trình khoâng coù khaû naêng taùc ñoäng vaøo thanh ghi naøy. * Thanh ghi chöùa döõ lieäu taïm thôøi (Temporary Data Register): Thanh ghi chöùa döõ lieäu taïm thôøi duøng ñeå trôï giuùp khoái ALU trong quaù trình thöïc hieän caùc pheùp toaùn. Trong moãi loaïi vi xöû lyù, soá löôïng caùc thanh ghi taïm thôøi khaùc nhau. c. Khoái ñieàu khieån logic (Logic Control): Khoái ñieàu khieån logic thöïc chaát laø caùc maïch ñieàu khieån logic, coù chöùc naêng nhaän leänh hay tín hieäu ñieàu khieån töø boä giaûi maõ leänh vaø thöïc hieän vieäc ñieàu khieån theo ñuùng yeâu caàu cuûa leänh. Khoái ñieàu khieån logic ñöôïc xem nhö laø boä xöû lyù cuûa vi xöû lyù. Caùc tín hieäu ñieàu khieån cuûa khoái ñieàu khieån logic laø caùc tín hieäu ñieàu khieån caùc thieát bò beân ngoaøi giao tieáp vôùi vi xöû lyù vaø caùc ñöôøng ñieàu khieån vi xöû lyù töø caùc thieát bò beân ngoaøi. Ngoõ vaøo tín hieäu quan troïng nhaát trong khoái ñieàu khieån logic laø ngoõ vaøo xung clock, phaûi coù tín hieäu naøy thì khoái ñieàu khieån môùi hoaït ñoäng ñöôïc. Ñoàng thôøi giuùp heä thoáng hoaït ñoäng ñöôïc ñoàng boä. d. Caùc thaønh phaàn khaùc beân trong vi xöû lyù. Khoái giaûi maõ leänh (Instruction Decoder): Chöùc naêng cuûa khoái giaûi maõ leänh laø nhaän leänh töø thanh ghi leänh, sau ñoù tieán haønh giaûi maõ leänh roài ñöa tín hieäu ñieàu khieån ñeán khoái ñieàu khieån logic. Caùc ñöôøng daây daãn: Caùc khoái beân trong cuûa vi xöû lyù lieân heä vôùi nhau thoâng qua caùc ñöôøng daây daãn. Caùc ñöôøng daây daãn ñöôïc chia laøm ba nhoùm chính: ñöôøng döõ lieäu, ñöôøng ñòa chæ vaø ñöôøng ñieàu khieån. - Ñöôøng ñòa chæ: trong vi xöû lyù 8085, ñöôøng döõ lieäu cuûa noù goàm 16 ñöôøng daây daãn song song ñeå truyeàn taûi caùc bit ñòa chæ. Soá ñöôøng ñòa chæ cho ta bieát soá oâ nhôù toái ña maø vi xöû lyù coù khaû naêng truy xuaát ñöôïc, soá oâ nhôù ñöôïc tính baèng coâng thöùc 2n vôùi n laø soá ñöôøng daây daãn. Vaäy vôùi vi xöû lyù 8085A, khaû naêng truy xuaát oâ nhôù toái ña laø 65536 oâ nhôù. Vôùi nhieäm vuï ñònh ra ñòa chæ cuûa thieát bò caàn truy xuaát neân ñöôøng ñòa chæ mang tính moät chieàu vaø chæ coù vi xöû lyù môùi coù khaû naêng ñöa ñòa chæ leân ñöôøng ñòa chæ. - Ñöôøng döõ lieäu: duøng ñeå keát noái caùc thanh ghi beân trong vi xöû lyù vôùi caùc khoái khaùc beân trong vi xöû lyù vaø chuyeån döõ lieäu ra ngoaøi. Vi xöû lyù 8085A coù 8 ñöôøng döõ lieäu. Ñeå caùc thanh ghi beân trong vöøa coù khaû naêng nhaän döõ lieäu vöøa coù khaû naêng xuaát döõ lieäu thì ñöôøng döõ lieäu phaûi coù tính chaát hai chieàu. - Ñöôøng ñieàu khieån: bao goàm caùc tín hieäu ñieàu khieån ñeå baûo ñaûm söï hoaït ñoäng ñoàng boä vôùi nhau giöõa caùc khoái. Moãi tín hieäu ñieàu khieån coù moät chieàu nhaát ñònh. 3. Taäp leänh cuûa vi xöû lyù: Moãi vi xöû lyù coù moät taäp leänh rieâng tuøy thuoäc vaøo caáu truùc beân trong cuûa noù. Taäp leänh goàm nhieàu leänh. Leänh cuûa vi xöû lyù laø döõ lieäu ôû daïng soá nhò phaân, vôùi vi xöû lyù 8085 chieàu daøi moät leänh laø 8 bit. Moät leänh luoân luoân bao goàm hai phaàn chính: maõ leänh vaø ñòa chæ, neáu moät leänh maø phaàn sau cuûa noù laø döõ lieäu thì phaàn ñòa chæ ñaõ ñöôïc hieåu ngaàm. Ñeå vieäc vieát chöông trình deã daøng hôn, ngöôøi ta duøng caùc töø goïi nhôù ñeå leänh deã vieát vaø deã ñoïc hôn, vieäc naøy laøm ngöôøi vieát chöông trình coù theå nhôù ñöôïc nhieàu leänh hôn. Taäp leänh cuûa vi xöû lyù ñöôïc chia laøm 9 nhoùm leänh cô baûn sau: - Nhoùm leänh truyeàn döõ lieäu. - Nhoùm leänh soá hoïc vaø logic. - Nhoùm leänh trao ñoåi, truyeàn khoái döõ lieäu vaø tìm kieám. - Nhoùm leänh xoay vaø dòch. - Nhoùm leänh ñieàu khieån. - Nhoùm leänh veà bit. - Nhoùm leänh nhaûy. - Nhoùm leänh goïi, trôû veà vaø nhoùm leänh baét ñaàu. - Nhoùm leänh xuaát/nhaäp. 4. Caùc kieåu ñònh ñòa chæ trong vi xöû lyù: Trong vi xöû lyù söû duïng raát nhieàu kieåu ñònh ñòa chæ, sau ñaây laø moät soá kieåu ñònh ñòa chæ thoâng duïng. * Kieåu ñònh ñòa chæ töùc thôøi: Vôùi kieåu ñònh ñòa chæ töùc thôøi thì trong maõ leänh khoâng ñeà caäp tôùi ñòa chæ maø chæ ñeà caäp tôùi döõ lieäu, ñòa chæ ôû ñaây ñaõ ñöôïc hieåu ngaàm. * Kieåu ñònh ñòa chæ tröïc tieáp: Trong maõ leänh coù chöùa ñòa chæ tröïc tieáp cuûa oâ nhôù caàn xöû lyù, vi xöû lyù 8085A coù 16 ñöôøng ñòa chæ neân ñòa chæ tröïc tieáp cuõng coù ñoä daøi 16 bit. * Kieåu ñònh ñòa chæ ngaàm: Trong caùch ñònh ñòa chæ naøy, vò trí hoaëc giaù trò cuûa soá lieäu ñöôïc hieåu ngaàm nhôø maõ leänh. * Kieåu ñònh ñòa chæ giaùn tieáp duøng thanh ghi: Yeáu toá thöù hai trong caáu truùc leänh khoâng phaûi laø ñòa chæ cuûa döõ lieäu maø chæ laø daáu hieäu cho bieát vò trí, nôi chöùa ñòa chæ cuûa soá lieäu. * Kieåu ñònh ñòa chæ tröïc tieáp baèng thanh ghi: Yeáu toá thöù hai cuûa caáu truùc leänh laø kyù hieäu cuûa caùc thanh ghi, döõ lieäu xöû lyù laø döõ lieäu chö SÔ ÑOÀ CAÁU TRUÙC BEÂN NGOAØI VAØ CHÖÙC NAÊNG CAÙC CHAÂN CUÛA VI XÖÛ LYÙ 8085: 1. Ñaëc tính cuûa vi xöû lyù 8085A: - Nguoàn cung caáp: 5 V ± 10%. - Doøng ñieän cöïc ñaïi: Imax = 170 mA. - Taàn soá xung clock chuaån: 6,134 Mhz. - Ñoä daøi döõ lieäu laø 8 bit. - Khaû naêng truy xuaát oâ nhôù tröïc tieáp laø 64 Kbytes. - Vi xöû lyù coù theå tính soá nhò phaân, thaäp phaân. - Vi xöû lyù coù 8 ñöôøng döõ lieäu vaø 16 ñöôøng ñòa chæ. - Caùc ñöôøng ñieàu khieån : RD\, WR\, IO/M\, Clock Out, Reset Out vaø 4 ngaét. 2. Sô ñoà chaân vaø sô ñoà logic: Ready Hold Intr RST 7.5 RST 6.5 RST 5.5 Trap Reset in X1 X2 SID Vcc Vss A8 – A15 AD0 – AD7 ALE S0 S1 RD\ WR\ HLDA INTA Reset out Clock out SOD 8085A X1 X2 Reset out SOD SID Trap RST 7.5 RST 6.5 RST 5.5 INTR INTA\ AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 Vss Vcc HOLD HLDA Clock out Reset in READY IO/M\ S1 RD\ WR\ ALE S0 A15 A14 A13 A12 A11 A10 A9 A8 1 20 21 40 8085A Hình 1.3 : Sô ñoà chaân vaø sô ñoà logic cuûa 8085A 3. Chöùc naêng caùc chaân: * Chaân 1, 2 – X1, X2 (Input): - Chaân X1, X2 laø hai ngoõ vaøo, ñaây cuõng laø nôi ñaët thaïch anh. Nhieäm vuï cuûa noù laø taïo dao ñoäng cho caùc khoái beân trong vi xöû lyù. - Vi xöû lyù khaùc nhau coù taàn soá laøm vieäc khaùc nhau, sau ñaây laø taàn soá laøm vieäc cöïc ñaïi cuûa moät vaøi vi xöû lyù do Intel saûn xuaát: · 6MHz ñoái vôùi 8085A. · 10MHz ñoái vôùi 8085A-2. · 12 MHz ñoái vôùi 8085A-1. * Chaân 3: Reset Out (Output): - Cho bieát vi xöû lyù ñang ñaët ôû traïng thaùi ban ñaàu. Ta coù theå söû duïng tín hieäu töø chaân naøy laøm tín hieäu reset cho caùc vi maïch khaùc trong heä thoáng. - Chaân naøy neáu khoâng söû duïng thì ñeå troáng. - Tín hieäu luoân ôû möùc [0], khi taùc ñoäng thì leân [1]. * Chaân 4: SOD (Output): - SOD (Serial Output Data): ñaây laø ngoõ ra döõ lieäu noái tieáp, döõ lieäu ñöôïc xuaát ra ôû chaân naøy taïi bit A7 cuûa thanh ghi A. ngoõ ra naøy ñöôïc thöïc hieän bôûi leänh SIM. - Chaân naøy neáu khoâng söû duïng thì ñeå troáng. * Chaân 5: SID (Input): - SID (Serial Input Data): ñaây laø ngoõ vaøo döõ lieäu vaøo noái tieáp, döõ lieäu töø heä thoáng khaùc göûi ñeán töøng bit moät khi vi xöû lyù coù leänh nhaän tín hieäu, döõ lieäu ôû ngoõ vaøo naøy ñöôïc naïp vaøo bit A7 cuûa thanh ghi A. - Vi xöû lyù thöïc hieän coâng vieäc naøy khi nhaän leänh RIM. * Chaân 6: TRAP (Input): - ÔÛ chaân naøy, tín hieäu ngaét khoâng ngaên ñöôïc. Tín hieäu yeâu caàu ngaét coù baäc öu tieân cao, khoâng bò ngaên laïi bôûi chöông trình (phaàn meàm). - Ngoõ vaøo naøy do heä t._.hoáng khaùc ñieàu khieån. Heä thoáng khaùc 8085A 6 8085A 6 o Trap VXL Hoaëc · Hình 1.4 : Sô ñoà taùc ñoäng ngaét cuûa vi xöû lyù. - Ngoõ vaøo naøy ñöôïc kích bôûi caïnh leân. - Khi chaân TRAP ôû möùc [1], traïng thaùi naøy ñöôïc löu vaøo 1 bit beân trong vi xöû lyù, luùc ñoù chöông trình thöù I seõ ngöng laïi khi thöïc hieän xong vaø nhaûy ñeán ñòa chæ 0024H ñeå thöïc hieän chöông trình taïi ñòa chæ naøy cho ñeán khi gaëp leänh trôû veà thì môùi quay laïi chöông trình chính. - ÖÙng duïng cuûa ngaét : Moät trong nhöõng öùng duïng laø queùt baøn phím. Khi coù moät phím taùc ñoäng, IC queùt baøn phím seõ baùo cho vi xöû lyù tín hieäu ngaét vi xöû lyù seõ chuyeån sang nhaän vaø xöû lyù phím ñoù. Sau khi xöû lyù xong môùi trôû veà chöông trình chính. * Chaân 7, 8, 9 – RST 7.5, RST 6.5, RST 5.5: (Input): - RST (Restart Interrupt Request): Tín hieäu ngaét coù theå ngaên ñöôïc. Ñaây laø ba ngoõ vaøo ñieàu khieån vi xöû lyù. - Ba ngoõ vaøo naøy ñöôïc kích baèng caïnh leân hoaëc baèng möùc, tín hieäu ñöa vaøo chaân RST 7.5 coù theå laø moät xung. - Khi gaëp tín hieäu ngaét, vi xöû lyù seõ thöïc hieän chöông trình taïi ñòa chæ ñöôïc quy ñònh quy ñònh tröôùc. * Chaân RST 7.5 coù ñòa chæ chöông trình phuïc vuï ngaét laø: 003C. * Chaân RST 6.5 coù ñòa chæ chöông trình phuïc vuï ngaét laø: 0034. * Chaân RST 5.5 coù ñòa chæ chöông trình phuïc vuï ngaét laø: 002C. - Khi ñoaïn chöông trình chính coù leänh cho pheùp ngaét DI tín hieäu ngaét töø caùc chaân naøy seõ khoâng ñöôïc thöïc hieän. - Khi ñoaïn chöông trình chính coù leänh cho pheùp ngaét EI, thì caùc leänh ngaét naøy seõ ñöôïc thöïc hieän keå töø khi gaëp leänh EI trong chöông trình chính. - Neáu caùc chaân naøy khoâng söû duïng thì seõ noái ñaát (GND). * Chaân 10: INTR (Input): - INTR (Interrupt) : tín hieäu baùo ngaét vi xöû lyù seõ nhaän ra sau khi thi haønh xong moät chæ thò. - Khi khoâng söû duïng chaân 10 noái GND. * Chaân 11: INTA\ (Output): - INTA (Interrupt Acknowledge): Tín hieäu traû lôøi ngaét. Tín hieäu seõ baùo cho thieát bò yeâu caàu ngaét bôûi tín hieäu INTA bieát raèng vi xöû lyù ñ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 ñöôøng döõ lieäu (Data Bus). - Chaân 10 vaø 11 thöôøng ñöôïc lieân keát vôùi caùc IC DMA (duøng trong maùy tính). - Khi khoâng söû duïng chaân 11 boû troáng. * Chaân 12 ¸ 19 – AD0 ¸ AD7 (Input/Output): - AD (Address Data): ñaây laø caùc ñöôøng ñòa chæ vaø caùc ñöôøng döõ lieäu ñöôïc tích hôïp chung vôùi nhau taïo thaønh ñöôøng döõ lieäu – ñòa chæ. - ÔÛ chu kyø maùy T1, caùc ngoõ AD naøy ñoùng vai troø laø caùc ngoõ ra ñòa chæ, ôû caùc chu kyø sau thì bus naøy ñoùng vai troø laø caùc ñöôøng döõ lieäu. Vi xöû lyù xuaát hay nhaäp döõ lieäu ñeàu thoâng qua caùc ñöôøng naøy. - Caùc ñöôøng döõ lieäu vaø ñòa chæ trong bus naøy coù theå ñöôïc taùch ra haún bôûi moät IC choát (74LS373, 74LS573) ñöôïc ñieàu khieån bôûi chaân ALE cuûa vi xöû lyù. * Chaân 20 – Vss: Chaân GND cuûa vi xöû lyù. * Chaân 21 ¸ 28 – A8 ¸ A15 (Output) Address bus: Caùc ngoõ ra naøy ñöôïc duøng ñeå xuaát 8 bit ñòa chæ cao. Nhö vaäy, vi xöû lyù 8085A coù 16 ñöôøng ñòa chæ vaø 8 ñöôøng döõ lieäu. * Chaân 29, 33, 34 – S0, S1, IO/M\ (Output). - Ba ngoõ naøy cho bieát traïng thaùi hoaït ñoäng cuûa vi xöû lyù, traïng thaùi hoaït ñoäng coù theå xem ôû baûng sau: IO/M\ S1 S0 Traïng thaùi 0 0 1 Vieát vaøo boä nhôù (Memory Write) 0 1 0 Ñoïc boä nhôù (Memory Read) 0 1 1 Xuaát döõ lieäu ra coång (Op-Code Fetch) 1 0 1 Xuaát döõ lieäu ra coång (I/0 Write) 1 1 0 Ñoïc döõ lieäu töø coång (I/0 Read) 1 1 1 Interrup Acknowledge * Chaân 30 – ALE (Output): - ALE (Address Latch Enable) laø chaân ñieàu khieån, duøng xaùc ñònh vai troø cuûa ñöôøng AD7 ¸ AD0. Ngoõ naøy taïo ra moät xung ôû chu kyø maùy T1 nhaèm xaùc ñònh luùc ñoù ñöôøng AD7 ¸ AD0 ñoùng vai troø laø ñöôøng ñòa chæ (A7 ¸ A0). - Bình thöôøng thì ALE ôû möùc [0], ôû chu kyø T1 thì ALE ôû möùc [1]. - Chaân naøy duøng laøm chaân ñieàu khieån cho IC choát. * Chaân 31: WR\ (Output): - WR\ (Write) duøng ñeå xaùc ñònh vi xöû lyù 8085A ñang thöïc hieän leänh ghi döõ lieäu leân boä nhôù hay I/O. - Chaân WR\ cuûa vi xöû lyù 8085A thöôøng ñöôïc noái vôùi caùc chaân WR cuûa caùc IC khaùc (boä nhôù hay I/O). * Chaân 32: RD\ (Output): - RD\ (Read): duøng ñeå xaùc ñònh vi xöû lyù ñang thöïc hieän leänh ñoïc döõ lieäu töø boä nhôù hay I/0 vaø vi xöû lyù. - Chaân RD\ cuûa vi xöû lyù 8085A thöôøng ñöôïc noái vôùi caùc chaân RD cuûa caùc IC khaùc (boä nhôù hay I/0). * Chaân 35: Ready (Input): - Ready: Töùc tín hieäu traû lôøi cho vi xöû lyù. Boä nhôù hay thieát bò ngoaïi vi I/0 baùo cho vi xöû lyù bieát laø ñaõ saün saøng göûi hoaëc nhaän döõ lieäu. Vi xöû lyù chöa theå hoaøn thaønh chu kyø maùy neáu Ready coù giaù trò thaáp. - Neáu heát 3 chu kyø xung clock maø boä nhôù chöa göûi döõ lieäu ra thì chöông trình seõ sai. Do ñoù ñeå ñoàng boä ngöôøi thieát keá duøng chaân Ready naøy (bình thöôøng Ready ôû möùc [1]). * Chaân 36: Reset In (Input): - Reset In: ngoõ vaøo naøy duøng ñeå reset vi xöû lyù. Khi thöïc hieän reset tín hieäu naøy phaûi ôû möùc logic [0] trong khoaûng 3 chu kyø xung clock. - Khi reset thanh ghi PC = 0000H nghóa laø vi xöû lyù trôû veà traïng thaùi ban ñaàu. Sau ñoù vi xöû lyù seõ ñoùn leänh taïi ñòa chæ naøy. - Khi chaân Reset In taùc ñoäng thì chaân Reset Out cuûa vi xöû lyù cuõng taùc ñoäng theo. Neáu caùc IC khaùc ñöôïc noái vôùi chaân Reset Out thì khi reset vi xöû lyù, caùc IC khaùc cuõng ñöôïc reset theo. 8085A 36 · R C Hình 1.5 : Sô ñoà reset 8085A. * Chaân 37: CLK (Output): - CLK (Clock): ngoõ ra tín hieäu xung clock ñeå cung caáp cho caùc thieát bò khaùc khi coù yeâu caàu. Taàn soá cuûa noù baèng taàn soá ngoõ vaøo chia 2. - Neáu khoâng söû duïng thì chaân naøy ñeå troáng. * Chaân 38: HLDA (Output): - HLDA (Hold Acknowledge): Tín hieäu ngoõ ra cho bieát tín hieäu HOLD ñaõ ñöôïc chaáp nhaän vaø vi xöû lyù seõ ôû traïng thaùi HOLD ôû chu kyø xung clock tieáp theo. * Chaân 39: HOLD (Input): - HOLD: nhaän tín hieäu yeâu caàu ngöng boä ñieàu khieån DMA. - Neáu khoâng söû duïng, chaân HOLD noái GND. Toùm laïi, vôùi chaân HOLD vaø HLDA: khi DMA ngöng thì vi xöû lyù laøm vieäc vaø ngöôïc laïi vì DMA keát noái thoâng qua bus. * Chaân 40 – Vcc : Naêng löôïng nguoàn 5V cung caáp cho vi xöû lyù hoaït ñoäng. III. BOÄ NHÔÙ: 1. KHAÙI NIEÄM: Boä nhôù laø caùc vi maïch ñöôïc tích hôïp vôùi maät ñoä cao. Boä nhôù chính laø nôi löu tröõ caùc chöông trình cho vi xöû lyù cuõng nhö löu tröõ caùc keát quaû khi xöû lyù, vì vaäy moïi heä thoáng ñieàu khieån töï ñoäng duøng vi xöû lyù ñeàu phaûi duøng tôùi boä nhôù. 2. HOAÏT ÑOÄNG TOÅNG QUAÙT CUÛA MOÄT BOÄ NHÔÙ: Quaù trình hoaït ñoäng truy xuaát döõ lieäu cuûa boä nhôù ñeàu thoâng qua caùc böôùc sau: - Nhaän ñòa chæ ñeå choïn ñuùng oâ nhôù caàn truy xuaát. - Nhaän tín hieäu ñieàu khieån, tín hieäu naøy seõ cho pheùp ñoïc hay ghi döõ lieäu töø boä nhôù. - Nhaän döõ lieäu vaøo oâ nhôù khi thöïc hieän chöùc naêng ghi hoaëc gôûi döõ lieäu ra khi thöïc hieän chöùc naêng ñoïc. BOÄ NHÔÙ Caùc ñöôøng döõ lieäu vaøo\ra Caùc ñöôøng ñieàu khieån Caùc ñöôøng ñòa chæ vaøo Hình 1.6 : Sô ñoà moâ taû caùc ñöôøng tín hieäu cuûa boä nhôù. Caùc ñöôøng ñieàu khieån bao goàm ngoõ vaøo Memory Enable vaø ngoõ vaøo Read\Write. Ngoõ vaøo Memory Enable duøng ñeå cho pheùp boä nhôù hoaït ñoäng. Ngoõ vaøo Read \ Write duøng ñeå xaùc ñònh cheá ñoä hoaït ñoäng cuûa boä nhôù: ñoïc döõ lieäu ra hay ghi döõ lieäu vaøo. Caùc ñöôøng ñòa chæ vaøo xaùc ñònh ñuùng ñòa chæ oå nhôù caàn truy xuaát. Caùc ñöôøng döõ lieäu duøng ñeå truyeàn döõ lieäu hai chieàu. 3. PHAÂN LOAÏI BOÄ NHÔÙ: Boä nhôù ñöôïc phaân thaønh 2 loaïi, moãi loaïi coù cô cheá hoaït ñoäng khaùc nhau nhöng cuøng coù chung chöùc naêng chính laø löu tröõ döõ lieäu. - Boä nhôù chæ ñoïc (ROM – Read Only Memory): trong luùc hoaït ñoäng bình thöôøng, döõ lieäu chæ coù theå ñoïc ra chöù khoâng coù theå ghi vaøo. - Boä nhôù truy xuaát ngaãu nhieân (RAM – Random Access Memory): baát kyø oâ nhôù naøo cuõng deã daøng truy xuaát nhö nhöõng oâ nhôù khaùc töùc laø döõ lieäu coù theå deã daøng ghi vaøo cuõng nhö ñoïc ra. a. Boä nhôù ROM: ROM laø boä nhôù ñöôïc thieát keá cho caùc öùng duïng caàn tyû leä ñoïc döõ lieäu cao. ROM löu tröõ döõ lieäu coá ñònh vaø trong khi hoaït ñoäng bình thöôøng chæ duøng ñeå ñoïc döõ lieäu ra chöù khoâng theå ghi döõ lieäu vaøo ROM. Coù nhieàu loaïi ROM khaùc nhau, döôùi ñaây laø moät soá loaïi ROM thöôøng gaëp : - PROM (Programmable ROM): loaïi ROM naøy chæ coù theå laäp trình ñöôïc moät laàn, sau ñoù khoâng theå xoùa hay naïp laïi ñeå thay ñoåi döõ lieäu. - EPROM (Erasable Programmable ROM): vôùi loaïi ROM naøy, döõ lieäu coù theå xoùa ñi ñeå naïp döõ lieäu môùi ñöôïc. Tuy nhieân, khi caàn thay ñoåi giaù trò cuûa moät oâ nhôù thì khoâng theå chæ xoùa döõ lieäu cuûa oâ nhôù ñoù maø phaûi xoùa heát roài naïp laïi toaøn boä döõ lieäu. Ñeå xoùa döõ lieäu cuûa EPROM phaûi duøng aùnh saùng cöïc tím. Coøn ñeå naïp döõ lieäu cho ROM phaûi duøng maïch naïp cho ROM. Hoï EPROM coù maõ soá 27xxx. - EEPROM (Electrically Erasable Programmable ROM): ñaây laø loaïi ROM caûi tieán töø EPROM. Vôùi loaïi EEPROM naøy coù theå xoùa vaø naïp caùc oâ nhôù moät caùch ñoäc laäp, khoâng caàn xoùa ñi toaøn boä caùc oâ nhôù chöùa chöông trình nhö cuûa EPROM. Hoï EEPROM coù maõ soá 28xxx. Trong thöïc teá, vôùi caùc heä thoáng ñieàu khieån duøng vi xuû lyù, ngöôøi ta thöôøng söû duïng EPROM vì noù coù theå cho pheùp ngöôøi söû duïng naïp vaø xoùa chöông trình nhieàu laàn, ñoàng thôøi tính kinh teá cao (reû vaø deã kieám hôn EEPROM nhieàu laàn). Chính vì vaäy, trong ñeà taøi naøy, nhoùm ñaõ söû duïng EPROM ñeå laøm boä nhôù cho heä thoáng ñieàu khieån cuûa mình. EPROM coù nhieàu loaïi vôùi caùc dung löôïng khaùc nhau. Sau ñaây laø baûng lieät keâ caùc loaïi EPROM. Baûng lieät keâ caùc loaïi EPROM: Teân EPROM Dung löôïng Ngoõ ra Thôøi gian truy xuaát 2707 1 Kbytes 3 traïng thaùi 150 ns 2716 2 Kbytes 3 traïng thaùi 150 ns 2732 4 Kbytes 3 traïng thaùi 250 ns 2764 8 Kbytes 3 traïng thaùi 450 ns 27128 16 Kbytes 3 traïng thaùi 450 ns 27256 32 Kbytes 3 traïng thaùi 450 ns 27512 64 Kbytes 3 traïng thaùi 450 ns Trong ñeà taøi naày, ôû ñaây chæ trình baøy sô ñoà chaân, sô ñoà logic cuøng baûng traïng thaùi cuûa vi maïch 2764: A0 A1 A11 A12 CE\ OE\ PGM\ Vpp D0 D7 2764 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 Vpp A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc PGM\ NC A8 A9 A11 OE\ A10 CE\ D7 D6 D5 D4 D3 2764 Hình 1.7 : Sô ñoà chaân vaø sô ñoà logic cuûa vi maïch 2764 Baûng traïng thaùi cuûa vi maïch 2764: Mode CE\ OE\ PGM\ VPP VCC Output Read VIL VIL VIH VCC VCC Dout Stand by VIH x x VCC VCC High Z Program VIL x VIL VPP VCC Din Program verify VIL VIL VIH VPP VCC Dout Program Inhibit VIH x x VPP VCC High Z b. Boä nhôù RAM: Boä nhôù RAM laø boä nhôù thay ñoåi, baát kyø oâ nhôù naøo cuõng coù theå truy xuaát deã daøng vaø thôøi gian truy xuaát cuûa caùc oâ nhôù laø nhö nhau. Khaùc vôùi boä nhôù ROM, döõ lieäu trong RAM seõ maát ñi khi nguoàn ñieän cung caáp bò maát. Tuy vaäy ngöôøi ta khaéc phuïc ñieàu naøy baèng caùch söû duïng nguoàn pin ñeå “nuoâi” RAM. RAM thöôøng ñöôïc duøng trong caùc heä thoáng ñieàu khieån töï ñoäng ñeå löu tröõ döõ lieäu taïm thôøi chöông trình hay caùc döõ lieäu. Do noäi dung döõ lieäu trong RAM thöôøng thay ñoåi lieân tuïc trong quaù trình hoaït ñoäng neân yeâu caàu chu kyø ñoïc vaø ghi cuûa RAM phaûi nhanh ñeå khoâng laøm aûnh höôûng ñeán toác ñoä cuûa caû heä thoáng. Cuõng nhö boä nhôù ROM, boä nhôù RAM cuõng duøng thanh ghi ñeå löu tröõ döõ lieäu, moãi thanh ghi löu tröõ moät döõ lieäu vaø chæ töông öùng vôùi moät ñòa chæ duy nhaát. Khaùc vôùi boä nhôù ROM, boä nhôù RAM coøn coù ñöôøng ñieàu khieån cho pheùp ghi hoaëc ñoïc döõ lieäu : R\W. Boä nhôù RAM ñöôïc chia laøm hai loaïi: SRAM vaø DRAM. - SRAM (Static RAM) coøn goïi laø RAM tónh. Ñaây laø loaïi RAM löu tröõ döõ lieäu cho ñeán khi naøo nguoàn nuoâi khoâng coøn. SRAM thöïc chaát laø nhöõng Flip – Flop (FF), trong ñoù moãi FF laø moät phaàn töû nhôù ñaïi dieän cho moät bit. - DRAM (Dynamic RAM) coøn goïi laø RAM ñoäng. Ñaây laø loaïi RAM phaûi luoân ñöôïc laøm “töôi” töùc laø phaûi naïp laïi döõ lieäu cho RAM trong moät khoaûng thôøi gian nhaát ñònh, neáu khoâng RAM seõ bò maát döõ lieäu. Trong khi laøm töôi RAM, oâ nhôù ñoù khoâng ñöôïc pheùp truy xuaát. Trong ñeà taøi naøy, nhoùm chæ söû duïng SRAM: 6264 neân ôû ñaây chæ trình baøy sô ñoà chaân, sô ñoà logic vaø baûng traïng thaùi cuûa SRAM naøy. A0 A1 A11 A12 CS\ OE\ WR\ CS D0 D7 6264 1 2 3 4 5 6 7 8 9 10 11 12 13 14 28 27 26 25 24 23 22 21 20 19 18 17 16 15 NC A12 A7 A6 A5 A4 A3 A2 A1 A0 D0 D1 D2 GND Vcc WR\ CS A8 A9 A11 OE\ A10 CS\ D7 D6 D5 D4 D3 6264 Hình 1.8 : Sô ñoà chaân vaø sô ñoà logic cuûa vi maïch 6264 Baûng traïng thaùi laøm vieäc cuûa vi maïch 6264: Mode WR\ CS\ CS OE\ Output Not select x H x X High Z Not select x x L X High Z Output Disable H L H H High Z Read H L H L Dout Write L L H H Din IV. KEÁT NOÁI BOÄ NHÔÙ VÔÙI VI XÖÛ LYÙ: Boä nhôù coù vai troø raát quan troïng trong heä thoáng vi xöû lyù, hoaït ñoäng cuûa boä nhôù gaén lieàn vôùi hoaït ñoäng cuûa vi xöû lyù, laø nôi löu tröõ döõ lieäu ñeå vi xöû lyù xöû lyù. do ñoù boä nhôù luoân hieän dieän trong heä thoáng vi xöû lyù vaø khi söû duïng phaûi tieán haønh keát noái. Boä nhôù bao goàm caû ROM vaø RAM, chuùng lieân heä vôùi nhau vaø ñôïc keát noái vôùi vi xöû lyù thoâng qua caùc bus: bus döõ lieäu, bus ñòa chæ, vaø bus ñieàu khieån. Sô ñoà keát noái ñöôïc trình baøy ôû daïng khoái sau: Trong heä thoáng coù theå coù moät ROM moät RAM hoaëc soá löôïng ROM vaø RAM nhieàu hôn nöõa, vieäc boä nhôù ñöôïc truy xuaát hoaøn toaøn phuï thuoäc vaøo söï ñieàu khieån cuûa vi xöû lyù thoâng qua 1 IC giaûi maõ 74LS138. Vi xöû lyù Boä nhôù ROM Boä nhôù RAM Bus ñòa chæ Bus döõ lieäu Bus ñieàu khieån Hình 1.8 : Sô ñoà khoái keát noái giöõa boä nhôù vôùi vi xöû lyù Trong heä thoáng coù theå coù moät ROM moät RAM hoaëc soá löôïng ROM vaø RAM nhieàu hôn nöõa. Vieäc boä nhôù ñöôïc truy xuaát hoaøn toaøn phuï thuoäc vaøo söï ñieàu khieån cuûa vi xöû lyù thoâng qua 1 IC giaûi maõ 74LS138. Khi thieát keá vaán ñeà quan taâm ñaàu tieân ñoù laø khaû naêng truy xuaát boä nhôù cuûa vi xöû lyù, keá ñeán laø dung löôïng cuûa boä nhôù caàn söû duïng. Trong thöïc teá, boä nhôù coù nhieàu dung löôïng khaùc nhau (2K, 4K, 8K… ), nhaèm phuïc vuï cho vieäc thieát keá ñoà aùn naøy nhoùm thöïc hieän löïa choïn boä nhôù coù dung löôïng 8Kbyte ñoù laø vi maïch nhôù 2764 vaø 6264. V. VAÁN ÑEÀ GIAÛI MAÕ CHO BOÄ NHÔÙ : Vôùi moãi boä nhôù (1EPROM hay 1 RAM) ñeå vi xöû lyù coù theå truy xuaát heát 8 Kbyte boä nhôù thì phaûi tieán haønh keát noái 13 ñöôøng ñòa chæ A12A11A10A9A8A7A6A5A4A3A2A1A0 cuûa vi xöû lyù ñeán 13 ñöôøng ñòa chæ A12A11A10A9A8A7A6A5A4A3A2A1A0 cuûa boä nhôù. do ñoù taát caû 13 ñöôøng ñòa chæ cuûa EPROM vaø RAM ñeàu ñöôïc noái vôùi 13 ñöôøng ñòa chæ cuûa vi xöû lyù. ñeå truyeàn ñöôïc tín hieäu vôùi nhau thì caùc ñöôøng döõ lieäu D7 – D0 cuûa vi xöû lyù cuõng phaûi ñöôïc keát noái vôùi caùc ñöôøng döõ lieäu D7 – D0 cuûa töøng boä nhôù. Ñöôøng tín hieäu ñieàu khieån RD\ cuûa vi xöû lyù ñöôïc keát noái vôùi ngoõ vaøo OE\ cuûa EPROM vaø RAM. Neáu chæ nhö vaäy thì khi vi xöû lyù gôûi moät ñòa chæ ra ñeå truy xuaát thì caùc boä nhôù ñeàu nhaän ñöôïc ñòa chæ naøy vaø seõ cuøng gôûi döõ lieäu ra hoaëc cuøng nhaän döõ lieäu vaøo. Nhö vaäy döõ lieäu maø vi xöû lyù nhaän ñöôïc seõ khoâng bieát cuûa oâ nhôù naøo. Vaán ñeà ñöôïc ñaët ra laø baèng caùch naøo ñeå vi xöû lyù truy xuaát chính xaùc töøng oâ nhôù yeâu caàu. Coâng vieäc naøy ñöôïc giaûi quyeát baèng caùch thieát keá theâm phaàn giaûi maõ ñòa chæ ñeå cho pheùp hoaëc khoâng cho pheùp boä nhôù naøo hoaït ñoäng. Rieâng ñoái vôùi boä nhôù RAM vì RAM laø boä nhôù ñoïc – ghi neân phaûi noái theâm ñöôøng WR\ cuûa vi xöû lyù tôùi ñöôøng WR\ cuûa RAM. Sô ñoà maïch giaûi maõ boä nhôù: ñeán CE\ cuûa EPROM ñeán CS\ cuûa RAM A13 A14 A15 A B C O0\ O1\ O2\ O3\ O4\ O5\ O6\ O7\ E3 E1\ E2\ Hình 1.10 : Sô ñoà maïch giaûi maõ boä nhôù CHÖÔNG II: GIÔÙI THIEÄU TAÄP LEÄNH CUÛA VI XÖÛ LYÙ 8085 I. NHOÙM LEÄNH DI CHUYEÅN 8 BIT: Leänh truyeàn döõ lieäu giöõa caùc thanh ghi: + Cuù phaùp: MOV d, s · s (source): töôïng tröng cho caùc thanh ghi phaùt. 0 1 d d d s s s · d (destination): töôïng tröng cho thanh nhaän. + Maõ ñoái töôïng: + Caùc bit ddd vaø sss tra ôû BAÛNG 2.1 cuoái taäp leänh. + YÙ nghóa: chuyeån noäi dung thanh ghi s vaøo thanh ghi d, noäi dung thanh ghi s vaãn coøn. + Leänh naøy chieám 1 byte, soá chu kyø xung clock = 4. + Thanh ghi traïng thaùi khoâng thay ñoåi. (Töông töï cho caùc leänh khaùc). Leänh chuyeån döõ lieäu thanh ghi vaøo oâ nhôù: Cuù phaùp: MOV M, s Leänh chuyeån döõ lieäu töø oâ nhôù vaøo thanh ghi: Cuù phaùp: MOV d, M Leänh truyeàn töùc thôøi döõ liieäu 8 bit vaøo thanh ghi: Cuù phaùp: MVI d, D8 Leänh truyeàn töùc thôøi döõ lieäu 8 bit vaøo oâ nhôù: Cuù phaùp: MVI M, D8 II. NHOÙM LEÄNH TAÊNG GIAÛM 8 BIT: Leänh taêng noäi dung thanh ghi: + Cuù phaùp: INR d 0 0 d d d 1 0 0 + Maõ ñoái töôïng: + YÙ nghóa: Leänh naøy taêng noäi dung thanh ghi leân moät ñôn vò. + Leänh naày chieám 1 byte , soá chu kyø xung clock = 4. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi tröø bit Cy khoâng aûnh höôûng. (Töôïng töï cho caùc leänh khaùc) Leänh giaûm noäi dung thanh ghi: Cuù phaùp: DCR d Leänh taêng noäi dung oâ nhôù: Cuù phaùp: INR M Leänh giaûm noäi dung oâ nhôù: Cuù phaùp: DCR M NHOÙM LEÄNH SOÁ HOÏC GIÖÕA THANH GHI A VAØ THANH GHI Leänh coäng thanh ghi: + Cuù phaùp: ADD s 1 0 0 0 0 s s s + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi noäi dung thanh ghi s, keát quaû chöùa trong thanh ghi A , noäi dung thanh ghi s vaãn coøn. + Leänh naøy chieám moät byte, soá chu kyø xung clock = 4. + Leänh naøy aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh coäng thanh ghi coù soá nhôù ban ñaàu: + Cuù phaùp: ADC s 1 0 0 0 1 s s s + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi noäi dung thanh ghi s coäng vôùi bit Cy, keát quaû chöùa trong thanh ghi A, noäi dung thanh ghi s vaãn coøn. + Leänh naày chieám 1 byte, soá chu kyø xung clock = 4. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leänh khaùc) Leänh tröø thanh ghi: Cuù phaùp: SUB s Leänh tröø thanh ghi coù soá nhôù ban ñaàu: Cuù phaùp: SBB s Leänh and vôùi thanh ghi: Cuù phaùp: ANA s Leänh Ex-or vôùi thanh ghi: Cuù phaùp: XRA s Leänh or vôùi thanh ghi: Cuù phaùp: ORA s Leänh so saùnh vôùi thanh ghi: Cuù phaùp: CMP s IV. NHOÙM LEÄNH SOÁ HOÏC GIÖÕA OÂ NHÔÙ VÔÙI THANH GHI A: Leänh coäng vôùi oâ nhôù: + Cuù phaùp: ADD M 1 0 0 0 0 1 1 0 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL, keát quaû chöùa trong thanh ghi A, noäi dung oâ nhôù khoâng thay ñoåi. + Leänh naày chieám 1 byte, soá chu kyø xung clock = 7. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh coäng oâ nhôù coù soá nhôù ban ñaàu: + Cuù phaùp: ADC M 1 0 0 0 1 1 1 0 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi dung oâ nhôù coù ñòa chæ chöùa trong caëp thanh ghi HL, keát quaû chöùa trong A, noäi dung oâ nhôù khoâng thay ñoåi. + Leänh naày chöùa 1 byte, soá chu kyø xung clock = 7. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leänh khaùc) Leänh tröø vôùi oâ nhôù: Cuù phaùp: SUB M Leänh tröø oâ nhôù coù soá nhôù ban ñaàu: Cuù phaùp: SBB M Leänh and vôùi oâ nhôù: Cuù phaùp: ANA M Leänh Ex-or vôùi oâ nhôù: Cuù phaùp: XRA M Leänh or vôùi oâ nhôù: Cuù phaùp: ORA M Leänh so saùnh vôùi oâ nhôù: Cuù phaùp: CMP M V. NHOÙM LEÄNH SOÁ HOÏC GIÖÕA THANH GHI A VAØ DÖÕ LIEÄU 8 BIT: Leänh coäng töùc thôøi vôùi döõ lieäu 8 bit: + Cuù phaùp: ADI D8 1 1 0 0 0 1 1 0 Döõ lieääu 8 bit D8 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi döõ lieäu 8 bit D8, keát quaû chöùa trong thanh ghi A. + Leänh naày chöùa 2 byte, soá chu kyø xung clock = 7. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh coäng töùc thôøi vôùi döõ lieäu 8 bit coù soá nhôù ban ñaàu: + Cuù phaùp: ACI D8 1 1 0 0 1 1 1 0 Döõ lieääu 8 bit D8 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc coäng vôùi döõ lieäu 8 bit D8, coäng vôùi bit Cy, keát quaû chöùa trong thanh ghi A. + Leänh naày chöùa 2 byte, soá chu kyø xung clock = 7. + Leänh naày aûnh höôûng ñeán thanh ghi traïng thaùi. ( Töông töï cho caùc leänh khaùc ) Leänh tröø töùc thôøi vôùi döõ lieäu 8 bit: Cuù phaùp: SUI D8 Leänh tröø töùc thôøi vôùi döõ lieäu 8 bit coù soá nhôù ban ñaàu: Cuù phaùp: SBI D8 Leänh and töùc thôøi vôùi döõ lieäu 8 bit: Cuù phaùp: ANI D8 Leänh Ex-or töùc thôøi vôùi döõ lieäu 8 bit: Cuù phaùp: XRI D8 Leänh or töùc thôøi vôùi döõ lieäu 8 bit: Cuù phaùp: ORI D8 Leänh so saùnh töùc thôøi vôùi döõ lieäu 8 bit: Cuù phaùp: CPI D8 VI. NHOÙM LEÄNH NAÏP TÖÙC THÔØI CAËP THANH GHI: Leäänh naïp caëp thanh ghi BC: + Cuù phaùp: LXI B, D16 0 0 0 0 0 0 0 1 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: döõ lieäu 16 bit D16 ñöôïc naïp vaøo caëp thanh ghi BC. + Leänh naày chieám 3 byte, soá chu kyø xung clock = 10. + Khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leänh khaùc) Leänh naïp caëp thanh ghi DE: Cuù phaùp: LXI D, D16 Leänh naïp caëp thanh ghi HL: Cuù phaùp: LXI H, D16 Leänh naïp caëp thanh ghi SP: Cuù phaùp: LXI SP, D16 VII. NHOÙM LEÄNH PUSH: Leänh caát caëp thanh ghi BC: + Cuù phaùp: PUSH B 1 1 0 0 0 1 0 1 +Maõ ñoái töôïng: +YÙ nghóa: noäi dung caëp thanh ghi BC ñöôïc copy vaøo ngaên xeáp. Noäi dung thanh ghi B ñöôïc caát vaøo ngaên xeáp taïi ñòa chæ (SP-1), thanh ghi C ñöôïc caát vaøo ngaên xeáp taïi ñòa chæ (SP-2), noäi dung thanh ghi SP giaûm ñi 2. + Leänh naøy chieám 1 byte, soá chu kì xung clock =12. +Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leänh khaùc) Leänh caát caëp thanh ghi DE: Cuù phaùp: PUSH D Leänh caát caëp thanh ghi HL: Cuù phaùp: PUSH H Leänh caát caëp thanh ghi AF: Cuù phaùp: PUSH PSW VIII. NHOÙM LEÄNH POP: Leänh chuyeån noäi dung ngaên xeáp vaøo caëp thanh ghi: + Cuù phaùp: POP B 1 1 0 0 0 0 0 1 + Maõ ñoái töôïng: + YÙ nghóa: chuyeån noäi dung töø ngaên xeáp vaøo caëp thanh ghi BC. Noäi dung ngaên xeáp coù ñòa chæ chöùa trong SP ñöôïc chuyeån cho thanh ghi C, noäi dung cuûa ngaên xeáp coù ñòa chæ (SP+1) ñöôïc chuyeån cho thanh ghi B, sau leänh POP noäi dung cuûa SP taêng leân 2. + Leänh naøy chieám moät byte, soá chu kì clock =12. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi teaïng thaùi. (Töông töï cho caùc leänh khaùc cuøng nhoùm). Leänh chuyeån noäi dung ngaên xeáp vaøo caëp thanh ghi DE: + Cuù phaùp: POP D Leänh chuyeån noäi dung ngaên xeáp vaøo caëp thanh ghi HL: + Cuù phaùp: POP H Leänh chuyeån noäi dung ngaên xeáp vaøo caëp thanh ghi AF: + Cuù phaùp: POP PSW IX. NHOÙM LEÄNH COÄNG CAËP THANH GHI VÔÙI CAËP THANH GHI: Leänh coäng caëp thanh ghi BC: + Cuù phaùp: DAD B 0 0 0 0 1 0 0 1 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung caëp thanh ghi BC ñöôïc coäng vôùi caëp thanh ghi HL, keát quaû caát trong caëp thanh ghi HL. Thanh ghi L ñöôïc coäng vôùi C, thanh ghi H ñöôïc coäng vôùi B. + Leänh naøy chieám 1 byte, soá chu kyø clock =10. + Leänh naøy chæ laøm aûnh höôûng ñeán bit traïng thaùi Cy. Töông töï cho caùc leänh cuøng nhoùm naøy nhö sau: Leänh coäng caëp thanh ghi DE: + Cuù phaùp: DAD D Leänh coäng caëp thanh ghi HL: + Cuù phaùp: DAD H Leänh coäng caëp thanh ghi SP: + Cuù phaùp: DAD SP X. NHOÙM LEÄNH TAÊNG CAËP THANH GHI: 1.Leänh taêng caëp thanh ghi BC: + Cuù phaùp: INX B 0 0 0 0 0 0 0 1 + Maõ ñoái töôïng: +YÙ nghóa: noäi dung caëp thah ghi BC taêng theâm moät ñôn vò. + Leänh naøy chieám 1 byte, soá chu kyø clock =6. + Leänh naøy khoâng laøm aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leänh khaùc) Leänh taêng caëp thanh ghi DE: + Cuù phaùp: INX D Leänh taêng caëp thanh ghi HL: + Cuù phaùp: INX H Leänh taêng caëp thanh ghi SP: + Cuù phaùp: INX SP XI. LEÄNH GIAÛM CAËP THANH GHI: Leänh giaûm caëp thanh ghi BC: + Cuù phaùp: DCX D 0 0 0 0 1 0 1 1 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung caëp thanh ghi BC giaûm theâm 1 ñôn vò. + Leänh naøy chieám 1 byte, soá chu kyø clock=6. + Leänh naøy khoâng laøm aûnh höôûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leânh khaùc) Leänh giaûm caëp thanh ghi DE: + Cuù phaùp: DCX D Leänh giaûm caëp thanh ghi HL: + Cuù phaùp: DCX H Leänh giaûm caëp thanh ghi SP: + Cuù phaùp: DCX SP XII. NHOÙM LEÄNH GIAÙN TIEÁP DUØNG CAËP THANH GHI: Leänh löu tröõ giaùn tieáp duøng caëp thanh ghi BC: + Cuù phaùp: STAX B 0 0 0 0 0 0 1 0 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh gi ñöôïc löu tröõ giaùn tieáp vaøo oâ nhôù coù ñòa chæ chöùa trong caëp thanh ghi BC. + Leänh naøy khoâng aûnh höoûng ñeán thanh ghi traïng thaùi. (Töông töï cho caùc leânh khaùc cuøng nhoùm) Leänh löu tröõ giaùn tieáp duøng caëp thanh ghi DE: + Cuù phaùp: STAX D Leänh naïp giaùn tieáp duøng caëp thanh ghi BC: + Cuù phaùp: LDAX B 0 0 0 0 1 0 1 0 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung oâ nhôù coù ñòa chæ chöùa trong caëp thanh ghi BC ñöôïc chuyeån vaøo thanh ghi A. (Töông töï cho caùc leänh khaùc) Leänh löu tröõ giaùn tieáp duøng caëp thanh ghi DE: + Cuù phaùp: LDAX D XIII. NHOÙM LEÄNH TRÖÏC TIEÁP: Leänh löu tröõ tröïc tieáp: + Cuù phaùp: STA ADDR 0 0 1 1 0 0 1 0 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A ñöôïc löu tröõ vaøo oâ nhôù coù ñòa chæ ADDR. + Leänh naøy chieám 3 byte, soá chu kyø clock=13. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh naïp tröïc tieáp: + Cuù phaùp: LDA ADDR 0 0 1 1 1 0 1 0 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: noäi dung oâ nhôù coù ñòa chæ laø ADDR ñöôïc chuyeån vaøo thanh ghi A. + Leänh naøy chieám 3 byte, soá chu kyø xung clock =13. + Leänh naàøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh löu tröõ tröïc ieáp caëp thanh ghi: + Cuù phaùp: SHLD ADDR 0 0 1 0 0 0 1 0 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: noäi dung caëp thanh ghi HL ñöïoc löu vaøo 2 oâ nhôù lieân tieáp laø ADDR vaø (ADDR+1). Noäi dung thanh ghi L ñöôïc löu tröõ vaøo oâ nhôù coù ñòa chæ laø ADDR, noäi dung cuûa thanh ghi H ñöôïc löu tröõ vaøo oâ nhôù coù ñòa chæ laø (ADDR+1). + Leänh naày chieám 3 byte, soá chu kyø xung clock = 16. + Leänh naày khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh naïp tröïc tieáp caëp thanh ghi: + Cuù phaùp: LHLD ADDR 0 0 1 0 1 0 1 0 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: noäi dung cuûa 2 oâ nhôù coù ñòa chæ lieân tieáp laø ADDR vaø (ADDR+1) ñöôïc löu tröõ vaøo caëp thanh ghi HL. Noäi dung cuûa oâ nhôù coù ñòa chæ ADDR ñöôïc naïp vaøo thanh ghi L, noäi dung cuûa oâ nhôù coù ñòa chæ (ADDR+1) ñöôïc naïp vaøo thanh ghi H. + Leänh naøy chieám 3 byte, soá chu kyø xung clock =13. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. XIV. NHOÙM LEÄNH XOAY THANH GHI A: Leänh dòch thanh ghi A sang traùi: + Cuù phaùp: RLC 0 0 0 0 0 1 1 1 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A dòch töø phaûi sang traùi, bit MSB ñöôïc chuyeån sang bit Cy vaø bit LSB. + Leänh naøy chieám 1byte, soá chu kyø lock =4. + Leänh naøy chæ aûnh höôûng ñeán bit traïng thaùi Cy. Leänh dòch thanh ghi A sang phaûi: + Cuù phaùp: RRC 0 0 0 0 1 1 1 1 + Maõ ñoái töôïng: + YÙ nghóa: noäi dung thanh ghi A dòch töø traùi sang phaûi, bit LSB ñöôïc chuyeån sang bit Cy vaø bit MSB. + Leänh naøy chieám 1byte, soá chu kyø lock =4. + Leänh naøy chæ aûnh höôûng ñeán bit traïng thaùi Cy. ( Töông töï cho caùc leänh khaùc). Leänh dòch thanh ghi A sang traùi thoâng qua bit Cy: + Cuù phaùp: RAL Leänh dòch thanh ghi A sang phaûi thoâng qua bit Cy: + Cuù phaùp: RAR XV. NHOÙM LEÄNH NHAÛY: Leänh nhaûy khoâng ñieàu kieän: + Cuù phaùp: JMP ADDR 1 1 0 0 0 0 1 1 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + yù nghóa: vi xöû lí seõ nhaûy ñeán ñòa chæ ADDR ñeå tieáp tuïc thöïc hieän chöông trình. + Leänh naøy chieám 3 byte, soá chu kyø clock =10. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh nhaûy khi bit Z=0: +Cuù phaùp: JNZ ADDR 1 1 0 0 0 0 1 0 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: vi xöû lí seõ nhaûy ñeán ñòa chæ ADDR ñeå tieáp tuïc chöông trình khi bit Z=0, ngay sau khi thöïc hieän leänh aûnh höôûng ñeán bit z cuûa thanh ghi traïng thaùi. + Leänh naøy chieám 3 byte, soá chu kyø clock laø 7/10. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. ( Töông töï cho caùc leänh khaùc). Leänh nhaûy khi bit Z=1: + Cuù phaùp: JZ ADDR Leänh nhaûy khi bit C=0: + Cuù phaùp: JNC ADDR Leänh nhaûy khi bit C=1: + Cuù phaùp: JC ADDR Leänh nhaûy khi bit P=0: + Cuù phaùp: JPO ADDR Leänh nhaûy khi bit P=1: + Cuù phaùp: JPE ADDR Leänh nhaûy khi bit S=0: + Cuù phaùp: JP ADDR Leänh nhaûy khi bit S=1: + Cuù phaùp: JM ADDR XVI. NHOÙM LEÄNH GOÏI: Leänh goïi khoâng ñieàu kieän: + Cuù phaùp: CAAL ADDR 1 1 0 0 1 1 0 1 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: vi xöû lyù seõ thöïc hieän chöông trình taïi ñòa chæ ADDR sau ñoù seõ trôû veà chöông trình chính khi gaëp leänh trôû veà. + Leänh naøy chieám 3 byte, soá chu kyø clock =18. + Leänh naøy khoâng aûnh höôûng ñeán thanh ghi traïng thaùi. Leänh goïi khi Z=0: + Cuù phaùp: CNZ ADDR 1 1 0 0 1 1 0 1 8 bit thaáp 8 bit cao + Maõ ñoái töôïng: + YÙ nghóa: vi xöû lyù seõ thöïc hieän chöông trình taïi ADDR khi bit Z=0, ngay sau khi thöïc hieän leänh aûnh hö._.t STRA = 1, bit IBFA = 1 vaø bit INTEA = 1. Thoâng thöôøng bit naøy duøng ñeå taùc ñoäng vaøo ngoõ vaøo ngaét cuûa vi xöû lyù ñeå baùo cho vi xöû lyù bieát : döõ lieäu môùi ñaõ xuaát hieän ôû ngoõ vaøo. Caùc bit PC6, PC7 cuûa coång C laø caùc bit xuaát/ nhaäp bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån. Coøn coång B ñöôïc ñieàu khieån baèng caùc bit D0 – D2 trong thanh ghi ñieàu khieån (neáu coång B hoaït ñoäng ôû mode 1 thì caùc bit PC0 – PC2 laø caùc bit ñieàu khieån). + Coång A ñöôïc caáu hình laø coång xuaát döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ: WR\ PC7 PC6 PC3 PC4,5 PA0–PA7 INTE A OBFA\ ACKA\ INTRA I/O Töø ñieàu khieån : 1 0 1 0 D3 X x x Hình 6.5 : Chöùc naêng caùc ñöôøng tín hieäu khi coång A laø coång xuaát döõ lieäu Bit PC7 trôû thaønh bit OBFA (Output Buffer Full, taùc ñoäng möùc thaáp), khi coù döõ lieäu töø vi xöû lyù gôûi ra coång A, tín hieåu OBF seõ yeâu caàu thieát bò beân ngoaøi nhaän döõ lieäu. Bit PC6 trôû thaønh bit ACKA (Acknowledge Input, taùc ñoäng möùc thaáp), thieát bò nhaän döõ lieäu duøng tín hieäu naøy ñeå baùo cho 8255A bieát döõ lieäu ñaõ ñöôïc nhaän vaø saün saøng nhaän döõ lieäu môùi. Bit PC3 trôû thaønh bit INTRA (Interrupt Request, taùc ñoäng möùc cao), bit naøy coù möùc logic baèng 1 khi bit OBFA = 1, ACKA = 1 vaø bit INTEA = 1. Tín hieäu INTRA taùc ñoäng ñeán ngoõ vaøo ngaét cuûa vi xöû lyù ñeå baùo cho vi xöû lyù bieát thieát bò beân ngoaøi ñaõ nhaän döõ lieäu töø coång A. Caùc bit PC4, PC5 vaãn laø bit nhaäp/ xuaát döõ lieäu bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån. Caùc bit D0 – D2 trong thanh ghi ñieàu khieån duøng ñeå thieát laäp caáu hình cho coång B. * Nhoùm B ñöôïc caáu hình ôû mode 1. + Coång B ñöôïc caáu hình laø coång nhaäp döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ: RD\ PC2 PC1 PC0 PB0–PB7 INTE B STBB\ IBFB INTRB Töø ñieàu khieån : 1 x x x X 1 1 x Hình 6.6 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång nhaäp döõ lieäu Chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö khi nhoùm A hoaït ñoäng ôû mode 1 vaø coång A ñöôïc caáu hình laø coång nhaäp döõ lieäu. + Coång B ñöôïc caáu hình laø coång xuaát döõ lieäu. Chöùc naêng caùc ñöôøng tín hieäu ñöôïc trình baøy nhö hình veõ : WR\ PC1 PC2 PC0 PB0–PB7 INTE B OBFB\ ACKB\ INTRB Töø ñieàu khieån: 1 x X x x 1 0 x Hình 6.7 : Chöùc naêng caùc ñöôøng tín hieäu khi coång B laø coång xuaát döõ lieäu Chöùc naêng cuûa caùc töø ñieàu khieån gioáng nhö khi nhoùm A hoaït ñoäng ôû mode 1 vaø coång A ñöôïc caáu hình laø coång xuaát döõ lieäu. * Nhoùm A ñöôïc caáu hình ôû mode 2. Mode 2 laø kieåu hoaït ñoäng strobed bi-directional IO : coù hai chöùc naêng nhaäp xuaát döõ lieäu. Töø ñieàu khieån khi nhoùm A ñöôïc caáu hình ôû mode 2 vaø chöùc naêng cuûa caùc ñöôøng tín hieäu ñöôïc trình baøy ôû hình veõ: Töø ñieàu khieån : WR\ PA0–PA7 OBFA\ ACKA\ PC3 PC7 PC6 PC4 PC5 STBA\ IBFA RD\ INTE 1 INTE 2 PC2,1,0 I/O INTE A 1 0 1 1 D3 x x x Hình 6.8: Chöùc naêng caùc ñöôøng tín hieäu khi nhoùm A hoaït ñoäng ôû mode 2 Caùc ñöôøng tín hieäu cuûa coång C trôû thaønh caùc ñöôøng ñieàu khieån cuûa coång A. Bit PC7 trôû thaønh bit OBFA, PC6 trôû thaønh bit ACKA, PC4 trôû thaønh bit STBA, PC5 trôû thaønh bit IBFA vaø bit PC3 trôû thaønh bit INTRA, chöùc naêng cuûa caùc bit ñieàu khieån gioáng nhö ôû mode 1, chæ khaùc tín hieäu INTRA = 1 khi OBFA = 1 vaø INTE1 = 1 hoaëc IBFA = 1 vaø INTE2 = 1. Caùc bit PC0 – PC2 laø caùc bit nhaäp xuaát döõ lieäu bình thöôøng tuøy thuoäc vaøo töø ñieàu khieån trong thanh ghi ñieàu khieån. Moät chuù yù caàn thieát laø khi nhoùm A ñöôïc caáu hình ôû mode 2 thì nhoùm B chæ ñöôïc caáu hình ôû mode 0. IV. GIAO TIEÁP GIÖÕA VI XÖÛ LYÙ VÔÙI 8255A: DECODER 2 TO 4 LINE ñeán CS\ cuûa 8255A -1 ñeán CS\ cuûa 8255A -2 ñeán CS\ cuûa 8255A -3 ñeán CS\ cuûa 8255A -4 A2 A3 Vi maïch 8255A coù theå giao tieáp vôùi vi xöû lyù theo 2 kieåu: kieåu nhaäp/xuaát (kieåu I/O) vaø kieåu boä nhôù. Khi vi xöû lyù giao tieáp vôùi 8255A theo kieåu I/O noù chæ duøng ñöôïc 8 ñöôøng ñòa chæ töø A0 – A7 maø thoâi coøn khi giao tieáp kieåu boä nhôù, noù duøng ñöôïc caû 16 ñöôøng ñòa chæ, vì vaäy dung löôïng giao tieáp kieåu I/O thaáp hôn dung löôïng giao tieáp kieåu boä nhôù. 1. Giao tieáp kieåu I/O. Khi thieát keá vi xöû lyù giao tieáp vôùi 8255A theo kieåu I/O thì döõ lieäu seõ ñöôïc truy xuaát baèng 2 leänh : IN addr-port vaø OUT addr-port. Döõ lieäu giao tieáp luoân chöùa trong thanh ghi A. Ñòa chæ coång (addr-port) coù ñoä daøi laø 8 bit. Cuõng gioáng nhö boä nhôù, vi xöû lyù coù theå giao tieáp vôùi nhieàu vi maïch 8255, vôùi 8 ñöôøng ñòa chæ thì coù taát caû 256 ñòa chæ, maø moãi vi maïch chieám 4 ñòa chæ (3 coång vaø thanh ghi ñieàu khieån) neân soá vi maïch 8255 toái ña coù theå giao tieáp cuûa vi xöû lyù laø 256/4 = 64 vi maïch. Khi keát noái giöõa vi xöû lyù vôùi vi maïch 8255A thì ñöôøng ñòa chæ A0 vaø A1 duøng ñeå löïa choïn caùc coång vaø thanh ghi ñieàu khieån, coøn caùc ñöôøng ñòa chæ coøn laïi töø A2 – A7 duøng ñeå löïa choïn vi maïch hoaït ñoäng, thoâng thöôøng caùc ñöôøng ñòa chæ naøy ñöôïc ñöa vaøo vi maïch giaûi maõ roài caùc ngoõ ra cuûa vi maïch giaûi maõ seõ ñöa ñeán CS\ cuûa caùc vi maïch 8255A. Moät ví duï khi thieát keá vi xöû lyù giao tieáp vôùi 4 vi maïch 8255A: Sô ñoà keát noái nhö hình veõ : (vi maïch 74139). DECODER 2 TO 4 LINE ñeán CS\ cuûa 8255A -1 ñeán CS\ cuûa 8255A -2 ñeán CS\ cuûa 8255A -3 ñeán CS\ cuûa 8255A -4 A2 A3 Hình 6.9: Sô ñoà keát noái vi xöû lyù vôùi vi maïch 8255A Trong ñoù, ñöôøng A0 vaø A1 ñöôïc noái vôùi 8255A nhö ñaõ trình baøy ôû treân, ñöôøng A2, A3 ñöôïc ñöa vaøo vi maïch giaûi maõ 2 ñöôøng thaønh 4 ñöôøng ñeå löïa choïn vi maïch 8255A. Töø ñoù, ta coù baûng ñòa chæ cuûa caùc vi maïch 8255A nhö sau : IC A7 A6 A5 A4 A3 A2 A1 A0 Hex 8255A-1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 00 03 8255A-2 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 1 04 07 8255A-3 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 1 08 0B 8255A-4 0 0 0 0 0 0 0 0 1 1 1 1 0 1 0 1 0C 0F 2. Giao tieáp kieåu boä nhôù. Khi thieát keá 8255A giao tieáp vôùi vi xöû lyù theo kieåu boä nhôù thì chöùc naêng cuûa 8255A khoâng thay ñoåi, chæ thay ñoåi kieåu truy xuaát. Vôùi kieåu I/O thì ñòa chæ cuûa caùc coång vaø thanh ghi ñieàu khieån laø 8 bit thì ôû kieåu boä nhôù, ñòa chæ cuûa caùc coång vaø thanh ghi ñieàu khieån laø 16 bit, khi ñoù caùch keát noái cuõng töông töï nhö keát noái vi xöû lyù vôùi boä nhôù thoâng thöôøng, vaø moãi vi maïch 8255A cuõng ñöôïc coi nhö laø boä nhôù vôùi 4 oâ nhôù: 3 coång vaø thanh ghi ñieàu khieån, truy xuaát döõ lieäu baèng caùch duøng caùc leänh truy xuaát döõ lieäu cuûa boä nhôù. Caùch keát noái töông töï nhö khi vi xöû lyù keát noái vôùi boä nhôù neân ôû ñaây khoâng caàn trình baøy laïi. CHÖÔNG VII: PHAÀN CÖÙNG VAØ PHAÀN MEÀM GIAO TIEÁP LÖU ÑOÀ VAØ CHÖÔNG TRÌNH TRUYEÀN DÖÕ LIEÄU LÖU ÑOÀ TRUYEÀN DÖÕ LIEÄU: BEGIN KHÔÛI PHAÙT: GHI TÖØ CHEÁ ÑOÄ GHI LEÄNH : DTR, TxEN ÑOÏC TRAÏNG THAÙI: DSR, TxRDy GHI SOÁ LIEÄU RA THANH GHI ÑEÄM SOÁ LIEÄU GHI LEÄNH PHAÙT: RTS END HÌNH 7.1 Kieåm tra saün saøng: DSR = TxRDY =1 LÖU ÑOÀ NHAÄN DÖÕ LIEÄU: BEGIN KHÔÛI PHAÙT: GHI TÖØ CHEÁ ÑOÄ GHI LEÄNH : DTR, A{RxEN,RTS ÑOÏC TRAÏNG THAÙI: DSR, RxRDy Kieåm tra saün saøng :DSR= RxRDY=1 ÑOÏC SOÁ LIEÄU TÖØ THANH GHI ÑEÄM SOÁ LIEÄU END HÌNH 7.2 CHÖÔNG TRÌNH TRUYEÀN DÖÕ LIEÄU ;xxxxxxxxxxxxxxxxxxxxx ;chuong trinh con delay org 6200h delay: mvi b,3 x0: dcr b jnz X0 ret ;xxxxxxxxxxxxxxxxxxxxx ;chuong trinh truyen du lieu org 4100h mvi a,00h ;xoa reg lenh out 01h call delay out 01h call delay out 01h call delay mvi a,40h ;xoa cac thanh ghi noi out 01h call delay mvi a,0ceh ;goi tu dk che do out 01h call delay lxi d,6500h mvi a,03h ;goi tu lenh out 01h call delay x1: in 01 ;doc tg trang thai ani 10000001b ;giu MSB va LSB cpi 81h jnz x1 ldax d mov l,a out 00h ;doc byte dia chi de truyen call delay mvi a,21h ;goi tu lenh de truyen di out 01 call delay inr e mvi a,03h out 01h call delay x2: in 01h ani 81h cpi 81h jnz x2 ldax d mov h,a out 00h call delay mvi a,21h out 01h call delay inr e mvi a,03h out 01h call delay x13: in 01h ani 81h cpi 81h jnz x13 ldax d mov c,a out 00 call delay mvi a,21h out 01h call delay x4: mvi a,03h out 01h call delay x3: in 01h ani 81h cpi 81h jnz x3 mov a,m ;truyen du lieu out 00h call delay mvi a,21h out 01h call delay inr l dcr c jnz x4 ;hien chu E de biet cham dut lxi h,0a000h mvi m,79h hlt CHÖÔNG TRÌNH NHAÄN DÖÕ LIEÄU: ;x-chuong trinh nhan du lieu-x org 4300h mvi a,00h ; xoa cac thanh ghi out 01h call delay out 01h call delay out 01h call delay mvi a,40h ;xoa cac thanh ghi noi out 01h call delay mvi a,0ceh ;nap tu che do out 01h call delay mvi a,26h ;nap tu lenh out 01h call delay y5: in 01h ani 82h cpi 82h jnz y5 in 00h ;cat byte dia chi thap mov e,a mov l,a y6: in 01h ani 82h cpi 82h jnz y6 in 00h ;cat byte dia chi cao mov d,a mov h,a y7: in 01h ani 82h cpi 82h jnz y7 in 00h mov c,a y8: in 01h ani 81h cpi 81h jnz y8 in 00h ;nap du lieu vao o nho stax d inr e dcr c jnz y8 pchl end II. THIEÁT KEÁ VAØ THI COÂNG PHAÀN GIAO TIEÁP: GIÔÙI THIEÄU VI MAÏCH MAX 232: Vi maïch MAX 232 chuyeån ñoåi möùc TTL ôû ngoõ vaøo thaønh möùc +10V hoaëc –10V ôû phía truyeàn vaø caùc möùc +3V… +15V hoaëc –3V … -15V thaønh möùc TTL ôû phía nhaän. Treân hình 7.3 moâ taû caùch saép xeáp chaân vaø sô ñoà caáu truùc cuûa vi maïch MAX 232. O 1 16 2 15 3 MAX 14 232 4 13 5 12 6 11 7 10 8 9 16 16 16 16 16 16 16 16 16 16 16 16 16 16 C1+ V+ C1- C2+ C2- V- T2OUT R2IN Vcc GND T1OUT R1IN R1OUT T1IN T2IN R2OUT HÌNH 7.3 Ñöôøng daãn TxD daãn tröïc tieáp ñeán chaân 11 cuûa vi maïch MAX 232 coøn boä ñeäm noái ra ôû chaân 14 ñöôïc noái tröïc tieáp tôùi chaân soá 2 cuûa coång noái tieáp. Vieäc saép xeáp chaân ôû oå caém noái tieáp ñöôïc löïa choïn sao cho coù theå duøng moät caùp noái tröïc tieáp coång noái tieáp cuûa heä phaùt trieån, vôùi coång noái tieáp cuûa maùy tính thöôøng laø COM 2. Vôùi ñöôøng daãn RxD moïi vieäc cuõng dieãn ra töông töï chaân 13 cuûa vi maïch ñöôïc noái ñeán chaân 3 cuûa coång noái tieáp. SÔ ÑOÀ MAÏCH KEÁT NOÁI: Vì söû duïng kit 8085 ñaõ coù neân keát noái caùc ñöôøng data cuûa 8255 cuûa kit vôùi 8251 cuûa board giao tieáp. Sô ñoà keát noái nhö sau: HÌNH 7.4 SÔ DOÀ MAÏCH IN: Goàm hai maët :maët treân vaø maët döôùi. Board maïch cuï theå nhö sau: MAËT DÖÔÙI MAËT TREÂN Keát luaän Qua thôøi gian thöïc hieän, döôùi söï höôùng daãn taän tình cuûa Thaày Nguyeãn Ñình Phuù cuøng söï giuùp ñôõ raát nhieàu cuûa quyù thaày coâ trong khoa, em ñaõ coá gaéng hoaøn thaønh luaän vaên ñuùng theo yeâu caàu vaø thôøi gian quy ñònh. Trong luaän vaên chuùng em ñaõ thöïc hieän ñöôïc nhöõng coâng vieäc sau: Khaûo saùt phaàn lyù thuyeát: - Giôùi thieäu vi xöû lyù. - Giôùi thieäu caùch giao tieáp. - khaûo saùt kit vi xöû lyù 8085. Thi coâng maïch ñieän cho phaàn giao tieáp. Maëc duø ñaõ raát coá gaéng, nhöng do kieán thöùc vaø thôøi gian coù haïn neân coù nhöõng phaàn chuùng em chöa laøm ñöôïc nhö: phaàn giao dieän maøn hình. Vaø em seõ khoâng traùnh khoûi nhöõng ñieàu thieáu soùt, nhaàm laãn khaùc, kính mong quyù thaày coâ thoâng caûm boû qua. Ngöôøi thöïc hieän mong moûi caùc baïn sinh vieân khoa ñieän ôû nhöõng khoùa sau boå xung cho luaän vaên naøy hoaøn chænh hôn. Sinh vieân thöïc hieän Nguyeãn Trung Duõng HÖÔÙNG PHAÙT TRIEÅN ÑEÀ TAØI Ngaøy nay vôùi söï phaùt trieån nhanh choùng cuûa khoa hoïc kyõ thaät vaø ñaát nöôùc ta ñang chuyeån mình sang neàn saûn xuaát coâng nghieäp. Do ñoù, ñeå ñaùp öùng vôùi nhu caàu thöïc teá thì chuùng ta caàn phaûi nghieân cöùu theâm caùc loaïi giao dieän noái tieáp khaùc ñeå taêng theâm ñöôïc khoaûng caùch vaø toác ñoä truyeàn. Ngoaøi ra, coøn coù theå döïa treân taäp luaän aùn naøy ñeå vieát theâm nhieàu chöông trình khaùc coù theå öùng duïng trong thöïc teá vaø caûi tieán laïi chöông trình naøy ñeå tieän lôïi cho ngöôøi söû duïng … Sinh vieân thöïc hieän Nguyeãn Trung Duõng TAØI LIEÄU THAM KHAÛO 1. ÑO LÖÔØNG VAØ ÑIEÀU KHIEÅN BAÈNG MAÙY VI TÍNH Ngoâ Dieän Taäp _ NXB KHKT Haø Noäi _ 1996 ÑIEÀU KHIEÅN VAØ GHEÙP NOÁI CAÙC THIEÁT BÒ NGOAÏI VI Traàn Baù Thaùi _ NXB KHKT Haø Noäi _ 1984 KYÕ THUAÄT GHEÙP NOÁI MAÙY VI TÍNH Nguyeãn Maïnh Giang _ NXB GD Haø Noäi _1997 TRUYEÀN DÖÕ LIEÄU Toáng Vaên On _ ÑH KYÕ THUAÄT TPHCM _ 1999 VI XÖÛ LYÙ TRONG ÑO LÖÔØNG VAØ ÑIEÀU KHIEÅN Ngoâ Dieän Taäp _ NXB KHKT Haø Noäi _ 1996 KYÕ THUAÄT VI XÖÛ LYÙ Vaên Theá Minh _ NXB GD _ 1997 ASSEMBLY LANGUAGE TOOLS and TECHNIQUES FOR THE IBM MICROCOMPUTERS Julio Sanches _ Prentice Hall _ 1990 MICROCOMPUTER INTERFACING Bruce A.Artwick _ Prentice Hall _ 1980 PHUÏ LUÏC CHÖÔNG TRÌNH TRUYEÀN DÖÕ LIEÄU CUÛA MAÙY TÍNH ; TERMINAL.ASM ; STACK stack segment stack db 300 dup('?') stack ends ; DATA data segment prompt db 'File name:$' filename db 30 dup(0) buffer db 512 dup(0) buffrr db 512 dup(0) handle dw ? openerr db 0dh,0ah,'OPEN ERROR - COPDE' errcode db 30h,'$' ;messages MENU_MS db ' **TERMINAL PROGRAM**',0dh,0ah db ' to redisplay this MENU',0dh,0ah db ' to set communications protocol',0dh,0ah db ' to display protocol installed',0dh,0ah db ' to open file.hex and trasnmit',0dh,0ah db ' to exit the TERMINAL program',0dh,0ah db 'All character typed are transmitter',0dh,0ah db 'All character receiver are display',0dh,0ah db 0dh,0ah,'$' PROT_MS db '* Installed communications protocol',0dh,0ah db 'Baud rate:' Baud% db '2400',0dh,0ah db 'Parity:' Par% db 'Even',0dh,0ah db 'Stop bit:' Stop% db '1',0dh,0ah db 'Word length:' Word% db '8',0dh,0ah,0ah,'$' Baud$$ db '110 150 300 600 1200 2400 4800 9600' Par$$ db 'odd noneven' baud_menu db 0dh,0ah,'**New communication parameter' db 'rs input **',0dh,0ah db 'baud rate:',0dh,0ah db '1 = 110',0dh,0ah db '2 = 150',0dh,0ah db '3 = 300',0dh,0ah db '4 = 600',0dh,0ah db '5 = 1200',0dh,0ah db '6 = 2400',0dh,0ah db '7 = 4800',0dh,0ah db '8 = 9600',0dh,0ah db 'Select: $' par_menu db 0dh,0ah,'Pariry:',0dh,0ah db '1 = odd',0dh,0ah db '2 = none',0dh,0ah db '3 = even',0dh,0ah db 'Select: $' Stop_menu db 0dh,0ah,'Stop bit:',0dh,0ah db '1 = 1 stop bit',0dh,0ah db '2 = 2 stop bit',0dh,0ah db 'Select: $' Word_menu db 0dh,0ah,'Word length:',0dh,0ah db '1 = 7 bit',0dh,0ah db '2 = 8 bit',0dh,0ah db 'Select: $' err1_ms db 0dh,0ah,'*** cannot transmit ***',0dh,0ah card_base dw 02f8h ;address of RS 232 card inT_num db 0ch setup_byte db 0bbh ; ;Origin O_int_seg dw 0000h ;segment O_int_off dw 0000h ;offset ;circular buffer and pointer: circ_buf db 20 dup(00h) dw 0 data_in dw 0 ;imput pointer data_out dw 0 ;output pointer data ends ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx CODE xxxxxxxxxxxxxxxxxx code segment assume CS:code start: mov ax,data mov ds,ax assume ds:data mov es,ax assume es:data ;display MENU at cursor mov dx,offset menu_ms ;messages call show_message ;hardware type push ds mov dx,0f000h mov ds,dx mov al,ds:[0fffeh] ;code to AL ;get addr of the RS232 card from BIOS data area mov dx,0 mov ds,dx mov cx,ds:0400h pop ds mov card_base,cx ;determine interrupt number: ; 0bh IRQ4 all other cmp al,0fdh jne set_address mov int_num,0bh ;save/install interrupt set_address: mov ah,53 mov al,int_num int 21h mov o_int_seg,es mov o_int_off,bx mov ah,37 mov al,int_num mov dx,offset cs:rs232_int push ds push cs pop ds int 21h pop ds ;set protocol mov al,10111011b mov ah,0 mov dx,0 int 14h call comm_on call flush ; monitor: mov ah,1 int 16h jz ser_imp jmp char_typed ser_imp: sti ;interrupt on mov cx,50 delay: nop nop loop delay ;test for new data received cli mov bx,data_out cmp bx,data_in jne new_data sti jmp monitor ;process char char_typed: mov ah,0 int 16h ;test for ,,, and keys cmp ax,3b00h jne test_f2 jmp show_menu ;F1 key pressed test_f2: cmp ax,3c00h jne test_f3 jmp set_protocol ;F2 key pressed test_f3: cmp ax,3d00h jne test_f4 jmp show_protocol ;F3 key pressed test_f4: cmp ax,3e00h jne test_f9 jmp tran_file ;F4 key pressed test_f9: cmp ax,4300h je dos_exit jmp show_and_send ;F2 key pressed dos_exit: call comm_off mov ah,37 mov al,int_num mov dx,o_int_off mov ax,o_int_seg mov ds,ax int 21h ;exit mov ah,76 mov al,0 int 21h ;redisplay menu show_menu: mov dx,offset menu_ms call show_message jmp monitor ;new data receiver new_data: lea si,circ_buf mov bx,data_out add si,bx mov al,byte ptr[si] ;update output pointer inc bx cmp bx,20 jne ok_out_ptr mov bx,0 ok_out_ptr: mov data_out,bx sti call tty jmp monitor set_protocol: call comm_off baud_rates: mov dx,offset baud_menu call show_message call get_key call tty cmp al,'1' jc baud_rates cmp al,'9' jnc baud_rates sub al,30h ;ascii to binary sub al,1 ;to range 0 to 7 push ax mov cl,4 mul cl mov si,offset baud$$ mov ah,0 add si,ax mov di,offset baud% mov cx,4 cld push ds pop es rep movsb pop ax mov cl,5 shl al,cl mov setup_byte,al parity: mov dx,offset par_menu call show_message call get_key call tty ;valid input range is "1" to "3" cmp al,'1' jc parity cmp al,'4' jnc parity ;input is valid range sub al,30h push ax ;select 4 byte parity message and place in display area sub al,1 mov al,4 mul cl mov si,offset par$$ mov ah,0 add si,ax mov di,offset par% mov cx,4 cld push ds pop es rep movsb pop ax mov cl,3 shl al,cl or setup_byte,al stopbits: mov dx,offset stop_menu call show_message call get_key call tty ;valid input range is "1" or "2" cmp al,'1' jc stopbits cmp al,'3' jnc stopbits mov si,offset stop% mov byte ptr[si],al sub al,31h mov cl,2 shl al,cl or setup_byte,al word_length: mov dx,offset word_menu call show_message call get_key call tty ;valid input range is '1' or '2' cmp al,'1' jc word_length cmp al,'3' jnc word_length push ax ;Input in valid range. Add 6 and move input to display area add al,6 mov si,offset word% mov byte ptr[si],al pop ax sub al,30h inc al or setup_byte,al ;install new parameter mov al,setup_byte mov dx,0 mov ah,0 int 14h ;line feed and cariage reture before exit mov al,0dh call tty mov al,0ah call tty ;communication call comm_on jmp monitor ; ;display protocol show_protocol: mov dx,offset prot_ms call show_message jmp monitor ;************************************************************** ;output and display show_and_send: mov cx,2000 push ax thre_wait: mov dx,card_base add dx,5 in al,dx jmp short $+2 test al,20h jnz ok_2_send loop thre_wait ;wait period timed out,display error message and exit pop ax mov dx,offset err1_ms call show_message jmp monitor ok_2_send: pop ax ;place in transmitter hoding register to send mov dx,card_base out dx,al jmp short $+2 ;display character call tty jmp monitor ;************************************************************** ;CAC CHUONG TRINH CON comm_on proc near cli ;interrupt off ;reset buffer pointer to start of buffer mov data_in,0 mov data_out,0 ;set dx to base address of RS 232 card from BIOS mov dx,card_base mov dl,0fch mov al,00001011b out dx,al jmp short $+2 ;set bit 7 mov dl,0fbh in al,dx jmp short $+2 and al,7fh out dx,al jmp short $+2 in al,21h jmp short $+2 and al,0e7h out 21h,al jmp short $+2 ;I/o delay ;reenable interrupt sti ret comm_on endp comm_off proc near in al,21h or al,18h out 21h,al jmp short $+2 ret comm_off endp show_message proc near mov ah,9 int 21h ret show_message endp tty proc near tty_one: push ax mov ah,14 mov bx,0 int 10h pop ax cmp al,0dh jne not_cr mov al,0ah jmp tty_one not_cr: ret tty endp flush proc near flush_1: mov ah,1 int 16h jz no_old_chars mov ah,0 int 16h jmp flush_1 no_old_chars: ret flush endp get_key proc near mov ah,0 int 16h ret get_key endp rs232_int: sti ;interrupt on push ax push bx push dx push di push ds mov dx,data mov ds,dx assume ds:data data_check: mov dx,card_base mov dl,0fdh in al,dx jmp short $+2 test al,1eh jnz data_error jmp data_check data_error: mov al,'1' jmp store_byte data_ready: mov dl,0f8h in al,dx jmp short $+2 and al,7fh store_byte: lea di,circ_buf mov bx,data_in add di,bx mov byte ptr[di],al inc bx cmp bx,20 jne ok_in_ptr mov bx,0 ok_in_ptr: mov data_in,bx mov al,20h out 20h,al jmp short $+2 pop ds pop di pop dx pop bx pop ax iret ;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx tran_file: call get_name ;doc ten file lea dx,filename ;dx chua offset cua ten file mov al,0 call open jc open_error mov handle,ax read_loop: lea dx,buffer ;tro toi vung dem mov bx,handle ;lay the file call read ;doc file,AX = so byte doc duoc or ax,ax ;ket thuc file je pexit ;dung, ket thuc file mov cx,ax ;CX chua so byte doc duoc call display ;hien thi file jmp read_loop ;lap lai open_error: lea dx,openerr ;lay thong bao loi add errcode,al mov ah,9 int 21h ;hien thi thong bao loi ;************************************************************** ;output and display ;show_and_send: pexit: mov cx,2000 pthre_wait: mov dx,card_base add dx,5 in al,dx jmp short $+2 test al,20h jnz pok_2_send loop pthre_wait ;wait period timed out,display error message and exit mov dx,offset err1_ms call show_message jmp ppexit pok_2_send: call con_hex ;goi chtr con chuyen sang so hex lea dx,buffrr mov cx,256 call display mov cx,256 ;place in transmitter hoding register to send mov dx,card_base lea di,buffrr ;tro toi vung dem ppl: mov al,[di] ;lay byte data out dx,al jmp short $+2 call edelay inc di loop ppl ;display character ; call tty ppexit: mov bx,handle ;lay the file call close ;dong the file jmp monitor ;************************************************************** get_name proc near push ax push dx push di mov ah,9 ;ham hien thi chuoi lea dx,prompt int 21h cld lea di,filename ;DI tro toi ten file mov ah,1 ;ham doc ki tu tu ban phim read_name: int 21h cmp al,0dh ;co phai CR je done ;dung ket thuc stosb ;luu no vao trong chuoi jmp read_name ;tiep tuc doc vao done: mov al,0 stosb ;luu byte 0 pop di pop dx pop ax ret get_name endp open proc near mov ah,3dh ;ham mo file mov al,0 ;chi doc int 21h ret open endp read proc near push cx mov ah,3fh ;ham mo file mov cx,512 ;chi doc int 21h pop cx ret read endp display proc near push bx mov ah,40h ;ham ghi file mov bx,1 ;the file cho man hinh int 21h ;dong file pop bx ret display endp close proc near mov ah,3eh ;ham dong file int 21h ;dong file ret close endp edelay proc near push ax push bx mov ax,06h edel2: mov bx,0ffffh edel1: dec bx jnz edel1 dec ax jnz edel2 pop bx pop ax ret edelay endp ;++++++++++++++++++++++++++++++++++++++++++++ con_hex proc near push ax push bx push cx push dx push di push si mov ax,0b800h mov bx,0 cld lea si,buffrr mov cx,260 mov al,0 xxx8: mov [si],al inc si loop xxx8 lea si,buffrr lea di,buffer xxx3: mov al,[di] ;lay byte data cmp al,3ah ;so sanh voi ma dau ':' jz xxx2 ;nhay neu la dau ':' inc di jmp xxx3 ;quay lai de tim dau ':' xxx2: call ktra_end ;goi chuong trinh kiem tra ket thuc cmp ax,0 ;dung la het data thi lam cho AX=0000 jnz xxx4 xxx6: pop si pop di pop dx pop cx pop bx pop ax ret xxx4: mov al,[di] ;lay byte data mov [si],al ;dung la byte 3Ah can luu vao call goi_ht inc di inc si ;xu li so byte can goi mov al,[di] ;lay so can goi MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay so can go LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so HEX ADDR_H add al,1 mov dl,al ;luu so byte can xu li con lai call goi_ht ;xu li phan dia chi can goi inc di inc si mov al,[di] ;lay byte ADDR_L-MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay byte ADDR_L-LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so HEX ADDR_H call goi_ht inc di inc si mov al,[di] ;lay byte ADDR_H-MSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay byte ADDR_H-LSD sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so byte can goi dang HEX call goi_ht ;xu li cac byte con lai inc di ;bo byte 00 inc di ; xxx1: inc di inc si mov al,[di] ;lay so byte thu nhat sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF mov cl,4 rol al,cl mov ah,al inc di mov al,[di] ;lay so byte thu 2 sub al,30h ;tru di 30 de thanh so hex call so_lon ;kiem tra so ABCDEF or al,ah ;or 2 data lai thanh 1 byte mov [si],al ;cat so byte can goi dang HEX call goi_ht dec dl cmp dl,0 jnz xxx1 ;quay lai vi chua inc di ;bo byte cuoi thu nhat inc di ;bo byte thu 2 inc di ;bo ma xuong hang jmp xxx3 ;het 1 hang data con_hex endp ;chuong trinh kiem tra ket thuc ktra_end proc near push di inc di mov al,[di] ;lay byte data cmp al,30h ;kiem tra byte 0 thu nhat jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 2 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 3 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 4 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 5 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 6 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 0 thu 7 mov al,[di] ;lay byte data cmp al,30h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte 1 thu 8 mov al,[di] ;lay byte data cmp al,31h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte F thu 9 mov al,[di] ;lay byte data cmp al,46h jnz kt_exit ;nhay den de thoat vi khong phai inc di ;neu dung thi kiem tra byte F thu 10 mov al,[di] ;lay byte data cmp al,46h jnz kt_exit ;nhay den de thoat vi khong phai mov ax,0 pop di ret kt_exit: mov ax,1111h ;nap data sao cho khac khong la 1 pop di ret ktra_end endp goi_ht proc near RET push di mov di,bx mov ah,1 stosw mov bx,di pop di ret goi_ht endp so_lon proc near cmp al,9 jg yyy ret yyy: sub al,7 ret so_lon endp code ends end start MUÏC LUÏC Trang Lôøi caûm taï Lôøi noùi ñaàu PHAÀN GIÔÙI THIEÄU CHUNG CHÖÔNG CÔ SÔÛ LYÙ LUAÄN Chöông I: CAÁU TRUÙC VI XÖÛ LYÙ 8085 I. Caáu Truùc Beân Trong Cuûa Vi Xöû Lyù 8085 II. Sô Ñoà Caáu Truùc Beân Ngoaøi Vaø Chöù Naêng Caùc Chaân Cuûa Vi Xöû Lyù 8085 III. Boä Nhôù IV. Keát Noái Boä Nhôù Vôùi Vi Xöû Lyù V. Vaán Ñeà Giaûi Maõ Cho Boä Nhôù Chöông II: GIÔÙI THIEÄU TAÄP LEÄNH CUÛA VI XÖÛ LYÙ 8085 Chöông III: GIAO TIEÁP VÔÙI MAÙY TÍNH I. Giao Tieáp Song Song 1. Giao Tieáp Qua Coång Maùy In 2. Giao Tieáp Qua Coång Slot Card II. Giao Tieáp Noái Tieáp Qua Coång COM RS232 1. Vaøi Neùt Cô Baûn Veà Coång noái Tieáp 2. Söï Trao Ñoåi Cuûa Caùc Ñöôøng Tín Hieäu Chöông IV: GIÔÙI THIEÄU HEÄ THOÁNG KIT 8085 1. Taàn Soá Laøm Taàn Soá Laøm Vieäc 2. Toå Chöùc Boä Nhôù 3. Caùc IC Ngoaïi Vi 4. Khoái Giaûi Maõ Hieån Thò Söû Duïng IC 8279 5. Khoái Giaøi Maõ Baøn Phím PHAÀN GIAO TIEÁP Chöông V: Giao Tieáp Noái Tieáp Duøng Vi Maïch 8251 I. Truyeàn Thoâng Tin Noái Tieáp II. Vi Maïch Usart 8251 1. Sô Ñoà Chaân Vaø Sô Ñoà Khoái 2. Caùc Thanh Ghi III. Öùng Duïng Cuûa 8251 Ñeå Truyeàn Thoâng Tin Noái Tieáp 1. Truyeàn Thoâng Tin Noái Tieáp Giöõa Hai Kit Vi Xöû Lyù 2. Truyeàn Thoâng Tin Noái Tieáp Giöõa Vi Xöû Lyù Vaø Maùy Tính Chöông VI: Giao Tieáp Song Song Duøng Vi Maïch 8255 I. Giôiù Thieäu Veà Vi Maïch 8255 II. Sô Ñoà Chaân, Sô Ñoà Logic, Chöùc Naêng Caùc Chaân Cuûa Vi Maïch 8255 III. Caáu Truùc Beân Trong vaø Hoaït Ñoäng Cuûa Vi Maïch 8255 1. Sô Ñoà Khoái, Caáu Truùc Beân Trong Cuûa Vi Maïch 8255 2.Hoaït Ñoäng Cuûa Vi Maïch 8255 3. Töø Ñieàu Khieån IV. Giao Tieáp Giöõa Vi Xöû Lyù Vôùi 8255 1. Giao Tieáp Kieåu I/O 2. Giao Tieáp Kieåu Boä Nhôù Chöông VII. Phaàn Cöùng Vaø Phaàn Meàm Giao Tieáp I. Löu Ñoà Vaø Chöông Trình Truyeàn- Nhaän Döõ Lieäu 1. Löu Ñoà Truyeàn Döõ Lieäu 2. Löu Ñoà Nhaän Döõ Lieäu 3. Chöông Trình Truyeàn Döõ Lieäu 4. Löu Ñoà Nhaän Döõ Lieäu II. Thieát Keá Vaø Thi Coâng Phaàn Giao Tieáp 1. Giôùi Thieäu Veà Vi Maïch Max 232 2. Sô Ñoà Maïch Keát Noái 3. Sô Ñoà Maïch In PHAÀN TOÅNG KEÁT Phuï Luïc Höôùng Phaùt Trieån Ñeà Taøi Keát Luaän Taøi Lieäu Tham Khaûo Muïc Luïc ._.

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

  • docDO12.DOC
Tài liệu liên quan