Thiết kế thiết bị thực tập vi xử lý 8085 - 1

Tài liệu Thiết kế thiết bị thực tập vi xử lý 8085 - 1: ... Ebook Thiết kế thiết bị thực tập vi xử lý 8085 - 1

doc109 trang | Chia sẻ: huyen82 | Lượt xem: 1312 | Lượt tải: 0download
Tóm tắt tài liệu Thiết kế thiết bị thực tập vi xử lý 8085 - 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
PHAÀN A GIÔÙI THIEÄU TÖÏA ÑEÀ TAØI : THIEÁT KEÁ THIEÁT BÒ THÖÏC TAÄP VI XÖÛ LÍ 8085 Giaùo vieân höôùng daãn : NGUYEÃN VIEÄT HUØNG NGUYEÃN THANH BÌNH Sinh vieân thöïc hieän : NGUYEÃN THEÁ KYØ SÖÔNG Lôùp : 95KDD TP. HCM , 2/2000 Boä Giaùo Duïc Ñaøo Taïo Coäng Hoøa Xaõ Hoäi Chuû Nghóa Vieät Nam Ñaïi Hoïc Quoác Gia TP.HCM Ñoäc laäp – Töï do – Haïnh phuùc Tröôøng Ñaïi Hoïc Sö Phaïm Kyõ Thuaät Khoa Ñieän – Ñieän Töû Boä Moân Ñieän Tö û NHIEÄM VUÏ ÑOÀ AÙN TOÁT NGHIEÄP Hoï vaø teân : NGUYEÃN THEÁ KYØ SÖÔNG Khoaù : 1995 – 2000 Lôùp : 95KDD Ngaønh : Ñieän töû 1. Ñeà taøi : THIEÁT KEÁ THIEÁT BÒ THÖÏC TAÄP VI XÖÛ LÍ 8085 2. Phaàn thuyeát minh : Thieát keá chöông trình monitor 3. Baûn veõ , baûng bieåu : Caùc baûn veõ baûng bieåu caàn thieát . 4. Giaùo vieân höôùng daãn : Thaày NGUYEÃN VIEÄT HUØNG Thaày NGUYEÃN THANH BÌNH 5. Ngaøy nhaän ñeà taøi : 6. Ngaøy noäp ñeà taøi : 28/2/2000 Caùn boä höôùng daãn Thoâng qua boä moân Ngaøy thaùng naêm 2000 Chuû nhieâm boä moân NHAÄN XEÙT CUÛA GIAÙO VIEÂN HÖÔÙNG DAÃN NHAÄN XEÙT GIAÙO VIEÂN DUYEÄT LÔØI MÔÛ ÑAÀU Ngaøy nay, kyõ thuaät vi xöû lí ñaõ trôû neân quen thuoäc vôùi haàu heát moïi ngöôøi, ñöôïc öùng duïng roäng raõi trong nhieàu lónh vöïc, ñaëc bieät trong lónh vöïc ñieàu khieån töï ñoäng. Do ñoù nhu caàu nghieân cöùu ñeå söû duïng vi xöû lí laø heát söùc caàn thieát ñoái vôùi haàu heát caùc sinh vieân ngaønh ñieän töû . Ñeà taøi :” Thieát Keá Thieát Bò Thöïc Taäp Vi Xöû Lí” nhaèm giaûi quyeát phaàn naøo nhu caàu nghieân cöùu cuûa baûn thaân, cuõng nhö nhu caàu thöïc taäp, nghieân cöùu cuûa sinh vieân vaø nhöõng ai yeâu thích vi xöû lí. Thôøi gian, khaû naêng vaø coâng taùc in aán laø nhöõng yeáu toá chính gaây ra nhöõng sai soùt vaø khieám khuyeát trong ñoà aùn naøy. Toâi raát mong vaø ghi nhaän nhöõng ñoùng goùp cuûa quùi thaày coâ vaø caùc baïn sinh vieân. Thuû Ñöùc , 21/2/2000 Sinh vieân thöïc hieän NGUYEÃN THEÁ KYØ SÖÔNG LÔØI CAÛM TAÏ Sau baûy tuaàn laøm vieâc, taäp ñoà aùn ñaõ ñöôïc hoaøn taát, ñoù laø daáu hieäu cuoái cuøng ñeå baùo hieäu söï keát thuùc cuûa 5 naêm ñaïi hoïc. Toâi caûm ôn cha meï toâi raât nhieàu. Chaéc chaén, toâi seõ khoâng ñaït ñöôïc gì neáu khoâng coù söï hy sinh giaùo döôõng cuûa cha meï. Chính söï hy sinh ñoù ñaõ laø nguoàn ñoäng vieân vaø thuùc ñaåy toâi treân con ñöôøng hoïc taäp, nghieân cöùu. Toâi chaân thaønh caûm ôn thaày NGUYEÃN VIEÄT HUØNG vaø thaày NGUYEÃN THANH BÌNH, laø nhöõng ngöôøi ñaõ tröïc tieáp höôùng daãn toâi thöïc hieän ñeà taøi naøy . Toâi chaân thaønh caûm ôn caùc THAÀY COÂ khoa Ñieän vaø khoa sö phaïm ñaõ cung caáp nhöõng kieán thöùc quùy baùu trong suoát thôøi gian hoïc taäp. Toâi chaân thaønh caûm ôn caùc BAÏN ñaõ giuùp ñôõ toâi trong hoïc taäp cuõng nhö luùc laøm ñeà taøi. Thuû Ñöùc , 21/2/2000 Sinh vieân thöïc hieän NGUYEÃN THEÁ KYØ SÖÔNG MUÏC LUÏC Trang A – GIÔÙI THIEÄU I Trang töïa II Nhieäm vuï ñoà aùn III Nhaän xeùt cuûa giaùo vieân höôùng daãn IV Nhaän xeùt cuûa giaùo vieân duyeät V Lôøi môû ñaàu VI Lôøi caûm taï VII Lieär keâ caùc baûng VIII Lieät keâ caùc hình IX B – NOÄI DUNG Chöông 1 :DAÃN NHAÄP 1.1 Ñaët vaán ñeà 1 1.2 Taàm quan trong vaán ñeà 1 1.3 Giôùi haïn vaán ñeà 1 1.4 Muïc ñích nghieân cöùu 3 Chöông 2 :CÔ SÔÛ LYÙ LUAÄN 2.1 Daøn yù nghieân cöùu 4 2.2 Ñoái töôïng nghieân cöùu 4 2.3 Phöông phaùp vaø phöông tieän nghieân cöùu 4 2.4 Thôøi gian nghieân cöùu 4 Chöông 3 : GIÔÙI THIEÄU TOÅNG QUAÙT VEÀ THIEÁT BÒ THÖÏC TAÄP 5 Chöông 4 : XAÂY DÖÏNG CHÖÔNG TRÌNH MONITOR 4.1 Giôùi thieäu 6 4.2 Moät vaøi yeâu caàu ñoái vôùi chöông trình Monitor 6 4.3 Caáp phaùt vuøng nhôù 7 4.4 Xaây döïng chöông trình Monitor 7 Chöông 5 : THI COÂNG 64 Chöông 6 : HÖÔÙNG DAÃN SÖÛ DUÏNG THIEÁT BÒ 71 Chöông 7 : TOÙM TAÉT – KEÁT LUAÄN – ÑEÀ NGHÒ 7.1 Toùm taét ñeà taøi 75 7.2 Keát luaän 75 7.3 Moät vaøi ñeà nghò 76 C – TAØI LIEÄU THAM KHAÛO & PHUÏ LUÏC 77 LIEÄT KEÂ BAÛNG Trang Baûng 5.1 : BAÛNG TRA CÖÙU CHÖÔNG TRÌNH PHUÏC VUÏ MONITOR 70 LIEÄT KEÂ HÌNH Trang Hình 4.2 : LÖU ÑOÀ CHÖÔNG TRÌNH CHÍNH MNT 9-10 Hình 5.1 : LÖU ÑOÀ CAÙC BÖÔÙC THI COÂNG PHAÀN MEÀM 65-69 PHAÀN B NOÄI DUNG Chöông 1 : DAÃN NHAÄP CHÖÔNG 1 : DAÃN NHAÄP ÑAËT VAÁN ÑEÀ: Coâng ngheä ñieän töû vaø tin hoïc ngaøy nay phaùt trieån raát maïnh meõ. Ñaëc bieät, söï ra ñôøi cuûa caùc boä vi xöû lí, vi ñieàu khieån coù toác ñoä ngaøy caøng cao nhö: Vi xöû lí 4040 (4 bit) laø moät vi xöû lí thuoäc theá heä ñaàu tieân do Intel saûn xuaát. 8080 vaø 8085 cuûa Intel, Z80 cuûa Zilog, 6800 vaø 6809 cuûa Motorola. Ñaây laø caùc vi xöû lí 8 bit tieâu bieåu cho theá heä thöù hai. 8086/80186/80286 cuûa Intel, 68000/68010 cuûa Motorola. Ñaây laø caùc vi xöû lí 16 bit thuoäc theá heä thöù ba. Ngaøy nay coù caùc vi xöû lí coù toác ñoä raát cao nhö 80386/80486 (32 bit) vaø Pentium (64 bit) cuûa Intel… Caùc boä vi xöû lí, vi ñieàu khieån khoâng nhöõng ñöôïc öùng duïng roäng raõi trong heä ñieàu khieån cuûa caùc nhaø maùy, maø coøn ñöôïc söû duïng trong daân duïng nhö: Tivi, ñaàu maùy vaø caùc loaïi ñoà chôi… Tröôùc nhu caàu tìm hieåu veà vi xöû lí, cuûa chính baûn thaân vaø cuûa nhöõng ngöôøi yeâu thích vi xöû lí, nhoùm ñaõ baét tay vaøo thöïc hieän hieän ñeà taøi “Thieát keá thieát bò thöïc taäp vi xöû lí 8085” TAÀM QUAN TROÏNG CUÛA VAÁN ÑEÀ: Nhu caàu tìm hieåu veà vi xöû lí raát lôùn. Nhöng nhaø tröôøng vaãn chöa coù thieát bò thöïc taäp veà vi xöû lí coù theå ñaùp öùng ñaày ñuû nhöõng yeâu caàu thöïc taäp nghieân cöùu cuûa sinh vieân. Ñeà taøi “Thieát keá thieát bò thöïc taäp vi xöû lí 8085“ vôùi mong muoán thieát keá ñöôïc moät thieát bò thöïc taäp coù theå ñaùp öùng haàu heát caùc nhu caàu cuûa ngöôøi söû duïng. Ngoaøi ra cuõng laø taøi lieäu höõu ích cho nhöõng ai muoán thieát keá rieâng cho mình moät heä thoáng öu vieät hôn. GIÔÙI HAÏN VAÁN ÑEÀ: Caùc thieát bò thöïc taäp vi xöû lí do caùc haõng nöôùc ngoaøi cheá taïo cuõng raát ña daïng, tieän lôïi, nhöng chuùng coù chung nhöõng ñaëc ñieåm cô baûn cuûa moät boä vi xöû lí. Ñaây laø laàn ñaàu tieân tìm hieåu veà vi xöû lí trong ñieàu kieän: + ÔÛ tröôøng ñaïi hoïc, nhoùm thöïc hieän ñeà taøi chæ ñöôïc hoïc 15 tieát chuyeân ñeà vi xöû lí. + Thôøi gian thöïc hieän chính thöùc chæ coù 49 ngaøy. + Kinh nghieäm thöïc teá khoâng nhieàu. + Ñeà taøi ñöôïc chia laøm hai phaàn: phaàn cöùng vaø phaàn meàm, ñöôïc baùo caùo trong hai cuoán khaùc nhau. Phaàn baùo caùo naøy chæ trình baøy veà phaàn meàm. Vì vaäy ngöôøi thöïc hieän chæ thieát keá phaàn meàm coù nhöõng ñaëc ñieåm chính nhö sau: - 36 phím: goàm caùc phím soá vaø phím chöùc naêng. + Caùc phím soá töø 0 tôùi F + Caùc phím chöùc naêng goàm: ADD : Phím nhaän ñòa chæ boä nhôù. Caùc led hieån thò ñòa chæ vaø döõ lieäu taïi ñòa chæ ñoù. BREAK: Chaïy chöông trình töøng ñoaïn, caùc ñieåm döøng ñöôïc ñaët baèng phím set. (Khoâng coù trong phaïm vi ñeà taøi naøy) COPY : Cheùp ñoaïn döõ lieäu töø nôi naøy sang nôi khaùc trong vuøng ñòa chæ cuûa Ram, cho pheùp vuøng ñích vaø vuøng goác truøng nhau. CTRL, SHIFT : Phaàn cöùng 8279. DEL : Xoùa moät ñoaïn döõ lieäu hay moät oâ döõ lieäu. DOWN : Giaûm ñòa chæ hieän haønh. INS : Cho pheùp cheøn moät oâ döõ lieäu hay moät ñoïan döõ lieäu, coù söûa ñòa chæ. INTR : Ngaét cöùng. PAUSE : Döøng chöông trình ñang thöïc hieän (Khoâng coù trong phaïm vi ñeà taøi naøy) PC vaø GO: Duøng ñeå ñaët ñòa chæ vaø chaïy chöông trình taïi ñòa chæ ñoù. REG: Xem vaø naïp noäi dung thanh ghi. RESET : Reset laïi heä thoáng. (phaàn cöùng) SET : Ñaët ñieåm döøng. (Khoâng coù trong phaïm vi ñeà taøi naøy) SRCH : Tìm kieám döõ lieäu trong vuøng nhôù. STEP : Chaïy töøng leänh. UP : Taêng ñòa chæ hieän haønh vaø xaùc ñònh döõ lieäu vaøo ñòa chæ hieän haønh. USER1 vaø USER2 : Daønh cho ngöôøi söû duïng. MUÏC ÑÍCH NGHIEÂN CÖÙU: Qua vieäc thöïc hieän ñeà taøi “Thieát keá thieát bò thöïc taäp vi xöû lí 8085” laø moät caùch ñeå ngöôøi thöïc hieän ñeà taøi nghieân cöùu kó taäp leänh, caáu truùc cuûa vi xöû lí. Saûn phaåm coù theå öùng duïng trong giaûng daïy, thöïc taäp vaø thí nghieäm veà phaàn meàm cuõng nhö phaàn cöùng cuûa vi xöû lí. Chöông 2 : CÔ SÔÛ LYÙ LUAÄN Chöông 3 : GIÔÙI THIEÄU TOÅNG QUAÙT VEÀ THIEÁT BÒ CHÖÔNG 3 : GIÔÙI THIEÄU TOÅNG QUAÙT VEÀ THIEÁT BÒ THÖÏC TAÄP Thieát bò söû duïng vi xöû lí 8085 do Intel cheá taïo, coù voû hai haøng chaân goàm 40 chaân. Ñöôïc caém treân Socket 40 chaân. Toác ñoä ñöôïc quyeát ñònh baèng thaïch anh cung caáp xung clock cho vi xöû lí. Boä nhôù goàm : 2EPROM 8K 3 RAM 8K Trong 3 RAM treân coù moät socket coù theå caém caû EPROM. 3 RAM coù ñòa chæ töø 4000 ® 9FFFH. EPROM thöù nhaát duøng ñeå löu tröõ chöông trình Monitor ñieàu khieån toaøn boä hoaït ñoäng cuûa thieát bò, coù ñòa chæ töø 000H ® 1FFFH. EPROM thöù hai duøng ñeå löu tröõ nhöõng chöông trình tieän ích, nhöõng chöông trình naøy phuïc vuï baøi thí nghieäm, coù ñòa chæ töø 2000 ® 3FFFH. Caùc IC ngoaïi vi bao goàm : 8279 duøng ñeå queùt baøn phím vaø hieån thò, ñöôïc giaûi maõ theo ñòa chæ, coù ñòa chæ töø ñieàu khieån laø A001H vaø ñòa chæ töø döõ lieäu laø A00H. Goàm hai con 8255 vaøo ra song song coù maõ I/O töø 00H ® 07H vaø töø 08H ® 0FH. Goàm hai con 8253, trong ñoù moät con duøng ñeå taïo xung clock cho 8251 coù maõ I/O töø 10H ® 17H, con coøn laïi coù maõ töø 18H ® 1FH 8251 duøng ñeå giao tieáp noái tieáp coù maõ I/O töø 28 ® 2FH 8259 duøng ñeå ñieàu khieån ngaét öu tieân coù maõ I/O töø 20H ® 27H ADC 0809 coù maõ I/O töø 30H ® 37H DAC 0808 coù maõ I/O töø 38H ® 3FH Baøn phím goàm 36 phím, ngoaøi caùc phím soá, phím chöùc naêng, phím ngaét cöùng coøn coù phím Shift vaø phím Control duøng ñeå môû roäng baøn phím. Coù 8 led hieån thò, 4 led beân traùi duøng ñeå hieån thò ñòa chæ, caùc thoâng baùo. Boán led beân phaûi duøng ñeå hieån thò döõ lieäu, hieån thò soá khi aán caùc phím soá. Chöông 4 : XAÂY DÖÏNG CHÖÔNG TRÌNH MONITOR CHÖÔNG 4 : XAÂY DÖÏNG CHÖÔNG TRÌNH MONITOR 4.1 GIÔÙI THEÄU Trong baùo caùo veà phaàn cöùng, phaàn cöùng ñaõ ñöôïc ñeà caäp chi tieát. Trong phaàn naøy, chæ lieät keâ caùc IC chính cuûa heä thoáng : + Vi xöû lí : 8085A + Boä nhôù : hai ROM 2764, hai RAM 6264 vaø moät ñeá caém coù theå duøng RAM hoaëc ROM. + Giao tieáp 8255, 8251. + Ñònh thôøi 8253. + Queùt phím vaø hieån thò 8279 + Caùc boä chuyeån ñoåi ADC 0809, DAC… Caùc IC treân ñöôïc keát noái tröïc tieáp hoaëc giaùn tieáp qua caùc IC phuï (choát, ñeäm, giaûi maõ…) sao cho ñaûm baûo ñuùng yeâu caàu veà ñieän vaø chöùc naêng cuûa moãi thieát bò. Ñoái vôùi caùc heä thoáng vi xöû lí, ñeå heä thoáng hoaït ñoäng ñöôïc thì ñieàu kieän caàn laø phaûi coù moät phaàn cöùng ñuùng vaø ñieàu kieän ñuû laø phaûi coù moät phaàn meàm chính xaùc, phaàn cöùng vaø phaàn meàm chuùng coù moái quan heä höõu cô vôùi nhau, coù theå thay theá nhau ôû moät vaøi chöùc naêng naøo ñoù. vì vaäy tuøy theo phaàn cöùng cuï theå ta coù caùch laäp trình khaùc nhau. 4.2 MOÄT VAØI YEÂU CAÀU CHÍNH ÑOÁI VÔÙI CHÖÔNG TRÌNH MONITOR Xuaát phaùt töø vieäc giôùi haïn ñeà taøi ta ñaët ra nhöõng yeâu caàu cuï theå nhö sau: + Chöông trình phaûi thöïc hieän chöùc naêng cuûa caùc phím sao cho ngöôøi söû duïng coù theå naïp chöông trình vaø chaïy ñöôïc chöông trình ñoù. Caùc chöông trình con phuïc vuï cho chöông trình Monitor ñöôïc trình baøy theo qui öôùc: + Chöông trình con naøo xuaát hieän ñaàu tieân seõ ñöôïc trình baøy tröôùc. + Caùc nhaõn ñöôïc söû duïng cho ñòa chæ oâ nhôù. + Chæ trình baøy giaûi thuaät vaø caùc chöông trình quan troïng. + Chuù thích ñöôïc söû duïng khi caàn thieát. 4.3 CAÁP PHAÙT VUØNG NHÔÙ + ROM 1 : 8 Kbyte löu tröõ taát caû nhöõng chöông trình coù lieân quan ñeán chöông trình Monitor. + ROM 2 : löu tröõ chöông trình phuïc vuï caùc baøi thí nghieäm (sau naøy). + RAM : Daønh cho ngöôøi söû duïng vaø 1 Kbyte choùt cuûa vuøng nhôù ñeå duøng khôûi taïo ngaên xeáp vaø caùc oâ nhôù phuïc vuï chöông trình Monitor. Vuøng nhôù ngaên xeáp Hình 4.1 Baûn ñoà caáp phaùt vuøng nhôù ROM 1 Chöông trình Monitor 9BFF 0000H MNT-STACKPOITER phuïc vuï phím STEP 9000 1FFFH ROM 2 9DFF 9E00 AddSET 9E13 AddREG 9FD2 9FD9 AddSTEP 9FDA AddTT 9FF1 Caùc oâ maõ phím aán Vuøng chöông trình Monitor söû duïng 9 BFF 9FF2 9FF3 9FF6 Caùc oâ AddHT 9FFB AddSERWKY 9 FFF 9FFF 4.4 XAÂY DÖÏNG CHÖÔNG TRÌNH MONITOR Chöông trình Monitor laø chöông trình Monitor chính, leänh ñaàu tieân cuûa chöông trình naøy phaûi ñöôïc baét ñaàu taïi oâ nhôù coù ñòa chæ 000H. Khôûi taïo ngaên xeáp Ngaên xeáp laø moät taäp caùc oâ nhôù trong boä nhôù RAM. Caùc oâ nhôù naøy ñöôïc söû duïng ñeå löu tröõ caùc thoâng tin nhò phaân moät caùch taïm thôøi trong suoát quaù trình thi haønh moät chöông trình. Thoâng tin trao ñoåi vôùi ngaên xeáp coù tính LIFO (Last in first Out). Khôûi taïo ngaên xeáp laø moät hoaït ñoäng ñònh nghóa ñòa chæ ñaùy cuûa vuøng ngaên xeáp, phuï thuoäc vaøo ngöôøi laäp trình. Caên cöù vaøo baûn ñoà caáp phaùt vuøng nhôù RAM treân hình 4.1, coù theå khôûi taïo ngaên xeáp baét ñaàu taïi ñòa chæ 9CFFH. Khôûi taïo ngoaïi vi Khôûi taïo ngoaïi vi laø moät thuû tuïc qui ñònh caùch thöùc hoaït ñoäng cuûa töøng thieát bò ngoïai vi ñang ñöôïc söû duïng trong heä thoáng. Neáu khoâng ñöôïc khôûi taïo, caùc thanh ghi ñieàu khieån (Control Register) cuûa vaø thanh ghi döõ lieäu (Data Register) cuûa ngoaïi vi ñoù seõ ôû giaù trò ngaãu nhieân, nhöng thieát bò ngoaïi vi laïi hieåu caùc giaù trò naøy nhö laø caùc giaù trò khôûi taïo. Daãn ñeán thieát bò ngoaïi vi coù khaû naêng khoâng laøm vieäc hoaëc coù laøm vieäc nhöng khoâng ñuùng yeâu caàu. Ñeå oån ñònh caùch thöùc hoaït ñoäng cuûa ngoaïi vi, vaán ñeà khôûi taïo ngoaïi vi phaûi ñöôïc thöïc hieän. Nhö ñaõ ñeà caäp, phaàn cöùng cuûa thieát bò naøy ñöôïc thieát keá döï truø cho caû vieäc phaùt trieån ñeà taøi sau naøy. Hay noùi caùch khaùc, phaàn meàm trong phaïm ñeà taøi naøy vaãn chöa khai thaùc heát khaû naêng cuûa phaàn cöùng. Nhaèm naâng cao tính oån ñònh cuûa heä thoáng, ngoaïi vi naøo khoâng ñöôïc söû duïng cuõng seõ ñöôïc khôûi taïo, ôû moät caùch thöùc hoaït ñoäng cuï theå sau naøy ñeå traùnh tình traïng thaû noåi ngoaïi vi. Chuù yù nhöõng ngoaïi vi naøo khoâng thay ñoåi mode hoaït ñoäng thì khoâng caàn khôûi taïo laïi. Khôûi taïo ngaét Ngaét laø moät quaù trình thoâng tin baát ñoàng boä vôùi vi xöû lí, ñöôïc kích bôûi moät ngoaïi vi beân ngoaøi. Trong phaïm vi ñeà taøi naøy caùc vaán ñeà phaàn meàm chæ lieân quan tôùi ngaét Trap, vaø ngaét RST 6.5 coøn caùc chaân ngaét khaùc chöa söû duïng ñeán seõ bò che ñi. Khôûi taïo moät soá vuøng döõ lieäu Do tính chaát cuûa phaàn meàm, ñoøi hoûi moät soá vuøng döõ lieäu phaûi ñöôïc khôûi taïo moät giaù trò cuï theå naøo ñoù thì thieát bò môùi hoaït ñoäng khi môùi baät coâng taéc. Hình 4. 2 : Löu ñoà chöông trình chính MNT BEGIN *A Khôûi taïo ngaên xeáp Khôûi taïo ngoaïi vi Khôûi taïo ngaét Khôûi taïo vuøng döõ lieäu c b a CALL KYBRD PUSH PSW *B c PHIMSO UP DOWN ADD COPY CALL COPY POP PSW CALL ADD POP PSW CALL DOWN POP PSW POP PSW POP PSW CALL UP CALL PHIMSO b a Ñ *C Ñ *D Ñ *E Ñ *F Ñ *G DEL REG CALL REG POP PSW CALL DEL POP PSW Ñ *H Ñ *I SRCH POP PSW CALL SRCH Ñ *J STEP POP PSW CALL STEP Ñ *K INS POP PSW CALL INS Ñ *L POP PSW CALL PC PC Ñ *M ORG 0000H JMP START ORG 0080 ; Khôûi taïo ngaên xeáp START: LXI SP, 9CFFH ; Khôûi taïo 8279 MVI A, 3EH ; laäp trình xung clock STA Addct79 ; baèng 100 KHz MVI A, 10H ; Hieån thò 8 kí töï, ghi phaûi STA AddCT79 ; Baøn phím queùt coù laäp maõ khoùa ngoaøi hai ; phím MVI A, C3H ; xoùa FIFO vaø xoùa hieån thò STA AddCT79 MVI A, 40H ; Ñoïc FIFO, khoâng töï taêng, haøng ñaàu tieân STA AddCT79 MVI A, 90H ; Ghi vaøo RAM hieån thò, töï taêng STA AddCT79 ; Baét ñaàu taïi Led saùt leà phaûi ; Khôûi taïo ngoaïi vi 8255 MVI A, 8BH ; Mode 0, I/0 ñôn giaûn OUT 03H OUT 0BH ; Khôûi taïo ngoaïi vi 8253 MVI A, 35H ; Boä ñeám 0 mode 2, göûi 2 byte OUT 13H ; ñeám BCD MVI A, B5H ; Boä ñeám 2 mode 2, 2 byte, OUT 13H ; BCD MVI A, 75H ; Boä ñeám 1; Mode 2; göûi 2 byte OUT 13H ; ñeám BCD ; Khôûi taïo 8253 taïo xung 300 Hz caáp cho TXC vaø RXC cuûa 8251 MVI A, 99H ; Boä ñeám 0 chia 10000 OUT 10H MVI A, 99H OUT 10H MVI A, 99 ; Boä ñeám 1 chia 10000 OUT 11H MVI A, 99H OUT 11H MVI A, 99H ; Taïo xung 5Hz ñöa ra OUT 12H ; söû duïng ; Khôûi taïo ngoaïi vi 8251 MVI A, 5DH ; Baát ñoàng boä, heä soá nhaân toác ñoä baèng 1, cho OUT 23H ; pheùp duøng parity, khoâng kieåm tra parity ; chaün, kí töï daøi 18 bit, 1 bit stop MVI A, 10H ; Caám phaùt, caám nhaän, reset taát caû caùc côø loãi, OUT 23H ; ngaên chaën reset mode beân trong, ; Khôûi taïo 8259 MVI A, 12H ; taùc ñoäng söôøn döông, khoaûng caùch OUT 20H ; caùc vectô ngaét 8 byte, coù 1 maïch ; PIC, boû ICW4 MVI A, 40 H ; choïn kieåu ngaét 40h ñeán OUT 27H ; 47H MVI A, 00H ; Ñaàu vaøo IRi khoâng noái OUT 27H ; maïch thôï ; Khôûi taïo ngaét MVI A, E5H ; Che RST 7.5, RST 5.5 khoâng SIM ; che RST 5.5 ; Khôûi taïo moät soá oâ nhô ù MVI A,10H STA AddST 14 STA AddTT CALL HELLO MVI A, 00H *A : PUSH PSW STA Addqp+0 *B : CALL KYBRD STA Addqp+1 CPI 10H STA Addqp+2 JM *C STA Addqp+3 CPI ‘UP’ STA AddHT+4 JZ *D STA AddHT+5 CPI ‘DOWN’ STA AddHT+6 JZ *E STA AddHT+7 CPI ‘ADD’ *G : CALL COPY JZ *F POP PSW CPI COPY JMP *A JZ *G *H : CALL DEL CPI ‘DEL’ POP PSW JZ *H JMP *A CPI ‘REG’ *I : POP PSW JZ *I CALL REG CPI ‘SRCH’ JMP *A JZ *J *J : CALL SRCH CPI ‘STEP’ POP PSW JZ *K JMP *A CPI ‘INS’ *K : CALL STEP JZ *L POP PSW CPI ‘’PC’ JMP *A JZ *M *L : CALL INS JMP *B POP PSW *C : CALL PHIMSO JMP *A POP PSW *M : CALL PC JMP *A POP PSW *D : CALL UP JMP *A POP PSW JMP *A *E : CALL DOWN POP PSW JMP *A *F : CALL ADD POP PSW JMP *A KYBRD · KYBRD : Laø chöông trình con coù nhieäm vuï laáy maõ cuûa phím aán. · Input: Chôø phím aán · Output: Chöông trình seõ duøng laïi cho ñeán khi naøo coù moät phím ñöôïc goõ, khi ñoù (A) = Maõ phím Ngoaøi A khoâng thanh ghi naøo bò ñieàu chænh Coù goïi KYCODE KYBRD PUSH B PUSH D PUSH H *1: CALL KYCODE (A) = FFH Ñ S POP H POP D POP B RET KYRBD PUSH B PUSH D PUSH H *1:CALL KYCODE CPI FFH JZ *1 POP H POP D POP B RET KYCODE · KYCODE : Ñaây laø chöông trình con .Noù coù taùc vuï laáy maõ cuûa phím aán töø FIFO cuûa 8279 ñaët vaøo thanh ghi A · Input: Goõõ phím · Output: Neáu khoâng goõ phím : (A) = FFH Neáu coù phím ñöôïc goõ : (A) = Maõ phím Caùc thanh ghi bò ñieàu chænh : A,B Goïi DELAY 0.1 (Xem phuï luïc) KYCODE LDA AddSTATUS A (A) AND (OFH ) Z=1 S A (01H) *1 CALL DELAY 0.1 A FFH LDA AddDT79 B (A) A (C2H) STA AddCT79 A (B) RET KYCODE LDA AddSTATUS ANI OFH MVI A,C2H JZ *1 STA AddCT79 MVI A,01H MOV A,B CALL DELAY 0.1 RET LDA AddDT79 *1 : MVI A,FFH MOV B,A RET PHIM SO · PHIM SO: Ñaây laø moät chöông trình con coù taùc vuï hieån thò phím aán vaø löu tröõ maõ phím aán. · Input : Maõ phím aán · Output : Hieån thò phím aán vaø löu tröõ phím aán Khoâng thanh ghi naøo bò ñieàu chænh. AddTT = OOH PHIM SO AddTT =OOH Naïp OOH vaøo Ram hieån thò cuûa 8279 vaø vuøng AddHT CALL CODE 1 PUSH PSW Dòch döõ lieäu vaø naïp maõ phím môùi aán vaøo vuøng Addqp Dòch maõ hieån thò trong ram hieån thò cuûa 8279 vaø trong vuøng AddHT Xuaát kha S *2 *1 1 1 POP PSW Naïp maõ hieån thò cuûa phím môùi aán vaøo AddHT vaø vaøo Ram hieån thò cuûa 8279 AddTT (OOH) RET Hình 4.3 laø löu ñoà chöông trình phím soá Addqp : laø 4 oâ nhôù löu giöõ maõ phím cuûa 4 laàn aán phím soá sau cuøng. AddHT: 4 oâ nhôù löu giöõ maõ 7 ñoaïn töông öùng vôùi 4 maõ phím sau cuøng AddTT : cho bieát phím sau cuøng laø phím chöùc naêng hay phím soá CODE : laø chöông trình con ñoåi caùc maõ Hexa töø OOH OFH sang moät kí töï maõ 7 ñoaïn ( xem phuï luïc ) AddTT Addqp+0 AdHT+4 Addqp+1 AdHT+5 Addqp+2 AdHT+6 Addqp+3 AdHT+7 Maõ phím môùi aán Maõ 7 ñoaïn cuûa phím môùi aán UP · UP: Chöông trình con coù taùc vuï taêng ñòa chæ hieän haønh vaø naïp döõ lieäu hieån thò vaøo ñòa chæ hieän haønh ñoù. · Input: Thanh ghi HL · Output: Hieån thò döõ lieäu vaø ñòa chæ cuûa oâ döõ lieäu ñoù chöùa trong HL Caùc thanh ghi coøn laïi khoâng bò ñieàu chænh. AddTT =01H AddTT : ñòa chæ oâ nhôù chöùa cô traïng thaùi AddTT =00H: phím aán sau cuøng laø phím soá AddTT ¹00H: phím aán sau cuøng laø phím chöùc naêng UP AddTT =00H PUSH PSW S Ñ *2 *2: CALL 0RMP M (A) *1: HL (HL) +1 CALL DPHLM AddTT (01H) POP PSW RET Hình 4.4 Löu ñoà chöông trình phím UP ORMP: laø chöông trình con hôïp hai oâ queùt phím (xem phuï luïc) DPHLM: laø chöông trình con coù taùc vuï hieån thò ñòa chæ vaø döõ lieäu trong oâ nhôù coù ñòa chæ trong HL (xem phuï luïc). UP PUSH PSW CPI OOH JZ *2 JMP *1 *2: CALL ORMP MOV M , A *1: INX H CALL DPHLM MVI A, 0 1 H STA AdTT POP PSW RET DOWN · DOWN : Laø chöông trình con coù taùc vuï giaûm ñòa chæ hieän haønh xuoáng 1 ñôn vò · Input : Thanh ghi HL · Output : Hieån thò ñòa chæ vaø döõ lieäu AddTT = 01H DOWN PUSH PSW HL (HL) – 1 CALL DPHLM AddTT (01H) POP PSW RET DOWN PUSH PSW DCX H CALL DPHLM MVI A,01H STA AddTT POP PSW RET · DPHLM (Xem phuï luïc) ADD · ADD : Laø chöông trình con coù taùc vuï nhaän ñòa chæ môùi , hieån thò ñòa chæ vaø döõ lieäu môùi ñoù. · Input : Laáy döõ lieäu trong 4 oâ queùt phím · Output : Hieän thò ñòa chæ vaø döõ lieäu AddTT = 01H Khoâng ñieàu chænh caùc thanh ghi ADD PUSH PSW PUSH D CALL DEQP HL DE CALL DPHLM AddTT (01H) POP D POP PSW RET ADD PUSH PSW PUSH D CALL DEQP XCHG CALL DPHLM MVI A,01H STA AddTT POP D POP PSW RET · DPHLM ( xem phuï luïc ) COPY · COPY : Laø chöông trình con coù taùc vuï copy döõ lieäu töø vuøng naøy sang vuøng khaùc · Input : Naïp ñòa chæ ñaàu, ñòa chæ cuoái cuûa vuøng goác vaø ñòa chæ ñaàu cuûa vuøng ñích · Output : Copy , hieån thò ñòa chæ vaø döõ lieäu Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi COPY PUSH PSW PUSH B PUSH D PUSH H Addtt (01H) CALL XADD A (83H) AddCT79 (A) A (06H) AddDT79 (A) CALL DAUCHAM *1: CALL KYBRD ADD PHIMSO S S Ñ *2 Ñ (ADDTT)=01H Ñ *16 : CALL PHIMSO S a x *3 : CALL DEQP HL DE Addtt (01H) CALL XADD a A (83 H) AddCT79 (A) A (5 B H) AddDT79 (A) CALL DAUCHAM *4: CALL KYBRD ADD PHIMSO S S Ñ *5 Ñ (ADDTT)=01H Ñ *17 : CALL PHIMSO S *6 : CALL DEQP BC DE BC (BC)+1 CALL SUBBCHL AddTT (01H) CALL XADD A (83H) AddCT79 (A) A (4FH) AddDT79 (A) CALL DAUCHAM a 1 1 a * 7 : CALL KYBRD ADD PHIMSO S S Ñ *8 Ñ (AddTT)=01H Ñ *18 : CALL PHIMSO S *9 : CALL ORQP A (Addcopy+1) Addcopy+3 (A) + (E) A (Addcopy+0) Addcopy+2 (A) + (D) + Cy D > H HIMSO D = H S *20 Ñ *10 E = L E > L S S *11 Ñ a Ñ 2 b a1 b a 2 D > B D = B S S *12 Ñ *8 Ñ E > C E = C S S Ñ Ñ * 14: CALL COPY C.0 * 13: CALL COPY C.1 *15: POP H CALL DPHLM AddTT (01H) POP D POP B POP PSW RET COPY PUSH PSW JZ *5 PUSH B JMP *4 PUSH D *5 : LDA AddTT PUSH H CPI 01H MVI A, 01H JZ *15 STA AddTT *6 : CALL DEMP CALL XADD MOV B, D MVI A, 83H MOV C,E STA AddCT79 CALL SUBBCHL MVI A,06H MVI 01H STA AddDT79 STA AddTT CALL DAUCHAM CALL XADD *1 : CALL KYBRD MVI A, 83H CPI 10H STA AddCT79 JM *16 MVI A, 4 F H CPI ‘ADD’ STA AddDT79 JZ *2 CALL DAUCHAM JMP *1 *7 : CALL KYBRD *2 : LDA AddTT CPI 10H CPI 01H JM *18 JZ *15 CPI ‘ADD’ *3 : CALL DEMP JZ *8 MOV H, D JMP *7 MOV L, E *8 : LDA AddTT MVI A,01H CPI 01H STA AddTT JZ *15 CALL XADD *9 : CALL DEMP MVI A, 83H LDA Addcopy+1 STA AddCT79 ADD E MVI A, 5BH STA Addcopy+3 STA AddDT79 LDA Addcopy+0 CALL DAUCHAM ADC D *4 : CALL KYBRD STA Addcopy+2 CPI 10H MOV A,D JM *17 CMP H CPI ‘ADD’ JZ *10 JP *11 *13 : CALL COPY C.1 JMP *14 JMP *15 *10 : MOV A,E *14 : CALL COPY C.0 CMP L *15 : POP H JZ *15 CALL DPHLM JP *11 MVI A, 01H JMP *14 STA AddTT *11 MOV A,D POP D CMP B POP B JZ *12 POP PSW JP *14 RET JMP *13 *16 : CALL PHIMSO *12 MOV A,E JMP *1 CMP C *17 : CALL PHIMSO JZ *13 JMP *4 JP *14 *18 : CALL PHIMSO JMP *13 JMP *7 Vuøng nhôù Addcopy duøng ñeå löu tröõ keát quaû cuûa caùc pheùp coäng tröø caëp thanh ghi phuïc vuï cho caùc chöông trình con SUBBCHL vaø COPY C.1 vuøng nhôù Addcopy naèm trong vuøng nhôù AddREC. (C) – (L) Addcopy+0 : 9FD2H (B) – (H) – Cy Addcopy+1 : 9FD3H (A) + (E) Addcopy+2 : 9FD4H A (B) – (H) - Cy (A) + (D) + Cy Addcopy+3 : 9FD5 A (C) – (L) Caùc chöông trình con ñöôïc goïi : SUBBCHL SUBBCHL: Laø chöông trình con coù taùc vuï tröø noäi dung thanh ghi BC cho noäi dung trong HL. · Input : Naïp soá bò tröø vaøo BC Naïp soá tröø vaøo HL · Output : Hieäu soá ñöôïc naïp vaøo 2 oâ nhôù Addcopy+0 vaø Addcopy+1 khoâng laøm thay ñoåi noäi dung caùc thanh ghi. SUBBCHL PUSH PSW A (C) A (A) – (L) AddCOPY + 1 (A) A (B) A (A) – (H) – Cy AddCOPY + 0 (A) POP PSW RET SUBBCHL PUSH PSW MOV A,C SUB L STA AddCOPY + 1 MOV A,B SBB H STA AddCOPY + 0 POP PSW RET ÑÍCH DE · COPY C.O : Ñaây laø chöông trình con sao cheùp döõ lieäu töø vuøng naøy qua vuøng khaùc. Hai vuøng goác vaø ñích khoâng giao nhau hoaëc giao nhau nhö hình veõ GOÁC HL BC · Input : Naïp ñòa chæ ñaàu cuûa vuøng goác vaøo HL Naïp ñòa chæ cuoái cuûa vuøng goác vaøo BC Naïp ñòa chæ ñaàu cuûa vuøng ñích vaøo DE · Output : Khoâng laøm thay ñoåi noäi dung caùc thanh ghi. COPY C.0 PUSH PSW PUSH B PUSH D PUSH H BC (BC) + 1 *1 : A M STAX D HL (HL) + 1 DE (DE) + 1 H = B S L = C Ñ S Ñ *3 : POP H POP D POP B POP PSW RET COPY C.0 · Input : Naïp soá bò tröø vaøo BC Naïp soá tröø vaøo HL · Output : Hieäu soá ñöôïc naïp vaøo 2 oâ nhôù Addcopy+0 vaø Addcopy+1 khoâng laøm thay ñoåi noäi dung caùc thanh ghi. COPY C.0 PUSH PSW PUSH B PUSH D PUSH H BC (BC) + 1 *1 : A M STAX D HL (HL) + 1 DE (DE) + 1 H = B S L = C Ñ S Ñ *3 : POP H POP D POP B POP PSW RET COPY C.0 PUSH PSW JZ *2 PUSH B JMP *1 PUSH D *2: MOV A, C PUSH H CMP L INX B JZ *3 *1 : MOV A, M JMP *1 STAX D *3 : POP H INX H POP D INX D POP B MOV A, B POP PSW CMP H RET COPY C.1 · COPY C.1 Ñaây laø chöông trình con cheùp ñoaïn döõ lieäu truøng nhau nhö hình veõ. HL GOÁC DE ÑÍCH BC bc Input : Naïp ñòa chæ ñaàu cuûa vuøng goác vaøo HL Naïp ñòa chæ cuoái cuûa vuøng vaøo BC Thanh ghi D laáy döõ lieäu töø Addcopy+2 Thanh ghi E laáy döõ lieäu töø Addcopy+3 Output : Khoâng thay ñoåi noäi dung caùc thanh ghi. COPY C.1 PUSH PSW PUSH B PUSH D PUSH H DE HL HL BC BC DE BC (BC) – 1 D (Addcopy + 2) E (Addcopy + 3) *1 : A M STAX D HL (HL) - 1 DE (DE) - 1 H = B S Ñ *2 L = C S Ñ *3 *3 : POP H POP D POP B POP PSW RET PUSH PSW DCX D PUSH B MOV A, B PUSH D CMP H PUSH H JZ *2 XCHG JMP *1 MOV H,B *2: MOV A, C MOV L,C CMP L MOV B,D JZ *3 MOV C,E JMP *1 LDA Addcopy + 2 *3 : POP H MOV D,A POP D LDA Addcopy + 3 POP B MOV E,A POP PSW DCX B RET *1 : MOV A, M STAX D DCX H · Caùc chöông trình con sau ñaây xem phuï luïc + DAUCHAM + DEMP + XADD DEL · DEL : Laø chöông trình con deã xoaù ( naïp 00H ) moät vuøng döõ lieäu · Input : Naïp ñòa chæ ñaàu cuûa vuøng caàn xoaù Naïp ñòa chæ cuoái cuûa vuøng caàn xoaù · Output : Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi DEL PUSH PSW PUSH B PUSH D PUSH H Addtt (01H) CALL XADD A (83H) AddCT79 (A) A (06H) AddDT79 (A) CALL DAUCHAM *1: CALL KYBRD ADD PHIMSO S S Ñ *2 Ñ (ADDTT)=01H Ñ *8 : CALL PHIMSO S CALL DEMP HL DE Addtt (01H) CALL XADD A (83H) AddCT79 (A) A (5BH) AddDT79 (A) CALL DAUCHAM a 1 1 a * 3 : CALL KYBRD ADD PHIMSO S S Ñ *4 Ñ (AddTT)=01H Ñ *10 : CALL PHIMSO S CALL DEMP BC DE BC (BC)+1 *5 : M (00H) HL (HL)+1 H = B *6 L = C *7 * 7 : POP H CALL DPHLM AddTT (01H) POP D POP B POP PSW RET DEL PUSH PSW STA AddDT79 PUSH B CALL DAUCHAM PUSH D *3 : CALL KYBRD PUSH H CPI 10H MVI A, 01H JM *10 STA AddTT CPI ‘ADD’ CALL XADD JZ *4 MVI A, 83H JMP *3 STA AddCT79 *4 : LDA AddTT MVI A, 06H CPI 01H STA AddDT79 JZ *7 CALL DAUCHAM CALL DEMP *1 : CALL KYBRD MOV B, D CPI 10H MOV C, E JM *8 INX B CPI ‘ADD’ *5 : MOV M, 00H JZ *2 INX H JMP *1 MOV A, H *2 : LDA AddTT CMP B CPI 01H JZ *6 IZ *7 JMP *5 CALL DEMP *6 : MOV A, L MOV H, D CMP C MOV L, E JZ *7 MVI A, 01H JMP *5 STA AddTT *7 : POP H CALL XADD CALL DPHLM MVI A, 83H MVI A, 01H STA AddCT79 STA AddTT MVI A, 5B POP D POP B JMP *1 POP PSW *9 : CALL PHIMSO RET JMP *3 *8 : CALL PHIMSO Caùc chöông trình con ñöôïc goïi : DAUCHAM ( xem phuï luïc ) XADD ( xem phuï luïc ) DEMP (xem phuï luïc ) KYBRD ( xem chöông 4 ) REG REG : Ñaây laø chöông trình con coù chöùc naêng hieån thò noäi dung vaø naïp noäi dung caùc thanh ghi. Input : Noäi dung caùc thanh ghi. Output : Hieån thò noäi dung caùc thanh ghi. AddTT = 01H XEM GIAÛI THUAÄT REG CUOÁI CHÖÔNG 4 REG PUSH F STA AddREG+4 STA AddREG+0 MOV A, E MOV A, H STA AddREG+5 STA AddREG+6 *1 : MVI A, 01H MOV A, L STA AddTT STA AddREG+7 LXI H, AddREG+0 POP H MVI B, 77 MOV A, L CALL KYTUB STA AddREG+1 CALL DPM MOV A, B *2 : CALL KYBRD STA AdDREG+2 CPI 10H MOV A, C JM *18 STA AddREG+3 CPI ‘UP’ MOV A, D JZ *3 CPI “DOWN” JMP *16 JZ *17 *9 : MVI B, 71 H CPI “REG” CALL KYTUB JZ *19 JMP *16 *3 : LDA AddTT *10 : MVI B, 7 C H CPI 00H CALL KYTUB JZ *4 JMP *16 JMP *5 *11 : MVI B, 39 H *4 : CALL ORQP CALL KYTUB MOV M, A JMP *16 *5 : INX H *12 : MVI B, 5 E H *6 : MOV A, H CALL KYTUB CPI 9 F H JMP *16 JZ *7 *13 : MVI B, 79 H JMP *1 CALL KYTUB *7 : MOV A, L JMP *16 CPI D 2 H *14 : MVI B, 76 H JZ *8 CALL KYTUB CPI D3 JMP *16 JZ *9 *15 : MVI B, 38 H CPI D 4 CALL KYTUB JZ *10 JMP *16 CPI D 5 *16 : CALL DPM JZ *11 MVI A, 01 H CPI D 6 STA AddTT JZ *12 JMP *2 CPI D 7 *17 : DCX H JZ *13 JMP *6 CPI D 8 *18 : CALL PHIMSO JZ *14 JMP *2 CPI D 9 * 19 : LXI H, AddREG+0 JZ *15 MOV B, M; laáy AF JMP._.

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

  • docDO42.DOC
  • docREG.DOC
  • docSTEP.DOC
  • docSTEP1.DOC
  • docSTEP2.DOC
  • docSTEP3.DOC