intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình hình thành quy trình điều khiển thiết bị bán dẫn chứa các mạch logic điện tử p4

Chia sẻ: Sdfasf Dsgfds | Ngày: | Loại File: PDF | Số trang:10

54
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giả sử dịch file x.asm sau: Org 0000h MVI STA MVI STA MVI STA HLT A,00h 0A001h A,80h 0A001h A,06h 0A000hThì sẽ được file x.prn sau: MACRO-80 3.4 Org 0000' 3E 00 0002' 32 A001 0005' 3E 80 0007' 32 A001 000A' 3E 06 000C' 32 A000 000F' 76 MACRO-80 3.4 Macros: Symbols: No Fatal error(s).Vấn đề đặt ra là làm thế nào để lọc ra được nội dung chỉ trên theo thứ tự đúng như nội dung nạp vào Kit. Vấn đề này sẽ được giải quyết ở chương kế: Chương trình DownLoad. ...

Chủ đề:
Lưu

Nội dung Text: Giáo trình hình thành quy trình điều khiển thiết bị bán dẫn chứa các mạch logic điện tử p4

  1. . 31 LUAÂÄN VAÊN TOÁT NGHIEÄP Giaû söû dòch file x.asm sau: Org 0000h MVI A,00h STA 0A001h MVI A,80h STA 0A001h MVI A,06h STA 0A000h HLT END Thì seõ ñöôïc file x.prn sau: MACRO-80 3.4 01-Dec-80 PAGE 1 Org 0000h 0000' 3E 00 MVI A,00h 0002' 32 A001 STA 0A001h 0005' 3E 80 MVI A,80h 0007' 32 A001 STA 0A001h 000A' 3E 06 MVI A,06h 000C' 32 A000 STA 0A000h 000F' 76 HLT MACRO-80 3.4 01-Dec-80 PAGE S Macros: Symbols: No Fatal error(s) Trong ñoù, noäi dung caàn naïp vaøo Kit laø: 3E 00 32 A001 3E 80 32 A001 3E 06 32 A000 76 Nhöng vôùi thöù töï laø: 3E 00 32 01 A0 3E 80 32 01 A0 3E 06 32 00 A0 76
  2. . 32 LUAÂÄN VAÊN TOÁT NGHIEÄP Vaán ñeà ñaët ra laø laøm theá naøo ñeå loïc ra ñöôïc noäi dung chæ treân theo thöù töï ñuùng nhö noäi dung naïp vaøo Kit. Vaán ñeà naøy seõ ñöôïc giaûi quyeát ôû chöông keá: Chöông trình DownLoad.
  3. . LUAÂÄN VAÊN TOÁT NGHIEÄP 33 Chöông VI: CHÖÔNG TRÌNH DOWNLOAD
  4. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W . O O N N y y bu bu 34 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k I. ÑOÂI NEÙT VEÀ NGOÂN NGÖÕ C: I.1. Nguoàn goác: C ñöôïc phaùt minh vaø caøi ñaët ñaàu tieân bôûi Dennis Ritchie chaïy treân heä ñieàu haønh Unix, ñöôïc Martin Richards phaùt trieån trong thaäp nieân 70. C söû duïng chuaån ANSI ñöôïc ñeà nghò laàn cuoái cuøng vaøo naêm 1989. I.2. C laø ngoân ngöõ baäc trung: Ñöôïc xem laø ngoân ngöõ baäc trung vì C toå hôïp nhöõng thaønh phaàn toát nhaát cuûa caùc ngoân ngöõ baäc cao vôùi söï ñieàu khieån vaø tính linh hoaït cuûa ngoân ngöõ Assembly. C cho pheùp thao taùc treân caùc bit, caùc byte vaø caùc ñòa chæ – nhöõng phaàn töû cô baûn vôùi caùc chöùc naêng cuûa maùy tính, maõ cuûa chöông trình C cuõng mang tính khaû chuyeån. I.3. C laø ngoân ngöõ cuûa laäp trình vieân: C ñöôïc caùc laäp trình vieân laøm vieäc thaät söï taïo ra, thuùc ñaåy vaø kieåm tra, ñeå roài C laïi mang veà cho hoï nhöõng gì hoï mong muoán: ít haïn cheá, ít lôøi phaøn naøn, caùc caáu truùc khoái, caùc haøm ñôn leû, vaø moât taäp ñoùng kín nhöõng töø khoùa. II. CAÙC PHÖÔNG PHAÙP LAÄP TRÌNH: II.1. Phöông phaùp laäp trình leänh: Chöông trình laø moät daõy caùc leänh.  Laäp trình laø xaùc ñònh caùc leänh cuøng vôùi thöù töï caùc leänh ñoù.  Phöông phaùp naøy chæ coù giaù trò vôùi ch öông trình leänh ( < 100  leänh). II.2. Phöông phaùp laäp trình thuû tuïc: Chöông trình laø moät heä thoáng caùc thuû tuïc vaø haøm, moãi thuû tuïc  hay haøm laø moät daõy caùc leänh. Laäp trình laø ñi xaùc ñònh nhöõng thuû vaø haøm, vaø xaùc ñònh caùc  leänh beân tring thuû tuïc vaø haøm ñoù. Phöông phaùp naøy tieán boä hôn phöông phaùp treân.  II.3. Phöông phaùp laäp trình ñôn theå: Chöông trình laø moät heä thoâng caùc ñôn theå (module).  Moãi ñôn theå laø moät heä thoáng thuû tuïc, haøm coù cuøng yù nghóa naøo  ñoù. Moãi thuû tuïc vaø haøm laø moät daõy caùc leänh. Caùc ñôn theå coù ñöôïc löu tröõ vaø bieân dòch phaân caùch, neân deã  daøng laép gheùp. Tuy nhieân phöông phaùp naøy coøn thieáu töï nhieân, ngaøi ra neáu chöông trình quaù roäng vaø quaù saâu thì khoâng theå quaûn lyù ñöôïc. II.4. Phöông phaùp laäp trình höôùng ñoái töôïng: Chöông trình laø moät heä thoáng caùc ñoái töôïng, caùc ñoái töôïng  trong thöïc teá ñöôïc dieãn taû baèng ngoân ngöõ tin hoïc. Laäp trình laø ñi xaùc ñònh nhöõng ñoái töôïng cuøng nhöõng quan heä  cuûa chuùng. Tính töï nhieân cuûa phöông phaùp naøy laøm noù trôû neân sinh ñoäng,  moãi ñoái töôïng coù thuoäc tính vaø haønh ñoäng rieâng nhö trong thöïc teá do ñoù deã hình dung, deã quaûn lyù. Ngoaøi ra, nhôø döïa treân caùc ñoái töôïng neân tính tieán hoùa vaø môû roäng raát cao.
  5. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O . N N y y bu bu 35 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k Trong phaàn vieát chöông trình giao dieän vi tính, ngöôøi vieát ñaõ choïn phöông phaùp laäp trình höôùng ñoái töông. Nhôø nhöõng öu ñieåm treân, phöông phaùp naøy cho pheùp boå sung moät caùch deã daøng, taïo ñieàu kieän thuaän lôïi cho vieäc boå sung sau naøy neáu caàn. III. PHÖÔNG PHAÙP LAÄP TRÌNH HÖÔÙNG ÑOÁI TÖÔÏNG TRONG C III.1. Caùc khaùi nieäm: Theá giôùi thöïc Phöông phaùp laäp trình Ngoân ngöõ laäp trình Ñoái töôïng baát kyø trong theá Ñoái töôïng Bieán coù kieåu lôùp giôùi thöïc (töông töï kieåu caáu truùc) Khaùi nieän chung cuûa moät Lôùp ñoái töôïng Kieåu lôùp(Class-töông töï ñoái töông kieåu caáu truùc) Thuoäc tính ñöôïc quan taâm Thuoäc tính Thaønh phaàn döõ lieäu cuûa cuûa ñoái töôïng kieåu lôùp Khaû naêng coù theå thöïc hieän Haønh ñoäng Thuû tuïc, haøm cuûa kieåu lôùp cuûa moät ñoái töông III.2. Phöông phaùp: III.2.1. Xaùc ñònh caùc lôùp ñoái töôïng, quan heä qua caùc lôùp naøy (xaây döïng sô ñoà lôùp) III.2.2. Thieát keá caùc lôùp (bieåu dieãn treân maùy tính) Thaønh phaàn döõ lieäu (thuoäc tính).  Thaønh phaàn xöû lyù (haønh ñoäng).  III.2.3. Caøi ñaët caùc lôùp: Vieát haøm main() III.2.4. Thöû nghieäm. IV. Thöïc hieän vieát chöông trình DownLoad: IV.1. Yeâu caàu cuûa giao dieän:  Cho pheùp choïn file seõ truyeàn.  Baèng caùch goõ vaøo teân file  Baèng caùch click chuoät ñeå choïn  Xem tröôùc vuøng nhôù caàn thieát seõ söû duïng ôû RAM ôû Kit 8085  Choïn coång truyeàn.  Truyeàn file coù kieåm tra. IV.2. Choïn ngoân ngöõ laäp trình:  Choïn ngoân ngöõ C vieát ôû moâi tröôøng Dos  Lyù do: yeâu caàu thieát bò (maùy tính) khoâng cao, phuø hôïp kieán thöùc ngöôøi vieát.  Öu ñieåm: C laø moät coâng cuï laäp tình goïn nheï, chaïy nhanh, hieäu quaû vaø kheùp kín. Vì söû duïng C ôû moâi tröôøng Dos neân khoâng caàn phaûi kieåm soaùt caùc driver nhö neáu vieát ôû moâi tröôøng Windows. Ngoân ngöõ C cho pheùp truy caäp tröïc tieáp caùc port, deå daøng kieåm soaùt töøng bit döõ lieäu.  Khuyeát ñieåm: Vuøng nhôù troáng ôû moâi tröôøng Dos chæ coù 640Kbyte, vaø sau khi khôûi ñoäng xong (ôû maøn hình dos) thì chæ coøn laïi treân döôùi 400Kbyte, khoâng cho pheùp taïo moät giao dieän phöùc taïp. Ñoä phaân giaûi ôû cheá ñoä graph trong Dos khoâng theå so saùnh vôùi moâi tröôøng Windows.
  6. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O . N N y y bu bu 36 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k IV.3. Chöông trình Download: Danh saùch caùc lôùp: Teân lôùp Coâng duïng Button.hpp Taïo caùc nuùt nhaán, vaø chöùa caùc haønh ñoäng lieân quan Disklist.hpp Lieät keâ caùc oå ñóa trong maùy, vaø chöùa caùc haønh ñoäng lieân quan List.hpp Ñeå veõ baûng lieät keâ caùc thö muïc vaø file, vaø chöùa caùc haønh ñoäng lieân quan Mouse.h Chöùa caùc thao taùc veà chuoät Screen.h Chöùa caùc tham soá veà giao dieän maøn hình, vaø chöùa caùc haønh ñoäng lieân quan Textbox.hpp Veõ khung nhaäp lieäu (teân file, loaïi file,..) , vaø chöùa caùc haønh ñoäng lieân quan Xuat.hpp Chöùa caùc thao taùc, haønh ñoäng lieân quan ñeán truyeàn file Löu ñoà cuûa haøm main(): Begin InitGraphics() InitValues(…) InitScreen() InitMouse(…) S Khôûi taïo CT baùo loãi thaønh coâng Ñ Ñoùng cheá ñoä Mainpro() ñoà hoïa Hình 13: löu ñoà haøm Main() cuûa chöông trình Thoaùt closegraph() DownLoad. Giaûi thích löu ñoà: End
  7. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O . N N y y bu bu 37 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Chöông trình baét ñaàu ôû begin.  InitGraphisc():Khôûi taïo cheá ñoä ñoà hoïa, vì chöông trình naøy coù söû duïng maøn hình ôû cheá ñoä ñoà hoïa trong moâi tröôøng Dos. Neáu khôûi taïo khoâng thaønh coâng thì thoâng baùo loåi khôûi taïo vaø thoaùt khoûi chöông trình.  InitValues(…): haøm naøy coøn khôûi taïo caùc giaù trò ban ñaàu cho maøn hình: kích thöôùc cöûa soå, kích thöôùc kyù töï.  InitScreen(): Veõ maøn hình vôùi caùc giaù trò ñaõ khôûi taïo  InitMouse(): Khôûi taïo chuoät.  Khôûi taïo thaønh coâng: kieåm tra, neáu khôûi ñoäng chuoät thaønh coâng thì tieáp tuïc coâng vieäc, neáu khoâng thaønh coâng thì xuaát ra thoâng baùo loãi vaø thoaùt khoûi chöông trình.  MainPro laø chöông trình quaûn lyù moïi thao taùc cuûa toaøn boä chöông trình, töø caùc thao taùc nhaäp xuaát ñeán caùc thao taùc löïa choïn caùc tuøy choïn.  Closegraph(): Ñoùng cheá ñoä ñoà hoïatröôùc khi thoaùt khoûi chöông trình.  End: keát thuùc chöông trình. Haøm Main() naøy ñöôïc vieát baèng ngoân ngöõ C : void main(void) { InitGraphics(); InitValues("Chuong trinh truyen du lieu ra RAM"); InitScreen(); if (!InitMouse(&MainWindow.rViewPort)) { OutMessage("Mouse driver not found. Init mouse and return"); getch(); closegraph(); exit(1); } ShowMouse(); MainProgram(); closegraph(); } void main(void): void cho bieát raèng haøm main() khoâng traû veà moât giaù trò naøo, nghóa laø trong haøm main naøy khoâng coù leänh return() hoaëc leänh laø moät leänh return khoâng coù tham soâ. (void) cho bieát haøm main khoâng caàn ñoái soá ñöa vaøo. Löu ñoà haøm Mainpro(): Begin Khôûi taïo caùc giaù trò cho caùc oâ nhaäp text Khôûi taïo caùc giaù trò cho caùc nuùt choïn A
  8. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N y y . LUAÂÄN VAÊN TOÁT NGHIEÄP bu bu 38 to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k A Xuaát caùc oâ nhaäp text ra maøn hình Xuaát caùc nuùt choïn ra maøn hình GetEvent() Goïi chöông trình Click vaøo nhaäp vaøo ñöôøng daãn oâ Open File Click Nuùt Goïi chöông trình pull down xuaát cöûa soå choïn file Xaùc ñònh Click nuùt Send file choïn Click nuùt Xaùc nhaän Exit thoaùt Truyeàn Return file Nhaán Esc Hình 14: Löu ñoà cuûa haøm MainPro(). Giaûi thích löu ñoàhaøm MainPro():
  9. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W O O N N . y y bu bu 39 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Khôûi taïo caùc giaù trò cho caùc oâ nhaäp text: treân maøn hình seõ coù khung cho pheùp goõ vaøo teân file, chöông trình con naøy seõ khôûi taïo caùc toïa ñoä, maøu chöõ cho text.  Khôûi taïo caùc giaù trò cho caùc nuùt choïn: cuõng gioáng nhö treân, nhöng ñoái vôùi caùc nuùt Send, Exit vaø nuùt Pulldown.  Xuaát caùc oâ nhaäp text ra maøn hình.  Xuaát caùc nuùt choïn ra maøn hình.  GetEvent: chöông trình con laán bieán coá chuoät. Bieán coá naøy chöùa caùc thoâng tin veà toïa ñoä chuoät, phím naøo cuûa chuoät ñöôïc click, thôøi gian click laàn cuoái, … ñeå xaùx ñònh caùc leänh keá tieáp caàn thöïc hieän.  Click vaøo oâ Open File: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa oâ Open file thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän chöông trình con nhaäp vaøo file caàn xuaát. Ngöôïc laïi thì boû qua.  Click vaøo nuùt Pulldown: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Pulldown thì keát quaû click vaøo oâ naøy laø TRUE, goïi chöông trình xuaát ra cöûa soå choïn File, ngöôïc laïi thì boû qua.  Click nuùt Send: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Send thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän xaùc nhaän file xuaát ñaõ nhaäp vaøo chöa, neáu file xuaát chöa nhaäp vaøo thì baùo loãi vaø boû qua leänh Send, neáu file xuaát ñaõ coù teân roài thì xuaát file.  Click nuùt Exit: neáu bieán coá click chuoät xaåy ra taïi toïa ñoä cuûa cuûa nuùt Exit thì keát quaû click vaøo oâ naøy laø TRUE, thöïc hieän xaùc nhaän muoán thoaùt khoûi chöông trình, neáu xaùc nhaän ñuùng thì thoaùt, ngöôïc laïi thì boû qua leänh Exit.  Nhaán Esc: neáu ngöôøi duøng nhaán vaøo nuùt Esc treân baøn phím thì bieán coá Nhaán Esc seõ laø TRUE, thöïc hieän xaùc nhaän muoán thoaùt khoûi chöông trình, neáu xaùc nhaän ñuùng thì thoaùt, ngöôïc laïi thì boû qua leänh thoaùt baèng nuùt Esc. Sau ñoù, chöông trình laïi thöïc hieän voøng laëp taïi haøm laáy bieán coá chuoät cho tôùi khi coù thao taùc môùi. Giaû söû click chuoät vaøo oâ Open File, oâ naøy seõ ñoåi traïng thaùi, caùc kyùtöï trong oâ seõ ñoåi maøu baùo traïng thaùi chôø nhaäp, nhaäp vaøo moät teân fie coù phaàn môû roäng laø “prn” vôùi ñaày ñuû ñöôøng daãn, sau ñoù goõ phímEnter thì teân file seõ ñöôïc löu vaøo moät bieán toaøn cuïc, vaø caùc ñòa chæ ñaàu vaø ñòa chæ cuoái cuûa chöông trình ngoân ngöõ maùy seõ ñöôïc hieän leân ôû khung “Free memory request”, vaø moät doøng thoâng baøo beân döôùi baùo cho bieát click Send ñeå truyeàn file. Giaû söû tieáp tuïc click Send thì moät thoâng baùo xaùc nhaän seõ xuaát hieän, muoán xaùc nhaän coù chaéc laø ngöôøi duøng muoán truyeàn file khoâng. Neáu traû lôøi Ok thì chöông trình truyeàn file seõ ñöôïc goïi thi haønh. Sau ñaây laø löu ñoà cuûa chöông trình con thöïc hieän vieäc truyeàn File. Giaûi thích löu ñoà:  Goïi chöông trình caét file: chöông trình caét file thöïc chaát laø moät chöông trình con coù nhieäm vuï loïc ra nhöõng thoâng tin quan troïng trong file “x.prn” seõ ñöôïc truyeàn ñi, vaø löu chuùng trong moät file “x.tmp” chæ xuaát hieän trong khoaûng thôøi gian chöông trình ñang caét file. Sau ñoù file “x.tmp” naøy seõ bò xoaù ñi khi quaù trình truyeàn file hoaøn taát. Quaù trình truyeàn file phaûi söû duïng böôùc naøy ñeå caùc quaù trình baét tay giöõa maùy tính vaø Kit ñöôïc oån ñònh (thöïc nghieäm), vaø vieäc vieát chöông trình ñöôïc roõ raøng hôn.
  10. h a n g e Vi h a n g e Vi XC XC e e F- F- w w PD PD er er ! ! W W . O O N N y y bu bu 40 LUAÂÄN VAÊN TOÁT NGHIEÄP to to k k lic lic C C w w m m w w w w o o .c .c .d o .d o c u -tr a c k c u -tr a c k  Goïi chöông trình xuaát file: chöông trình naøy seõ ñoïc file coù teân laø “x.tmp” ñöôïc taïo töø chöông trình caét file. Chöông trình naøy seõ tuaàn töï ñoïc file, nhaän tín hieäu baét tay vaø gôûi döõ lieäu cho ñeán khi heát file.  Trong quaù trình truyeàn file, neáu coù söï coá, giaû söû khoâng baét tay ñöôïc vì lyù do naøo ñoù, thì chöôn trình seõ ñôïi, thôøi gian keùo daøi seõ coi nhö vieäc truyeàn file bi loãi, vaø thoâng baùo loãi seõ xuaát hieän.  Neáu truyeàn thaønh coâng thì thoâng baùo hoaøn taát coâng vieäc.  Return: Quay trôû veà chöông trình MainPro. Trong haøm MainPro(), caàn quan taâm chöông trình con truyeàn file. Begin Goïi chöông trình Caét file Goïi chöông trình xuaát file Sai Thaønh coâng Ñuùng Thoâng baùo hoaøn Thoâng baùo loãi taát coâng vieäc coâng vieäc Return. Hình 15: Löu ñoà chöông trình con coù nhieäm vuï truyeàn file. Trong phaàn naøy, ta quay laïi coâng vieäc caét file ñaõ giôùi thieäu ôû muïc III cuûa chöông V. Chöông trình con caét file laø ñeå taïo ra moät file taïm thôøi coù phaàn môû roäng .tmp. file naøy seõ laø moät file coù caáu truùc ñôn giaûn hôn file .prn raát nhieàu nhaèm ñeå giuùp cho vieäc truyeàn file theâm ñôn giaûn. Tröôùc heát haõy khaûo saùt moät file *.prn, file naøy ñöôïc dòch ra bôûi 1 chöông trình dòch Assembler. Trong chöông trình, byte leänh ñeàu tieân baét ñaàu ôû ñòa chæ 0000hex. Nhaän xeùt raèng moãi doøng leänh baét ñaàu bôû moät ñòa chæ boä nhôù, vaø lieàn sau ñòa chæ naøy laø moät daáu nhaùy ñôn, maø daáu nhaùy ñôn ñaàu tieân chæ xuaát hieän taïi ñòa chæ cuûa doøng leänh ñaàu tieân.  ñeå tìm ñòa chæ ñaàu tieân thì coù theå tìm daáu nhaùy ñôn ñaàu tieân.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2