Giáo trình Kỹ thuật vi điều khiển - Chương III: Xây dựng phần mềm

pdf 12 trang ngocly 700
Bạn đang xem tài liệu "Giáo trình Kỹ thuật vi điều khiển - Chương III: Xây dựng phần mềm", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_ky_thuat_vi_dieu_khien_chuong_iii_xay_dung_phan_m.pdf

Nội dung text: Giáo trình Kỹ thuật vi điều khiển - Chương III: Xây dựng phần mềm

  1. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm Ch−ơngIII xây dựng phần mềm Biênsoạn:LâmtăngĐức –LêTiếnDũng –BộmônBộmô nnnTĐH Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 68
  2. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm Ch−ơngIII xây dựng phần mềm 3.1Ch−ơngtrìnhMONITORchoKIT Doch−ơngtrìnhMONITORcủahệthốngphứctạpvkhálớnnêntasẽtổchức thnh nhiều module nhỏ ghép lại với nhau. Mỗi module thực hiện mỗi chức năng riêng,cácmoduletrongch−ơngtrình: +ModulethựchiệnviệchiểnthịLCD. +Modulequảnlýbnphím. +Modulequảnlýviệcđọc/ghidữliệutrongEEPROMvRAM. +Moduletạothờigiantrễ. +Ch−ơngtrìnhchính(Main). +Moduleđiềukhiểntruycậpcácthanhghiđặcbiệtvcácônhớbêntrongchip viđiềukhiểnchính. +ModuletruyềnthônggiaotiếpvớimáytínhPC. Mnguồncủach−ơngtrìnhhệđiềuhnhđ−ợcgiớithiệuởphầnphụlụccủađồ án. Sauđâyll−uđồthuậttoáncủach−ơngtrìnhMONITOR: Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 69
  3. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm L−uđồthuậttoáncủamoduleMain:khởitạocácthiếtđặtbanđầuchoKITv cácthiếtbịngoạivi,hiểnthịmnhình1. Bắtđầu Khởitạocácbiến,cácthiếtlập banđầucho8255 KhởiđộngLCD HiểnthịMAINMENU Ciđặtcácngắt Chophépngắtngoi0 Chophépngắtnốitiếp NY Hiểnthị EEPROM Hiểnthị Mnhình1 trống? Mnhình2 Hiểnthị mnhình4 CallStep Key=F2? Key=F1? CallDEMO Mode Prog. Hiểnthị mnhình4 Key=F2? CallDEMO Prog. Kếtthúc Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 70
  4. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm L−uđồcácch−ơngtrìnhDEMO(Mnhình4) Bắtđầu Hiểnthịmnhình1 Xóabyteđệmbnphím Byteđệm ChạyLedđơn Byteđệm BUF=1 DEMO BUF=18 Byteđệm ChạyLed7 Byteđệm BUF=2 đoạnDEMO BUF=18 Byteđệm ChạyLedma Byteđệm BUF=3 trậnDEMO BUF=18 Byteđệm ChạyBnphím, Byteđệm BUF=4 LCDDEMO BUF=18 Byteđệm ChạyADC,DAC Byteđệm BUF=5 DEMO BUF=18 Byteđệm ChạySTEPPER Byteđệm BUF=6 DEMO BUF=18 Byteđệm ChạyRS232 Byteđệm BUF=7 DEMO BUF=18 Byteđệm Hiểnthịmn BUF=18 Kếtthúc (BSP) hình1 Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 71
  5. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm L−uđồch−ơngtrìnhMONITORchạyởchếđộgỡrốiSTEPMODE(Mnhình3) Bắtđầu Khởitạocácbiến L−ucácthanhghicầnthiết GiảlậpCPUnh−ởtrạngthái RESET HiểnthịMnhình3 (Cácthanhghiđặcbiệt SFR,R0R7 ) Hiểnthịgợiýcho cáclệnhF1,F2,BSP Xóabyteđệmbnphím BUF Y Chờvxửlýnhập N BUF=16 1bytevobộ BUF=19 (F1) (ENTER) đệmBYTE1 InragiátrịBIT cầnxem YES (F1) Hỏicósửa không? Chờvxửlý ENTER=không nhập1BIT sửa NO (ENTER) BUF=19 N (ENTER) Y Cậpnhậtvùngnhớ 1 2 Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 72
  6. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm 1 2 Y Chờvxửlýnhập N BUF=17 2bytevobộ BUF=19 (F2) (ENTER) đệmBYTE1,2 N InragiátrịBYTE cầnxem YES (F1) Hỏicósửa Chờvxửlý không?ENTER =khôngsửa nhập1BYTE NO (ENTER) BUF=19 N (ENTER) Y N P1.2=0 P1.2=1 (STEP) (STEP) Cậpnhậtvùngnhớ N Y Delaychốngrung RETI Kếtthúc Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 73
  7. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm L−uđồch−ơngtrìnhngắtngoi0(INT0)củabnphím Bắtđầu Nhậnmphím L−uvobyteđệmbnphím Chânngắt N ngoi1=1? Y Kếtthúc 3.2Ch−ơngtrìnhquảnlíthiếtbị 3.2.1Ch−ơngtrìnhquétbnphím Nh−đtrìnhbyởch−ơng2,bnphímsửdụngtrongbộKITnygồmcó20 phím,16phímđầutiênđ−ợcsắpxếptheokiểumatrậnv4phímcuốicùngđ−ợcxếp theomộtcộtnốiđấtchung.TrênbnphímcủabộKIT,4phímtrênmộtcộtnốiđất chunglcácphímchứcnăng:F1,F2,BACKSPACEvENTER.Cácphímtừ09v AFdùngđểnhậpliệu,cácphímchứcnăngcótácdụngkhácnhautùytheongữcảnh củamnhình,gợiýtácdụngcủacácphímbấmhiểnthịtrênmnhình,điềunygiúp việclmquenvthínghiệmtrênKITrấtthuậntiệnvdễdngchong−ờihọc,nhấtl khithínghiệmởchếđộdebug. L−uđồthuậttoáncủach−ơngtrìnhquétbnphímnh−sau: Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 74
  8. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm L−uđồthuậttoáncủach−ơngtrìnhquétbnphím: Bắtđầu Xuất1ratấtcả hngvcột Hng Xuấtphím 1=1? 16(F1) Y Hng Xuấtphím 2=1? 17(F2) Tấtcả N hng=1? Y Y Hng Xuấtphím 3=1? 18(BSP) Y Hng Xuấtphím 4=1? 19(ENTER) Nốiđấthng1 Y Quaytừngbitcủabyte Tấtcả chứacáccộtlêncờC N Tăng C=0? cột=1? GánDPTRchođịachỉ DPTR hng1 Y Y Trabảng Nốiđấthng2 Xuấtmphím Quaytừngbitcủabyte N Tấtcả chứacáccộtlêncờC Tăng C=0? cột=1? GánDPTRchođịachỉ DPTR hng2 Y Y Trabảng Nốiđấthng3 Xuấtmphím Quaytừngbitcủabyte Tấtcả chứacáccộtlêncờC N Tăng C=0? cột=1? GánDPTRchođịachỉ DPTR hng3 Y Y Trabảng Nốiđấthng4 Xuấtmphím Quaytừngbitcủabyte Tấtcả chứacáccộtlêncờC N Tăng C=0? cột=1? GánDPTRchođịachỉ DPTR hng4 Y Y Trabảng Xuấtmphím Kếtthúc Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 75
  9. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm 3.2.2Ch−ơngtrìnhđiềukhiểnhiểnthịLCD ĐểchoLCDcóthểhoạtđộng,đầutiêntaphảikhởitạoLCD,báochonóbiếtsố hng,sốkýtựhiểnthịtrênmộthng.Cácdữliệuđiềukhiểnlầnl−ợtđ−ợcchuyểnvo DataBuscủaLCDl38H,0EH,v06H.SaucáclệnhkhởitạoLCDnytamớicóthể hiểnthịkýtựlêntrênmnhìnhLCD. Cácl−uđồlmviệcvớiLCDnh−sau: KhởitạoLCD ChờLCDsẵnsnglmviệc Bắtđầu Bắtđầu Truycập thanhghilệnh RS=0 Gửilệnhđiềukhiển38H Gửilệnhđiềukhiển08H Gửilệnhđiềukhiển01H Gửilệnhđiềukhiển06H Chuyểnsangchếđộ Gửilệnhđiềukhiển0EH đọcdữliệuR/W=1 Kếtthúc Đ−a1xungtừthấplên caoởchânEcủaLCD đểđọcdữliệu BitD7=1? Kếtthúc Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 76
  10. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm GửilệnhđiềukhiểnraLCD InmộtkítựraLCD Bắtđầu Bắtđầu ĐợiLCDsẵnsng ĐợiLCDsẵnsng nhậnlệnh lmviệc Đ−adữliệuracácchân Xuấtmlệnh dữliệucủaLCD Chọnthanhghi Truycậpthanhghi dữliệuRS=1 lệnhRS=0 Chuyểnsangchế độghiR/W=0 Chophépghira LCDR/W=0 Gửi1xungtừcao xuốngthấpđến chânEcủaLCDđể Đ−a1xungtừcao ghidữliệu xuốngthấpởchân Eđểchốtdữliệu Kếtthúc Kếtthúc Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 77
  11. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm 3.3Ch−ơngtrìnhgiaotiếpmáytính Ch−ơngtrìnhgiaotiếpgiữabộKITvớimáytínhđ−ợcviếtbằngngônngữDelphi Giaodiệncủach−ơngtrìnhtrênmáytínhPCnh−hìnhvẽ - Ch−ơngtrìnhchophépnạpch−ơngtrìnhcủang−ờisửdụngvoEEPROM, sauđósẽchạytrênKIT,cóthểchạyđộclập,tứckhôngcósựđiềukhiểncủa MONITORchếđộSTEPhoặcchạytừnglệnhđểdebugvtheodõigiátrịbộnhớ, cácthanhghiđặcbiệtSFR,R0R7trênmnhìnhLCDcủaKIT. - Trêngiaodiệncủach−ơngtrìnhcóthểdownloadfiledạngHexacủach−ơng trìnhxuốngbộKITvcóthểuploadnộidungbộnhớEEPROMcủaKIT. - Cácnútchứcnăngtrêngiaodiện: Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 78
  12. GiáotrìnhmônKỹthuậtViĐiềuKhiểnCh−ơng3:Xâydựngphầnmềm + OPENandCOMPILE :Mởmộtfilemlệnhdạnghợpngữ(*.asm)v biêndịch(Compile)thnhfileHEXhoặcfileđcompiled−ớidạngHEXA(*.hex)để nạptrựctiếpxuốngKIT.Kếtquảcompileđ−ợchiểnthịtrongcửasổCompileLog. + OPENHexfile :Mởmộtfilemlệnhđđ−ợcbiêndịchdạnghexa (*.hex)vdịchng−ợc(Disasemble)thnhfilemlệnhASM(*.d51).Kếtquảdịch ng−ợchiểnthịtrongcửasổASMcode,mmáycủabộnhớhiểnthịtrongcửasổ Opcode.Kếtquảcompileđ−ợchiểnthịtrongcửasổCompileLog. + DOWNLOAD :ChophépdownloadfileHexđ−ợcmởhoặcCompiletừ filemlệnhASMxuốngbộnhớcủaKIT. + UPLOAD :Chophépđọcnộidungch−ơngtrìnhcủang−ờisửdụngđ đ−ợcnạpvobộnhớcủaKITtừlầnnạptr−ớc. + EraseEEPROM: ChophépxóaEEPROM. Ch−ơngtrìnhMONITORđ−ợcviếtd−ớidạnghợpngữ(Assembly),banđầukhi thamkhảocóthểgâykhókhănchong−ờiđọctuynhiênhợpngữlmchong−ờihọc cóthểhiểurõvnắmvữngvềcấutrúcphầncứngcủahọviđiềukhiển8051hơnnh− cáchtổchứcbộnhớ,cáchthựchiệnmộtngắt,vịtrícủacácvectorngắt,cáchoạtđộng địnhthời,hiểurõvịtríbảnđồbộnhớ,cácthanhghiđặcbiệtSFR Ngoirakhisử dụnghợpngữtakhôngphảiphụthuộcvocáctrìnhbiêndịchhỗtrợbằngngônngữ bậccaonh−C,Basic Sauđâytađixâydựngcácnộidungthínghiệmcầnthiếtchong−ờihọcđểqua đóng−ờihọctừngb−ớcnắmrõcấutrúcvcáchlậptrìnhchohọviđiềukhiển8051. Biênsoạn:LâmtăngĐức –LêTiếnDũng – BộmônTĐHTrang 79