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
140 trang |
Chia sẻ: huyen82 | Lượt xem: 1679 | Lượt tải: 0
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
INTEA
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
INTEB
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
INTEB
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\
INTE1
INTE2
PC2,1,0
I/O
INTEA
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:
- DO12.DOC