Tài liệu Luận văn Thiết bị thực tập vi xử lí 8085
109 trang |
Chia sẻ: haohao | Lượt xem: 1074 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Thiết bị thực tập vi xử lí 8085, để tải tài liệu gốc về máy 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 > HHIMSO
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 *1 INX H; thoâng qua
*8 : MVI B, 77 H MOV C, M; ngaên xeáp
CALL KYTUB PUSH B; vaø BC
INX H MOV E, M
MOV B, M XCHG
INX H POP D
MOV D, M CALL DPHLM
INX H MVI A, 01 H
MOV E, M STA AddTT
PUSH D POP PSW; laáy AF
INX H ; laáy HL thoâng qua BC
MOV D, M;thoâng vaø ngaên xeáp
INX H; qua DE RET
DPM : Chöông trình con hieån thò noäi dung oâ nhôù coù ñòa chæ trong HL ( xem phuï luïc ).
PHIMSO : Hieån thò ñòa chæ vaø döõ lieäu ( xem phuï luïc ).
KYBRD : Chöông trình con queùt phím.
KYTUB : Hieån thò kí töï vaø daáu baèng ( xem phuï luïc )
ORMP : Hôïp hai oâ queùt phím ( xem phuï luïc )
Vuøng nhôù AddREG duøng ñeå löu noäi dung cuûa caùc thanh ghi.
AddREG+0 : 9 F D 2H
A
AddREG+1 : 9 F D 3H
F
AddREG+2 : 9 F D 4H
B
AddREG+3 : 9 F D 5H
C
AddREG+4 : 9 F D 6H
D
AddREG+5 : 9 F D 7H
E
AddREG+6 : 9 F D 8H
H
AddREG+7 : 9 F D 9H
L
SRCH
· SRCH : Laø chöông trình con coù taùc vuï tìm kieám döõ lieäu trong boä nhôù.
· Input : Naïp döõ lieäu caàn tìm.
Naïp ñòa chæ cuoái cuûa vuøng caàn xoaù
· Output : Hieån thò ñòa chæ vaø döõ lieäu vöøa tìm ñöôïc. Thay ñoåi noäi dung laëp thanh ghi HL.
AddTT = 03H
SRCH
PUSH PSW
AddTT = 03H
*7
S
AddTT (01H ) HL (HL) +1
CALL DPFIND A (AddSRCH)
*1: CALL KYBRD
PHIMSO
UP
S S Ñ Ñ *2
(AddTT)=00H
S
*6 : CALL PHIMSO
*3 Ñ CALL DPHLM
POP PSW
*3 : CALL ORMP
RET
AddSRCH (A)
*4 : CPI M
Z = 1
HL (HL) + 1
S
Ñ
*5 : AddTT 03H
CALL DPHLM
POP PSW
RET
SRCH
PUSH PSW CALL ORMP
LDA AddTT STA AddSRCH
CPI 03H *4 : CMP M
JZ *7 JZ *5
MVI A, 01H INX H
STA AddTT JMP *4
CALL DPFIND *5 : MVI A, 03H
*1 : CALL KYBRD STA AddTT
CPI 10H CALL DPHLM
JM *6 POP PSW
CPI ‘UP’ RET
JZ *2 *6 : CALL PHIMSO
JMP *1 JMP *1
*2 : LDA AddTT *7 : INX H
CPI 00H LDA AddSRCH
JZ *3 JMP *4
CALL DPHLM
POP PSW
RET
* Caùc chöông trình ñöôïc goïi :
DPFIND ( xem phuï luïc )
DPHLM ( xem phuï luïc )
KYBRD ( xem chöông 4 )
ORMP ( xem phuï luïc )
PHIMSO ( xem chöông 4 )
STEP
STEP : Ñaây laø moät chöông trình cho pheùp chaïy töøng leänh cuûa chöông trình ngöôøi söû duïng.
Input : Nhaän ñòa chæ hieän haønh vaøo HL.
Output : Chæ thay ñoåi thanh ghi HL.
Caùc chöông trình con ñöôïc goïi :
LMB : Chöông trình nhaän bieát ñöôïc leänh saép thöïc hieän maáy byte.
DPHLM : Hieån thò ñòa chæ vaøo döõ lieäu taïi ñòa chæ ñoù.
Chöông trình söû duïng caùc vuøng nhôù sau :
9 D 00H
Vuøng nhôù
vaøo sau
ra tröôùc
9 D FFH
( ngaên xeáp giaû )
AddST0 9FDAH
AddST1 9FDBH
Naïp leänh caàn chaïy
AddST2 9FDCH
AddST3 9FDDH
AddST4 9FDEH
Naïp leänh nhaûy
AddST5 9FDFH
AddST6 9FE0H
AddST7 9FE1H
AddST8 9FE2H
Naïp noäi dung caùc
AddST9 9FE3H
thanh ghi
AddSTA 9FE4H
AddSTB 9FE5H
Naïp noäi dung caùc
AddSTC 9FE6H
thanh ghi
AddSTD 9FE7H
AddSTE 9FE8H
AddSTF 9FE9H
AddST10 9FEAH
AddST11 9FEBH
AddST12 9FECH
Khi chaïy caùc caùc leänh
AddST13 9FEDH
nhaûy, leänh goïi vaø leänh
AddST14 9FEEH
trôû veà
AddST15 9FEFH
AddST16 9FF0H
AddST7 9FF1H
XEM GIAÛI THUAÄT STEP CUOÁI CHÖÔNG 4
STEP
PUSH B JZ *ST2
MOV A,M CPI 31H
STA AddSTO JZ *ST2
MVI A,OOH CPI 33H
STA AddST17 JZ *ST13
CALL LMB CPI 20H
MOV A,C JZ *ST3
CPI 3OH CPI 10H
JZ *ST1 JZ *ST5
CPI 32H CPI 11H
JZ *ST6
*ST1: INX H CPI A0H
MOV A,M JZ *ST22
STA AddST10 JMP *ST20
INX H *ST22 : STA AddST2
MOV A,M SHLD AddSTE
STA AddST11 MVI A,C3H
MVI A,_ STA AddCT79
STA AddST1 MVI A,01H
MVI A,_ CALL DELAY 0.1
STA AddST2 MVI A,C3H
SHLD AddST12 STA AddST3
MVI A,C3 MVI A,_
STA AddST3 STA AddST4
MVI A,_ MVI A,_
STA AddST4 STA AddST5
MVI A,_ LDA AddST8
STA AddST5 MOV B,A
JMP *ST21 LDA AddST9
*ST2 : MOV A,M MOV C,A
CPI 32H LHLD AddST6
JZ *ST10 PUSH H
INX H POP PSW
*ST4 : MOV A,M LHLD AddSTA
STA AddST1 XCHG
INX H LHLD AddSTC
*ST20 : MOV A,M JMP AddSTO
STA AddST2 *ST12 : SHLD AddSTC
JMP *ST7 PUSH PSW
*ST10 : INX H POP H
MOV A,M SHLD AddST6
CPI 00H MOV A,B
JZ *ST11 STA AddST8
JMP *ST4 MOV A,C
*ST11: STA AddST1 STA AddST9
INX H XCHG
MOV A,M SHLD AddSTA
LHLD AddSTE MOV H,B
INX H MOV L,C
MVI A,01H INX H
STA AddTT JMP *ST9
POP B *ST7 : SHLD AddSTE
RET MVI A,C3H
*ST3 : INX H STA AddST3
MOV A,M MVI A,_
STA AddST1 STA AddST4
MVI A,00H MVI A,_
STA AddST2 STA AddST5
JMP *ST7 *ST21: LDA AddST8
*ST5 : MVI A,00H MOV B,A
STA AddST1 LDA AddST9
STA AddST2 MOV C,A
JMP *ST7 LHLD AddST6
*ST6 : SHLD AddST15 PUSH H
MVI A,00H POP PSW
STA AddST1 LHLD AddSTA
STA AddST2 XCHG
MVI A,C3H LHLD AddSTC
STA AddST+3 JMP AddSTO
MVI A,_ *ST8 : SHLD AddSTC
STA AddST+4 PUSH PSW
MVI A,_ POP H
STA AddST+5 SHLD AddST6
CALL *ST19 MOV A,B
LDA AddST14 STA AddST8
MOV L,A MOV A,C
MVI H,9DH STA AddST9
MOV B,M XCHG
INX H SHLD AddSTA
MOV C,M LHLD AddSTE
DCRA INX H
DCRA *ST9 : CALL DPHLM
STA AddST14 MVI A,01H
STA AddTT INR A
POP B INR A
RET STA AddST14
LHLD AddST12
*ST13 : INX H MOV B,H
MOV A,M MOV C,L
STA AddST10 MOV L,A
INX H MVI H,9DH
MOV A,M MOV M,B
STA AddST11 INX H
MVI A,_ MOV M,C
STA AddST1 MVI A,01H
MVI A,_ STA AddST17
STA AddST2 LHLD AddST10
SHLD AddST12 RET
MVI A,C3
STA AddST3 *17 : LDA AddST17
MVI A,_ CMP 00H
STA AddST4 JZ *ST15
MVI A,_ JMP *ST9
STA AddST5 *18 : LHLD AddST15
JMP *ST21 INX H
*ST14 : LHLD AddST10 JMP *ST9
JMP *ST9
*ST15 : LHLD AddST12 *19 : JMP *ST21
INX H
JMP *ST9
*ST16 : LDA AddST14
LMB
LMB : Ñaây laø moät chöông trình con coù nhieäm vuï nhaän bieát leänh maáy byte.
Input : HL laø ñòa chæ chöùa leänh ñoù
Output : C = 32H : Khi leänh ñoù thuoäc nhoùm leänh naïp töùc thôøi caëp thanh ghi ( 3 byte )
C = 31H : Khi leänh ñoù thuoäc nhoùm leänh löu tröõ tröïc tieáp ( 3 byte )
C = 30H : Khi leänh ñoù thuoäc nhoùm leänh goïi chöông trình con ( 3 byte )
C = 33H : Khi leänh ñoù thuoäc nhoùm leänh nhaûy ( 3 byte )
C = 20H : Khi leänh ñoù thuoäc nhoùm leänh 2 byte
C = 11H : Khi leänh ñoù thuoäc nhoùm leänh trôû veà töø chöông trình con
C = 10H : Khi leänh ñoù thuoäc nhoùm leänh 1 byte ( keå caû nhöõng maõ khoâng thuoäc boä leänh )
Ngoaøi thanh ghi C chöông trình khoâng aûnh höôûng tôùi caùc thanh ghi khaùc.
Do chöông trình ñôn giaûn neân chæ trình baøy thuaät giaûi. Ñöôïc goïi töø chöông trình STEP vaø chöông trình SDC.
LMB
PUSH PSW
A (M)
Nhoùm naïp töùc thôøi thanh ghi (3 byte)
Ñ
C (32H)
POP PSW
RET
S
1
1
Nhoùm leänh löu tröõ tröïc tieáp (3 byte)
Ñ
C (31H)
POP PSW
RET
S
Nhoùm leänh goïi chöông trình con (3 byte)
Ñ
C (30H)
POP PSW
RET
S
Nhoùm leänh nhaûy (3 byte)
Ñ
C (33H)
POP PSW
RET
S
Nhoùm leänh 2 byte
Ñ
C (20H)
S POP PSW
RET
Nhoùm leänh trôû veà töø chöông trình con
Ñ
C (11H)
S POP PSW
C (10H)RET
POP PSW
RET
INS
INS : Ñaây laø moät chöông trình con cho pheùp cheøn döõ lieäu taïi ñòa chæ hieän haønh vaø töï söûa ñòa chæ neáu muoán.
Input : Naïp ñòa chæ cuoái vuøng INS , nghóa laø chöông trình chæ coù taùc duïng trong khoaûng töø ñòa chæ hieän haønh ñeán ñòa chæ cuoái môùi naïp. Neáu söûa ñòa chæ thì naïp ñòa chæ leänh ñaàu tieân vuøng caàn söûa, nghóa laø chöông trình söûa ñòa chæ chæ coù taùc duïng töø ñòa chæ môùi naïp tôùi ñòa chæ cuoái vuøng INS
Output : Ngoaøi AF khoâng thanh ghi naøo bò ñieàu chænh. Vuøng ñòa chæ söû duïng cho INS :
AddINS + 0 : 9FDD
Ñòa chæ trôû veà sau khi
AddINS + 1 : 9FDE
INS
AddINS + 2 : 9FDF
Ñòa chæ keá cuoái vuøng
AddINS + 3 : 9FE0
INS
AddINS + 4 : 9FE1
Naïp ñòa chæ oâ nhôù
AddINS + 5 : 9FE2
caàn cheøn
INS
PUSH B
PUSH D
PUSH H
BC (0000H)
SHLD AddINS + 0
SHLD AddINS + 4
DE HL
*1 : Addtt (01H)
CALL XADD
A (83H)
AddCT79 (A)
a
A (79H)
AddDT79 (A)
a
CALL DAUCHAM
*4: CALL KYBRD
ADD
PHIMSO
S S Ñ *3
(AddTT)=00H
S
*16 : CALL PHIMSO
*4 Ñ
PUSH DE
CALL DEMP
HL DE
HL (HL) - 1
SHLD AddINS + 2
POP DE
A (H)
A < D
A = D
S Ñ *5 Ñ S
A (L)
A = E
A < E
S S
Ñ Ñ *6
1
1
AddTT (01H)
LHLD AddINS+ 0
CALL DPHLM
*7 : CASLL KYBRD
DOWN
ADD
PHIMSO
S S S
*11 Ñ *10 Ñ *9 Ñ
PUSH HL CALL DOWN AddTT (01H)
LHLD AddINS+2 SHLD AddINS+0 CALL SDC CALL SHM DE HL POP H
BC (BC)+1 CALL DPHLM
POP HL AddTT (01H)
CALL PHIMSO *12 POP D
CALL KYBRD POP B
RET
PHIMSO
S *12
*15 Ñ
CALL PHIMSO
UP
INS
*8 S S S
*13 Ñ *14
POP H CALL UP
CALL DPHLM SHLD AddINS + 0
AddTT (01H) DE HL
POP D
POP B
RET
JMP *1
PUSH B JMP *6
PUSH D *5 : MOV A,L
PUSH H CMP E
LXI B,0000H JZ *1
SHLD AddINS + 0 JM *1
SHLD AddINS + 4 *6 : MVI A,01H
MOV D,H STA AddTT
MOV E,L LHLD AddINS + 0
*1 : MVI A,01 CALL DPHLM
STA AddTT *7 : CALL KYBRD
CALL XADD CPI ‘ADD’
MVI A,38H JZ *9
STA AddCT79 CPI ‘DOWN’
MVI A,79H JZ *10
STA AddDT79 CPI 10H
CALL DAUCHAM JM *11
*2 : CALL KYBRD *8 : CPI ‘INS’
CPI 10H JZ *13
JM *16 CPI ‘UP’
CPI ‘ADD’ JZ *14
JZ *3 JMP *7
JMP *2 *9 : MVI A,01H
*3 : LDA AddTT STA AddTT
CPI 00H CALL SDC
JZ *4 POP H
JMP *1 CALL DPHLM
*4 : PUSH D MVI A,01H
CALL DEMP STA AddTT
MOV H,D POP D
MOV L,E POP B
DCX H RET
SHLD AddINS + 2 *10 : CALL DOWN
POP D SHLD AddINS +0
MOV A,H MOV D,H
CMP D MOV E,L
JZ *5 JMP *12
*11 : PUSH H STA AddTT
LHLD AddINS + 2 POP D
CALL SHM POP B
INX B RET
POP H *14 : CALL UP
CALL PHIMSO SHLD AddINS + 0
*12 : CALL KYBRD MOV D,H
CPI 10H MOV E,L
JZ *15H JMP *7
JMP *8 *15 : CALL PHIMSO
*13 : POP H JMP *12
CALL DPHLM *16 : CALL PHIMSO
MVI A,01H JMP *2
* Caùc chöông trình con ñöôïc goïi :
· DAUCHAM : xem phuï luïc
· DEMP : xem phuï luïc
· DPHLM : xem phuï luïc
· DOWN : xem CHÖÔNG 4
· KYBRD : xem CHÖÔNG 4
· PHIMSO : xem CHÖÔNG 4
· SDC : xem CHÖÔNG 4
· SHM : xem CHÖÔNG 4
· XADD : xem phuï luïc
SHM
· SHM : Laø chöông trình con coù nhieäm vuï dòch döõ lieäu xuoáng moät oâ nhôù.
· Input: Naïp HL laø ñòa chæ giaùp choùt cuûa vuøng INS. Naïp DE laø ñòa chæ oâ nhôù ñöôïc cheøn vaøo.
· Output: Khoâng ñieàu chænh noäi dung caùc thanh ghi
SHM
PUSH PSW
PUSH B
PUSH D
BC HL
BC (BC) + 1
DE (DE) - 1
*1
A (M)
STAX B
HL (HL) - 1
BC (BC) – 1
SH = D
*2 Ñ
L = E
S
Ñ *3
POP D
POP B
POP PSW
RET
SHM
PUSH PSW
PUSH B
PUSH D
MOV B,H
MOV C,L
INX B
DCX D
*1 : MOV A,M
STAX B
DCX H
DCX B
MOV A,H
CMP D
JZ *2
JMP *1
*2 : MOV A,L
CMP E
JZ *3
JMP *1
*3 : POP D
POP B
POP PSW
RET
SDC
· SDC : Laø chöông trình con coù khaû naêng söûa ñòa chæ nhöõng leänh lieân quan ñeán ñòa chæ ( leänh nhaûy, leänh goïi, leänh löu tröõ ).
· Input : Naïp BC laø khoaûng thay ñoåi ñòa chæ.
Naïp ñòa chæ oâ nhôù caàn cheøn vaøo AddINS + 4 vaø AddINS + 5
Naïp ñòa chæ giaùp choùt cuûa vuøng caàn INS vaøo AddINS + 2 vaø AddINS + 3
Naïp ñòa chæ trôû veà khi thöïc hieän xong chöông trình vaøo AddINS + 0 vaø AddINS + 1
Naïp ñòa chæ baét ñaàu söûa ñòa chæ
· Output : Hieån thò ñòa chæ hieän haønh tröôùc luùc INS
Chöông trình khoâng laøm thay ñoåi noäi dung caùc thanh ghi
SDC
PUSH PSW
PUSH D
PUSH H
Addtt (01H)
CALL XADD
A (83H)
AddCT79 (A)
A (7CH)
AddDT79 (A)
*1: CALL KYBRD
PHIMSO
ADD
S S Ñ *17 *2 Ñ
(ADDTT)=00H
S
CALL PHIMSO
Ñ *3
*3 : CALL DEMP
HL DE
*4 : LDA AddINS + 2
E (A)
LDA AddINS + 3
D (A)
DE (DE) - 1
a
1
a
1
*5
L = E
H = D
Ñ *15 Ñ *16
*6 S S
LHLD AddINS + 0
PUSH B CALL DPHLM
CALL LMB POP H
Leänh 1byte (C=10H; C=11H)
POP D
POP PSW
RET
*7
HL (HL) + 1
S POP B
Leänh 2byte (C=20H)
*8
HL (HL) + 2
S POP B
Leänh 3byte khoâng lieân quan ñeán ñòa chæ (C=32H)
*9
HL (HL) + 3
POP B
S
2
a
a
2
POP B
HL (HL) + 1
PUSH H
E (M)
HL (HL) + 1
PUSH H
D (M)
LDA AddINS + 5
A = D
A < D
S S *10
*11 Ñ Ñ HL (HL) + 1
LDA AddINS + 4 POP D
A < E
A = E
POP D
S S
*12 Ñ Ñ
LDA AddINS + 3
D = A
Ñ
*13
S LDA AddINS + 2
A < D
Ñ
A = E
Ñ
S
S
A < E
Ñ
a
3
S *14
a
3
CALL ADDBCDE
POP H
M (D)
POP H
M (E)
HL (HL) + 1
SDC
PUSH PSW
PUSH D
PUSH H
MVI A,01H
STA AddTT
CALL XADD
MVI A,83H
STA AddCT79
MVI A,7CH
STA AddDT79
*1 : CALL KYBRD
CPI 10H
JZ *17
CPI ‘ADD’
JZ *2
JMP *1
*2 : LDA AddTT
CPI 00H
JZ *3
JMP *1
*3 : CALL DEMP
MOV H,D
MOV L,E
*4 : LDA AddINS + 2
MOV E,A
LDA AddINS + 3
MOV D,A
DCX D
*5 : MOV A,H
CMP D
JZ *15
*6 : PUSH B
CALL LMB
CPI 10H
JZ *7
CPI 11H
JZ *7
CPI 20H
JZ *8
CPI 32H
JZ *9
POP B
INX H
PUSH H
MOV E,M
INX H
PUSH H
MOV D,M
LDA AddINS + 5
CMP D
JZ *11
JM *12
*10 : INX H
POP D
POP D
JMP *4
*11 : LDA AddINS + 4
CMP E
JZ *12
JM *12
JMP *10
*12 : LDA AddINS + 3
CMP D
JZ *13
JM *10
JMP *14
*13 : LDA AddINS + 2
CMP E
JZ *10
JM *10
*14 : CALL ADDBCDE
POP H
MOV M,D
POP H
MOV M,E
INX H
JMP *4
*15 : MOV A,L
CMP E
JZ *16
JMP *6
*16 : LHLD AddINS +0
CALL DPHLM
POP H
POP D
POP PSW
RET
*17 : CALL PHIMSO
JMP *1
*7 : INX H
POP B
JMP *5
*8 : INX H
INX H
POP B
JMP *5
*9 : INX H
INX H
INX H
POP B
JMP *5
* Caùc chöông trình con ñöôïc goïi :
· DEMP : xem phuï luïc
· DPHLM : xem phuï luïc
· PHIMSO : xem CHÖÔNG 4
· LMP : xem CHÖÔNG 4
· ADDBCDE
ADDBCDE
· ADDBCDE : Ñaây laø chöông trình con duøng ñeå coäng hai caëp thanh ghi DE vaø BC
· Input : Naïp DE, BC
· Output : Keát quaû trong DE
Chæ thanh ghi D , E bò thay ñoåi.
ADDBCDE
PUSH PSW
PUSH B
MOV A,E
ADD C
MOV E,A
MOV A,D
ADC B
MOV D,A
POP B
POP PSW
RET
PC
· PC : Laø chöông trình con duøng ñeå chaïy chöông trình cuûa ngöôøi söû duïng.
· Input : Naïp ñòa chæ baét ñaàu chaïy
· Output : Thöïc hieän chöông trình ngöôøi söû duïng tôùi khi naøo gaëp leänh döøng
PC
PUSH PSW
PUSH D
Addtt (01H)
CALL DPPC
CALL DAUCHAM
*1: CALL KYBRD
GO
PHIMSO
S S *4 Ñ *2 Ñ
(ADDTT)=00H
S
CALL PHIMSO
*3 Ñ
CALL DPHLM
POP D
CALL DEMP POP PSW
HL DE
RET
POP D
POP PSW
PC HL
PC
PUSH PSW
PUSH D
MVI A,01H
STA AddTT
CALL DPPC
CALL DAUCHAM
*1 : CALL KYBRD
CPI 10H
JM *4
CPI ‘GO’
JZ *2
JMP *1
*2 : LDA AddTT
CPI 00H
JZ *3
CALL DPHLM
POP D
POP PSW
RET
*3 : CALL DEMP
MOV H,D
MOV L,E
POP D
POP PSW
PCHL
* Caùc chöông trình con ñöôïc goïi :
· DEMP : xem phuï luïc
· DPHLM : xem phuï luïc
· DAUCHAM : xem phuï luïc
· PHIMSO : xem CHÖÔNG 4
· KYBRD : xem CHÖÔNG 4
· DPPC : Laø chöông trình con xuaát hieän thoâng baùo naïp PC (xem phuï luïc)
Treân ñaây laø moät soá chöông trình con ñaõ ñöôïc thieát keá vaø chaïy thöû nghieäm treân SDK 85 (System Design Kit 8085) cuûa tröôøng ÑHSPKT, phaàn coøn laïi ñöôïc trình baøy trong phaàn phuï luïc. Do thôøi gian coù haïn neân khoâng theå thöïc hieän nhö mong muoán, nhöng ñeå thieát keá, chaïy thöû vaø thi coâng hôn 30 chöông trình quaû laø moät coâng vieäc khoâng ñôn giaûn. CHÖÔNG 5 seõ cung caáp nhöõng thoâng tin höõu ích veà vaán ñeà naøy.
Chöông 5 :
THI COÂNG
CHÖÔNG 5 : THI COÂNG
-------------oOo------------
Thi coâng moät heä thoáng vi xöû lí laø moät quaù trình phöùc taïp. Bao goàm hai giai ñoaïn :
Thi coâng phaàn cöùng
Thi coâng phaàn meàm
Hai giai ñoaïn naøy coù theå tieán haønh ñoäc laäp, khoâng caàn thieát phaûi theo trình töï, nhöng phaûi thoáng nhaát. Sau ñaây laø quaù rình thi coâng phaàn meàm.
SOFTWARE
Xaùc ñònh yeâu caàu chöông trình
Choïn löïa giaûi thuaät
Giaûi thuaät toái öu
Ñieàu chænh choã sai
Kieåm tra löu ñoà toång quaùt
Vieát löu ñoà toång quaùt cho giaûi thuaät
Xaùc ñònh caáu hình phaàn cöùng
A S Ñ
S
1
Ñ
1
Ñ
Vieát löu ñoà chi tieát cho giaûi thuaät
Dòch giaûi thuaät chi tieát sang chöông trình
Kieåm tra chöông trình treân giaáy
Bieân dòch chöông trình thaønh maõ maùy
S Ñ S Ñ S 2
Kieåm tra maõ leänh ñaõ dòch
Ñieàu chænh choã sai
Ñieàu chænh choã sai
Ñieàu chænh choã sai
Kieåm tra löu ñoà chi tieát
Ñ
2
Ñ
Nhaäp maõ leänh vaøo RAM cuûa SDK85
?
Taát caû chöông trình ñaõ ñöôïc vieát vaø kieåm tra treân SDK85
Soaïn thaûo caùc chöông trình treân NC, PASCAL
Quan saùt keát quaû
Kieåm tra maõ leänh trong RAM SDK 85
Chaïy chöông trình vöøa nhaäp
S Ñ S Ñ S A Ñ Ñieàu chænh choã sai
4
3
4
3
Ñieàu chænh choã sai
Kieåm tra chöông trình vöøa soaïn thaûo
S
6
5
?
Kieåm tra chöông trình vöøa naïp
Tuøy ñieàu kieän thöïc teá seõ cho quyeát ñònh cuï theå
Toaøn boä caùc chöông trình ñaõ ñöôïc naïp vaøo ROM heä thoáng
Toaøn boä caùc chöông trình ñaõ ñöôïc soaïn thaûo
Löu taäp tin vaøo ñóa
Naïp moät hoaëc moät nhoùm chöông trình vaøo ROM heä thoáng baèng thieát bò naïp ROM
Ñ S Ñ S Ñ S Ñ
6
5
Ñieàu chænh choã sai
Quan saùt keát quaû
?
S
Naïp vaø chaïy moät soá chöông trình maãu
Ñ
Quan saùt keát quaû
?
S
Ñ
Sau cheùp döï phoøng ROM heä thoáng
Thay theá ROM khaùc
Thöû ROM döï phoøngû
S
Ñieàu kieän thöïc teá cho pheùp
Ñ
S
Ñ
Phaùt trieån phaàn meàm
END
Hình 5.1 : Löu ñoà caùc böôùc thi coâng phaàn meàm
Baûng 5.1 BAÛNG TRA CÖÙU CAÙC HÖÔNG TRÌNH PHUÏC VUÏ MONITOR
Teân chöông trình( 1)
Ñòa chæ baét ñaàu
( 2 )
Ñòa chæ cuoái
( 3 )
Dung löôïng
( 4)
MNT
DAUCHAM
DELAY 0.1
DEMP
DPFIND
DP HL
DP HLM
DP M
DP PC
DP REG
CODE 1
CODE 2
HELLO
KYTUB
ORMP
XADD
KYBRD
KYCHECK
KYCODE
PHIMSO
UP
DOWN
ADD
SUBBCHL
COPY C.0
COPY C.1
COPY
DEL
REG
SRCH
STEP
LMB
SHM
INS
SDC
ADDBCDE
PC
0000H
0200H
0250H
0290H
02C0H
0320H
0360H
0390H
03C0H
0400H
0430H
0440H
0480H
0500H
0550H
0570H
05A0H
05C0H
05F0H
0620H
06E0H
0700H
0720H
0740H
0760H
0790H
07D0H
08E0H
09A0H
0AD0H
0B50H
0D50H
0E90H
0EC0H
0FC0H
10C0H
10F0H
00FCH
023AH
027AH
02A5H
030EH
0351H
037DH
03B3H
03F5H
0422H
0437H
0467H
04EFH
053EH
055FH
059BH
05AFH
05D9H
060BH
06C3H
06F8H
070CH
072EH
074DH
077EH
07BBH
08CDH
0975H
0AA0H
0B23H
0D23H
0E78H
0EAFH
0F9FH
1088H
10CBH
1123H
252 byte
58 byte
42 byte
21 byte
78 byte
49 byte
29 byte
35 byte
53 byte
34 byte
7 byte
23 byte
111 byte
62 byte
15 byte
43 byte
15 byte
25 byte
27 byte
163 byte
24 byte
12 byte
14 byte
13 byte
30 byte
43 byte
253 byte
149 byte
256 byte
83 byte
467 byte
296 byte
31 byte
223 byte
200 byte
11 byte
51 byte
Chöông 6 :
HÖÔÙNG DAÃN SÖÛ DUÏNG
CHÖÔNG 6 : HÖÔÙNG DAÃN SÖÛ DUÏNG
6.1 PHÍM ADD
Phím ADD duøng ñeå thay ñoåi ñòa chæ hieän haønh. Muoán thöïc hieän ta thöïc hieän caùc böôùc sau :
* AÁn caùc phím soá sao cho treân maøn hình hieän thò caùc ñòa chæ caàn nhaûy tôùi.
*Aán phím ADD laäp töùc ñòa chæ môùi vaø döõ lieäu taïi ñòa chæ ñoù ñöôïc hieån thò.
6.2 PHÍM UP ; DOWN
Phím UP duøng ñeå taêng ñòa chæ hieän haønh leân moät vaø ñeå xaùc nhaän döõ lieäu môùi.
Ví duï : Ñeå nhaäp döõ lieäu D3 vaøo oâ nhôù coù ñòa chæ 7000 ta thöïc hieän nhö sau :
Aán caù phím soá, treân maøn hình xuaát hieän 7000
Aán phím ADD, ñòa chæ hieän haønh ñöôïc hieån thò
Aán caùc phím soá, treân maøn hình hieån thò D3
Aán phím UP : Döõ lieäu D3 ñöôïc naïp vaøo oâ nhôù coù ñòa chæ 7000 vaø ñòa chæ hieän haønh ñöôïc taêng leân 1 ñôn vò.
Muoán giaûm ñòa chæ hieän haønh thì nhaán phím DOWN. Phím DOWN khoâng nhaäp döõ lieäu môùi.
6.3 PHÍM PC VAØ GO
Sau khi naïp chöông trình vaøo RAM, ñeå chaïy thöû ta nhaán PC. Treân maøn hình xuaát hieän thoâng baùo “PC = · · · · “ ;
Ta nhaán phím soá ñeå naïp ñòa chæ ñaàu cuûa ñoaïn chöông trình caàn thöû.
Nhaán phím GO : Laäp töùc vi xöû lí thöïc hieän chöông trình ñoù. khi khoâng naïp ñòa chæ môùi maø nhaán GO thì seõ thoaùt chöông trình PC.
6.4 PHÍM REG
Phím REG laø phím chöùc naêng thöïc hieän vieäc xem vaø naïp giaù trò môùi vaøo caùc thanh ghi.
ÖÙng duïng :
Thieát laäp giaù trò cho caùc thanh ghi laøm bieán soá tröôùc khi chaïy moät chöông trình naøo ñoù. Chuù yù : khoâng naïp giaù trò cho caëp thanh ghi HL trong tröôøng hôïp naøy (chöông trình phím PC laøm thay ñoåi HL).
Thieát laäp, xoùa caùc côø tröôùc khi chaïy chöông trình
Löu tröõ keát quaû cuûa chöông trình vaøo caùc thanh ghi, ñeå kieåm tra sau khi chaïy xong chöông trình
Kieåm tra caùc côø sau khi thöïc hieän caùc leänh soá hoïc vaø logic
Vôùi chöông trình Monitor söû duïng phím REG ñeå kieåm tra keát quaû cuûa moät leänh trong thanh ghi, khi duøng phím STEP.
Caùch söû duïng :
Nhaán phím REG : Treân maøn hình hieån thò thanh ghi A vaø noäi dung trong thanh ghi A
VD :
Nhaán phím UP, DOWN ñeå xem noäi dung cuûa caùc thanh ghi khaùc..
Khi muoán naïp noäi dung môùi vaøo thanh ghi.
VD : naïp vaøo C noäi dung laø A D
Ta thöïc hieän caùc böôùc sau :
+ Nhaán UP, DOWN ñeå treân maøn hình hieån thò thanh ghi vaø noäi dung thanh ghi caàn naïp.
+ Nhaán phím A, D ( phím soá ), treân maøn hình hieån thò A D
+ Nhaán phím UP : töùc thì noäi dung môùi ñöôïc naïp.
Muoán thoaùt chöông trình REG ta nhaán phím REG moät laàn nöõa.
6.5 PHÍM COPY
Khi muoán cheùp moät ñoaïn döõ lieäu töø vuøng naøy qua vuøng khaùc ta nhaán phím COPY. Treân maøn hình hieån thò thoâng baùo naïp ñòa chæ baét ñaàu vuøng goác.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ ñoù, treân maøn hình xuaát hieän thoâng baùo naïp ñòa chæ cuoái vuøng goác.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ ñoù, treân maøn hình xuaát hieän thoâng baùo naïp ñòa chæ ñaàu cuûa vuøng ñích.
Duøng phím soá ñeå naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh ñòa chæ nôùi naïp, chöông trình thöïc hieän vieäc COPY.
Neáu moät trong caùc ñòa chæ treân khoâng ñöôïc naïp maø ta nhaán phím ADD thì töï ñoäng thoaùt khoûi chöông trình COPY.
6.6 PHÍM DEL
Khi muoán xoùa ( cheùp 00H ) moät ñoaïn döõ lieäu ta nhaán phím DEL. Maøn hình thoâng baùo naïp ñòa chæ ñaàu vuøng caàn xoùa.
Duøng phím soá naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh. Maøn hình xuaát hieän thoâng baùo naïp ñòa chæ keát thuùc.
Duøng phím soá naïp ñòa chæ ñoù.
Nhaán phím ADD xaùc ñònh. Chöông trình thöïc hieän chöùc naêng DEL roài thoaùt khoûi chöông trình phím DEL.
Neáu moät trong caùc ñòa chæ treân khoâng ñöôïc naïp maø nhaán ADD thì seõ thoaùt khoûi chöùc naêng DEL.
6.7 PHÍM SRCH
Khi muoán tìm kieám moät byte döõ lieäu naøo ñoù ta nhaán phím SRCH. Maøn hình hieån thò :
Duøng phím soá naïp giaù trò byte caàn tìm.
Nhaán phím UP chöông trình seõ tìm kieám töø ñòa chæ hieän haønh tôùi khi naøo tìm thaáy byte coù giaù trò ñaõ naïp döøng vaø hieån thò. Neáu muoán tìm tieáp ta nhaán phím SRCH thì chöông trình seõ tìm tieáp (khoâng caàn naïp giaù trò môùi).
6.8 PHÍM STEP
Phím STEP coù chöùc naêng gôõ roái chöông trình khi thöïc hieän coù keát quaû sai maø chöa bieát ñöôïc leänh sai.
Söû duïng STEP coù theå thöïc hieän vaø kieåm tra keát quaû töøng leänh trong 1 chöông trình.
Caùch söû duïng :
Ñaàu tieân, ta phaûi dôøi con troû tôùi ñòa chæ caàn thöïc hieän. Sau ñoù aán phím STEP chöông trình taïi ñoù seõ thöïc hieän töøng leänh.
6.9 PHÍM INS
Phím INS söû duïng ñeå cheøn theâm moät byte hoaëc moät soá byte, coù theå söûa ñòa chæ.
Caùch söû duïng :
Di chuyeån con troû tôùi ñòa chæ caàn cheøn.
Aán phím Ins. Maøn hình hieån thò thoâng baùo naïp ñòa chæ cuoái vuøng INS.
Duøng phím soá naïp ñòa chæ cuoái.
Aán phím ADD xaùc ñònh ñòa chæ ñoù
Söû duïng phím soá, phím UP ñeå cheøn döõ lieäu môùi.
Phím DOWN chæ cho pheùp giaûm ñòa chæ xuoáng 1 vaø khoâng luøi lieân tieáp. Noù coù chöùc naêng chænh laïi döõ lieäu vöøa cheøn vaøo.
Neáu muoán söûa ñòa chæ, aán phím ADD. Maøn hình thoâng baùo naïp ñòa chæ ñaàu.
AÁn phím ADD moät laàn nöõa chöùc naêng söûa ñòa chæ ñöôïc thöïc hieän vaø thoaùt chöông trình.
Neáu muoán thoaùt chöông trình khoâng qua chöùc naêng söûa ñòa chæ, aán phím INS moät laàn nöõa.
Chöông 7 :
TOÙM TAÉT
KEÁT LUAÄN
ÑEÀ NGHÒ
CHÖÔNG 7 : TOÙM TAÉT – KEÁT LUAÄN – ÑEÀ NGHÒ
7.1 TOÙM TAÉT ÑEÀ TAØI
Ñeà taøi ñöôïc trình baøy thaønh 7 chöông nhöng quan troïng nhaát laø chöông 4, noù trình baøy töø toång quaùt ñeán cuï theå chöông trình Monitor vaø caùc chöông trinh con phuïc vuï chöông trình Monitor. Chöông trình Monitor quaûn lí toaøn boä heä thoáng vaø cho pheùp ngöôøi söû duïng soaïn thaûo vaø thöû nghieäm caùc chöông trình moät caùch tieän nghi nhaát.
Chöông 5 trình baøy nhöõng thoâng tin vaø phöông phaùp thi coâng hoaøn chænh moät phaàn meàm.
Chöông 6 laø phaàn höôùng daãn söû duïng thieát bò vöøa thieát keá. Ñaây laø, phaàn quan troïng nhaèm giuùp ngöôøi söû duïng coù theå khai thaùc heát nhöõng chöùc naêng, öu ñieåm cuûa heä thoáng.
7.2 KEÁT LUAÄN
Qua 7 tuaàn laøm vieäc khoâng meät moûi, khoâng nhöõng bieát toång hôïp vaø öùng duïng nhöõng kieán thöùc ñaõ hoïc vaøo thöïc teá maø coøn ruùt ra döôïc nhöõng keát luaän sau:
\ Coù theå duøng vi xöû lí 8085 ñeå thieát keá thieát bò thöïc taäp vi xöû lí, khaû naêng laøm vieäc cuûa thieát bò phuï thuoäc chuû yeáu vaøo phaàn meàm.
\ Phaàn meàm vaø phaàn cöùng coù moái lieân quan chaët cheõ, chuùng coù theå thay theá cho nhau ôû moät soá chöùc naêng naøo ñoù .
\ Ñoái vôùi chöùc naêng COPY chöông trình phaûi nhaän bieát ñöôïc hai vuøng goác vaø ñích coù truøng nhau khoâng vaø truøng nhau nhö theá naøo ñeå khi thöïc hieän COPY khoâng bò maát döõ lieäu .
\ Ñeå tieän cho vieäc chaïy thöû chöông trình vaø kieåm tra keát quaû sau khi chaïy thöû chöông trình thì chöùc naêng REG phaûi naïp vaø xem ñöôïc noäi dung thanh ghi.
\ Neáu chöông trình phím PC söû duïng leänh naïp ñiaï chæ trong caëp thanh ghi HL vaøo caëp thanh ghi PC thì thoâng soá trong caëp thanh ghi HL ñaõ naïp tröôùc ñoù ôû chöùc naêng REG seõ voâ nghóa.
\ Chöùc naêng STEP, chöông trình ngöôøi söû duïng vaø chöông trình Monitor chaïy chung vôùi nhau, phaûi thieát keá sao cho chöông trinh phím STEP khoâng söû duïng stackpoiter, ñeå ghaønh stackpoiter cho chöông trình ngöôøi söû duïng. Phaûi baûo toaøn caùc thoâng soá cuûa chöông trình ngöôøi sau moãi böôùc ñeå thöïc hieän böôùc keá tieáp, nhaát laø ñoái vôùi caùc leänh nhaûy, goïi, trôû veà coù ñieàu kieän. Ñoái vôùi caùc leänh goïi vaø trôû veà ta phaûi taïo ra moät con troû MNT- STACKPOITER, laø vuøng nhôù theo kieåu LIFO, gioáng stackpoiter, ñeå löu giöõ ñiaï chæ khi gaëp leänh nhaûy vaø laáy laïi ñiaï chæ ñoù khi gaëp leänh trôû veà, ñaëc bieät khi caùc chöông trình con loàng vaøo nhau. Ñoái vôùi caùc leänh nhaûy, leänh goïi, leänh trôû veà ta phaûi khoáng cheá sao cho chöông trình chay töøng böôùc.
\ Chöùc naêng INS raát caàn thieát khi chænh söûa chöông trình nhö cheøn theâm caùc leänh thieáu, phaûi söûa ñöôïc diaï chæ cuûa caùc leänh nhaûy, leänh goïi, leänh löu tröõ neáu ñiaï chæ cuûa chuùng chæ ñeán vuøng INS taùc ñoäng.
7.3 ÑEÀ NGHÒ
Maëc duø ñaõ coá gaéng heát söùc mình, yeáu toá thôøi gian ñaõ baét buoäc ngöôøi thöïc hieän phaûi döøng coâng vieäc nghieân cöùu. Thöïc söï, ngöôøi thöïc hieän chöa haøi loøng laém vôùi nhöõng gì giaûi quyeát ñöôïc, hy voïng sau naøy coù thôøi gian nghieân cöùu theâm vaø nhöõng khoaù sau seõ coá gaéng hoaøn thieän ñeà taøi, ñeå noù trôû thaønh moät saûn phaåm hoaøn chænh.
Sau ñaây laø moät vaøi ñeà nghò tham khaûo daønh cho nhöõng ai coù yù ñònh phaùt trieån ñeà taøi:
\ Xaây döïng theâm chöùc naêng chaïy töøng ñoaïn. Caùc ñoaïn ñoù ñöôïc xaùc ñònh baèng caùc ñieåm döøng ñöôïc ngöôøi söû duïng ñaët.
\ Xaây döïng theâm chöùc naêng söûa ñiaï chæ ñeå söû duïng sau khi thöïc hieän chöùc naêng COPY.
\ Xaây chöông trình cho pheùp ñoå döõ lieäu töø maùy tính vaøo thieát bò ñeå chaïy thöû.
\ Xaây döïng caùc baøi thöïc haønh treân thieát bò vöøa thieát keá.
\ Xaây döïng nhöõng chöông trình tieän ích, thieát keá caùc modul phaàn cöùng ñeå gheùp noái vôùi thieát bò phuïc vuï cho caùc baøi thöïc haønh.
PHAÀN C
TAØI LIEÄU THAM KHAÛO
PHUÏ LUÏC
TAØI LIEÄU THAM KHAÛO.
---W---
CHAÂU KIM LANG
“Phöông phaùp nghieân cöùu khoa hoïc”
Ban Sö Phaïm Kó Thuaät tröôøng Ñaïi hoïc Sö Phaïm Kó Thuaät Tp. HCM, 1989.
TRAÀN VAÊN TROÏNG
“Kó thuaät vi xöû lí 8085A”
Ñaïi hoïc Sö Phaïm Kó Thuaät Tp. HCM, 1995.
PAUL BATES, PENG
“Truyeàn döõ lieäu söû duïng vi maïch LSI” TOÁNG VAÊN ON ( dòch ).
Ñaïi hoïc Baùch Khoa Tp. HCM, 1994. Trang 42 – 76.
RONALD J. TOCCI
“Digital Systems : Principles and Application”
4/e Prentice Hall International Inc, 1998
PHUÏ LUÏC
Phaàn naøy trình baøy nhöõng chöông trình con ñôn giaûn, khoâng trình baøy giaûi thuaät. Caùc chöông trình naøy ñöôïc vieát töø ban ñaàu khi coøn chöa coù kinh nghieäm, vì theá chuùng coøn mang tính “thuû coâng’. Caùc chöông trình ñöôïc saép xeáp theo maãu töï A, B, C… ñeå tieän vieäc tra cöùu.
DAUCHAM
DAUCHAM : Ñaây laø chöông trình con coù nhieäm vuï xuaát caùc ñieåm saùng lan daàn.
Input : Khoâng
Output : Hieån thò
Coù goïi Delay 0.1
Chöông trình khoâng thay ñoåi noäi dung thanh ghi
DAUCHAM
PUSH PSW MVI A, 86H
MVI A, 84H STA AddCT79
STA AddCT79 MVI A, 80H
MVI A, 80H STA AddDT79
STA AddDT79 MVI A, 02H
MVI A, 02H CALL DELAY 0.1
CALL DELAY 0.1 MVI A, 87H
MVI A, 85H STA AddCT79
STA AddCT79 MVI A, 80H
MVI A, 80H STA AddDT79
STA AddDT79 POP PSW
MVI A, 02H RET
CALL DELAY 0.1
DELAY 0.1
DELAY 0.1 : Ñaây laø chöông trình con coù taùc vuï trì hoaõn; 0.1 giaây ( 0….25,5 giaây ).
Input : Naïp thôøi gian caàn trì hoaõn vaøo thanh ghi A.
Output : Trì hoaõn chöông trình trong thôøi gian ñaõ ñònh.
DELAY 0.1
PUSH D SUB A
LXI D, 0001H ORA D
PUSH PSW ORA E
INR A MOV A, B
JMP *4 JNZ 3*
*1: PUSH D POP B
PUSH B POP D
*3 : DCX D *4 : DCR A
LXI B, 5433H JNZ *1
*2 : DCR C POP PSW
JNZ *2 POP D
DCR B RET
JNZ *2
MOV B, A
DELAY 0.1
PUSH D
DE ( 0001H )
PUSH PSW
A ( A) + 1
A ( A) – 1
A = 0
POP PSW PUSH D
POP D PUSH B
RET
DE ( DE ) –1
BC ( 5433H )
1
c
a
b
C ( C) – 1
1
a
b
c
C = 0
S
Ñ
B ( B ) –1
B = 0
S
Ñ
B ( A)
A ( A ) – ( A)
A ( A) OR ( D)
A ( A) OR ( E )
A B
A = 0
POP B
POP D
DEMP
DEMP : Ñaây laø chöông trình con coù nhieäm vuï laáy noäi dung trong boán oâ maõ phím.
Input : Laáy noäi dung trong caùc oâ maõ phím.
( Addqp+0, Addqp+1, Addqp+2, Addqp+3 )
Output : Keát quaû ñöôïc löu tröõ vaøo caëp thanh ghi DE
Coù goïi ORMP
Ngoaøi DE chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi.
DEMP
PUSH PSW LDA AddQP+1
PUSH B ORA B
LDA AddQP+0 MOV D, A
RLC CALL ORMP
RLC MOV E, A
RLC POP B
RLC POP PSW
MOV B, A RET
DPFIND
DPFIND : Ñaây laø chöông trình con coù nhieäm vuï hieån thò “FIND”
Input : Khoâng
Output : Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi DELAY 0.1
DPFIND
PUSH PSW MVI A, 83H
MVI A, C3 STA AddCT79
STA AddCT79 MVI A, 5EH
MVI A,01H STA AddDT79
CALL DELAY 0.1 MVI A, 86H
MVI A, 80H STA AddCT79
STA AddCT79 MVI A, 80H
MVI A, 71 STA AddDT79
STA AddDT79 MVI A, 02H
MVI A, 81H CALL DELAY 0.1
STA AddCT79 MVI A, 87H
MVI A, 10H STA AddCT79
STA AddDT79 MVI A, 80H
MVI A, 82H STA AddDT79
STA AddCT79 POP PSW
MVI A, 54H RET
STA ADDDT79
DPHL
DPHL : Ñaây laø chöông trình con coù nhieäm vuï hieån thò noäi dung thanh ghi HL ra led 7 ñoaïn.
Input : Noäi dung thanh ghi HL.
Output : Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi CODE2
DPHL
PUSH PSW CALL CODE2
PUSH D MVI A, 82H
MOV A, H STA AddCT79
CALL CODE2 MOV A, D
MVI A, 80H STA AddDT79
STA AddCT79 MVI A, 83H
MOV A, D STA AddCT79
STA AddDT79 MOV A,E
MVI A, 81H STA AddDT79
STA AddCT79 POP D
MOV A, E POP PSW
STA AddDT79 RET
MOV A,L
DPHLM
DPHLM : Ñaây laø chöông trình con coù nhieäm vuï hieån thò ñòa chæ vaø döõ lieäu hieän taïi ñòa chæ ñoù.
Input : HL chöùa ñòa chæ caàn hieån thò.
Ouput : Hieån thò
Khoâng thay ñoåi noäi dung caùc thanh ghi
Coù goïi DPHL vaø DPM.
DPHLM
PUSH PSW STA AddCT79
CALL DPHL MVI A, 00H
MVI A, 84H STA AddDT79
STA AddCT79 CALL DPM
MVI A, 00H POP PSW
STA AddDT79 RET
MVI A, 85H
DPM
DPM : Laø chöông trình con hieån thò thoâng baùo naïp ñòa chæ vaøo thanh ghi PC.
Input : Khoâng
Output : Hieån thò
Khoâng aûnh höôûng caùc thanh ghi
Coù goïi DELAY 0.1
DPM
PUSH PSW MVI A, 87H
PUSH B STA AddCT79
PUSH D MOV A, E
MOV A, M STA AddDT79
CALL CODE2 STA AddHT+7
MVI A, 86H POP D
STA AddCT79 POP B
MOV A, D POP PSW
STA AddDT79 RET
STA AddHT+6
DP PC
DP PC : Laø chöông trình con hieån thò thoâng baùo naïp ñòa chæ vaøo thanh ghi PC.
Input : Khoâng
Output : Hieån thò
Khoâng aûnh höôûng tôùi caùc thanh ghi
Coù goïi DELAY 0.1
DP PC
PUSH PSW MVI A, 39H
MVI A, C3H STA AddDT79
STA AddCT79 MVI A, 82H
MVI A, 01H STA AddCT79
CALL DELAY 0.1 MVI A, 48H
MVI A, 80H STA AddDT79
STA AddCT79 MVI A, 83H
MVI A,63H STA AddCT79
STA AddDT79 MVI A, 00H
MVI A, 81H STA AddDT79
STA AddCT79 POP PSW
RET
DP REG
DP REG : Ñaây laø chöông trình con coù nhieäm vuï hieån thò noäi dung thanh ghi A.
Input : Naïp thanh ghi caàn hieån thò vaøo A.
Output : Hieån thò
Coù goïi CODE2
DP REG
PUSH PSW MVI A, 87H
PUSH B STA AddCT79
PUSH D MOV A, E
CALL CODE2 STA AddDT79
MVI A, 86H STA AddHT+7
STA AddCT79 POP D
MOV A, D POP B
STA AddDT79 POP PSW
STA AddHT+6 RET
CODE 1
CODE 1 : Laø chöông trình con ñoåi caùc soá Hexa töø 00H ® 0FH ra moät kí töï 7 ñoaïn baèng caùch tra baûng maõ.
Input : Naïp maõ caàn ñoåi vaøo thanh ghi A
Output : Keát quaû ñöôïc ghi vaøo thanh ghi A.
Khoâng thay ñoåi noäi dung caùc thanh ghi ngoaøi thanh ghi A
CODE 1
PUSH H
MOV L, A
MVI H, ; naïp ñòa chæ cao baûng maõ
MOV A, M
POP H
RET
CODE 2
CODE 2: Ñaây laø chöông trình con ñoåi maõ hai kí töï Hexa ra hai kí töï led 7 ñoaïn.
Input : Naïp maõ caàn chuyeån ñoåi vaøo A.
Output : Kyù töï hieån thò cho 4 bit cao ñöôïc löu vaøo thanh ghi D
Kyù töï hieån thò cho 4 bit thaáp löu vaøo thanh ghi E
Coù goïi CODE 1
CODE 2
PUSH PSW
PUSH B
MOV B, A
RRC
RRC
RRC
RRC
ANI 0FH
CALL CODE 1
MOV D, A
MOV A, B
ANI 0FH
CALL CODE 1
MOV E, A
POP B
POP PSW
RET
HELLO
HELLO : Laø chöông trình con hieån thò chöõ “HELLO”, sau ñoù, hieån thò con troû.
Input : Khoâng
Output : Hieån thò
Chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi
HELLO
PUSH B MVI A, 02H
PUSH PSW CALL DELAY 0.1
MVI B, 00H MVI A, 3F
MVI A, C3H STA AddDT79
STA AddCT79 MVI A, 02H
MVI A, 01H CALL DELAY 0.1
CALL DELAY 0.1 MVI A, 00H
MVI A,98H STA AddDT79
STA AddCT79 INR B
MVI A, 76H MOV A, B
STA AddDT79 CPI 08H
MVI A, 02H JZ *2
CALL DELAY 0.1 JMP *1
MVI A, 79H MVI A, 91H
STA AddDT79 STA AddCT79
MVI A. 02H MVI A, 3FH
CALL DELAY 0.1 STA AddDT79
MVI A, 38H STA AddDT79
STA AddDT79 STA AddDT79
MVI A, 02H STA AddDT79
CALL DELAY 0.1 MVI A, 80H
MVI A, 38H STA AddCT79
STA AddDT79 POP PSW
POP B
RET
KYTUB
KYTUB : Laø moät chöông trình con hieån thò kí töï vaø daáu baèng.
Input : Naïp maõ 7 ñoaïn cuûa kí töï caàn hieån thò vaøo thanh ghi B.
Output : Hieån thò kí töï vaø daáu baèng.
Khoâng laøm thay ñoåi noäi dung caùc thanh ghi.
KYTUB
PUSH PSW
MVI A, 80H
STA AddCT79
MOV A, B
STA AddDT79
MVI A, 81H
STA AddCT79
MVI A, 48H
STA AddDT79
MVI A, 82H
STA AddCT79
MVI A, 00H
STA AddDT79
MVI A, 83H
STA AddCT79
MVI A, 00H
STA AddDT79
MVI A, 84H
STA AddCT79
MVI A, 00H
STA AddDT79
MVI A, 85H
STA AddCT79
MVI A, 00H
STA AddDT79
POP PSW
RET
ORMP
ORMP : Ñaây laø chöông trình con hôïp hai byte maõ phím thaønh moät byte.
Input : Laáy döõ lieäu trong Addqp+2 vaø Addqp+3
Output : Keát quaû ñöôïc tröõ trong thanh ghi A.
Chöông trình khoâng thay ñoåi caùc thanh ghi khaùc.
ORMP
PUSH B MOV B, A
LDA Addqp+2 LDA Addqp+3
RLC ORA B
RLC POP B
RLC RET
RLC
XADD
XADD : Ñaây laø chöông trình con hieån thò “ADD” ra maøn hình.
Input : Khoâng
Output : Hieån thò
Chöông trình khoâng thay ñoåi noäi dung caùc thanh ghi.
Coù goïi chöông trình DELAY 0.1
XADD
PUSH PSW STA AddCT79
MVI A, C3H MVI A, 5EH
STA AddCT79 STA AddDT79
MVI A, 01H MVI A, 82H
CALL DELAY 0.1 STA AddCT79
MVI A, 80H MVI A, 5EH
STA AddCT79 STA AddDT79
MVI A, 77H POP PSW
STA AddDT79 RET
MVI A, 81H