17
Người báo cáo: Nguyn Trung Chính Tài liu: TUT02.03 Ngày: 2/9/2006 Trang: 1/17 Tutorial 02.03 Gi đến: Đoàn Hip, Doãn Minh Đăng, [email protected] Ni dung: Bài 2: CHƯƠNG TRÌNH DELAY MICROSOFT WORD Tóm tt: Tutorial post lên picvietnam, topic “PIC16F877A TDTI KHÓ” thuc lung “CƠ BNVVI ĐIU KHIN VÀ PIC” vini dung: Vài nét sơ lượcvmc đích và tác dng ca chương trình delay. - Phân tích source code mtschương trình delay. - Tp trung phân tích, khai thác chương trình delay ca Nigel như mtdng chương trình delay được chun hóa. Tutorial này sdng khá nhiu các kiến thc trong tutorial ca Nigel. 1. Vài nét sơ lượcvchương trình delay. 1.1. Chu kì xung clock và chu kì lnh Trong phn này ta sbàn đếnmt vài kiến thccơ sphcvcho vic viết chương trình delay. Cthlà tìm hiuvchu kì xung clock và chu kì lnh trong vi điu khin PIC. Ta đã biết để vi điu khin hot động đượccn phi cung cpmt ngun xung clock tbên ngoài. Đốivi vi điu khin PIC, ngun xung clock có thlà mtmch dao động RC đơn gin, mt thch anh,...Tt nhiên, yêu cuca ngun xung clock phi là càng n định càng tt. Thông thường, ngun xung sdng cho vi điu khin nói chung và PIC nói riêng là thch anh vi các ưu đim giá thành không cao, khá n định và rt thun tin trong vic tính toán, thiếtkế mch ng dng và chương trình cho vi điu khin. Trong bài này, ta cũng sdng thch anh làm ngun xung cho vi điu khin. Mi thch anh có mttnsdao động cố định, ta gitnsốđó là f0, thông thường f0 có các tns4 MHz, 10 MHz, 20 MHz, ... Tùy theo mi loi vi điu khin mà yêu cu đốivi f0 có thkhác nhau. Đốivi vi điu khin PIC16F877A, tnsdao động f0 phi nhhơn hocbng 20 MHz, đây cũng là tnshot động ti đa mà đascác vi điu khin PIC thuc dòng midrange có khnăng đáp ng được. Chu kì dao động ca thch anh ta gi là t0 được tính theo công thc: t0 = 1/f0 (1) Rtcơ bn! Không có gì cn chú thích thêm cho công thc này.

Chuong Trinh Delay

  • Upload
    ti-ger

  • View
    77

  • Download
    1

Embed Size (px)

DESCRIPTION

ok

Citation preview

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 1/17

    Tutorial02.03

    Gin: onHip,DonMinhng,[email protected]

    Nidung: Bi2:CHNGTRNHDELAY

    MICROSOFTWORD

    Tmtt:Tutorialpostlnpicvietnam,topicPIC16F877ATDTIKHthuclungCBNV

    VIIUKHINVPICvinidung: Vintslcvmcchvtcdngcachngtrnhdelay.- Phntchsourcecodemtschngtrnhdelay.- Tptrungphntch,khaithcchngtrnhdelaycaNigelnhmtdngchngtrnhdelay

    cchunha.TutorialnysdngkhnhiucckinthctrongtutorialcaNigel.

    1. Vintslcvchngtrnhdelay.1.1. Chukxungclockvchuklnh

    Trongphnny tasbnnmtvikin thccsphcvchovicvitchngtrnhdelay.CthltmhiuvchukxungclockvchuklnhtrongviiukhinPIC.

    Tabitviiukhinhotngccnphicungcpmtngunxungclocktbnngoi.iviviiukhinPIC,ngunxungclockcthlmtmchdaongRCngin,mtthchanh,...Ttnhin,yucucangunxungclockphilcngnnhcngtt.

    Thng thng,ngunxungsdngchoviiukhinnichungvPICniring lthchanhviccuimgithnhkhngcao,khnnhvrtthuntintrongvictnh ton, thitkmchngdngvchng trnhchoviiukhin.Trongbiny, tacngsdngthchanhlmngunxungchoviiukhin.

    Mithchanhcmttnsdaongcnh,tagitnslf0,thngthngf0ccctns4MHz,10MHz,20MHz,...Tytheomiloiviiukhinmyucuivif0cthkhcnhau.iviviiukhinPIC16F877A,tnsdaongf0 phinhhnhocbng20MHz,ycng l tnshotng tiamasccviiukhinPICthucdngmidrangeckhnngpngc.Chukdaongcathchanhtagilt0vctnhtheocngthc:

    t0=1/f0 (1)Rtcbn!Khngcgcnchthchthmchocngthcny.

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 2/17

    Tacngbitrngchailikintrcdngtchcmtviiukhin,lkin

    trcVonNeumanvkintrcHavard.ViiukhinPICctchctheolikintrcHavard.Takhngisuvocc likintrcny,mchcnbitrngvilikintrcHavard,mi lnhsc thc thixong trongmtkhong thigian lmtchuk lnh.Khongthigiannyluncnhvphthucvochukcaxungclock.

    Tacmtnhnghamang tnh ...ikhinhsau:chuk lnhcaviiukhinPIClkhongthigianmviiukhinPICthcthixongmtlnh.Tagithigiancamtchuklnhlti.

    thcthixongmtlnh,viiukhinPICcnn4chukxungclock.Nhvythigianthcthixongmtlnhsctnh:

    ti=4t0 (2)

    Thaycngthc(1)vocngthc(2)tacccngthctnhthigiancamtlnh(mtchuklnh)nhsau:

    ti=4/f0 (3)

    Vd:nutasdngthchanhloi4MHzththigianthcthimtlnhcaviiukhinl:

    ti=4/(4106)=1sthuntinchovictnhtonvthitkchngtrnhdelay,tassdngloithch

    anh4MHzchomchngdng,vnhccbnthy,thigianthcthimtlnhcaviiukhinlcdl1s.Quchn!1.2. Mcchvtcdngcachngtrnhdelay

    Nhtathymc1.1,thigianthcthilnhcamtviiukhinlrtnhanhsovitccmnhnsvthintngcaconngi.iunygynhiukhkhnchovicgiaotipgiaconngivimtviiukhincngnhkhkhntrongviccmnhnbnggicquanktquccthaotccamtviiukhin.

    Vdu,tadngviiukhiniukhinmtLEDchpttlintc.Vithaotcnyviiukhinchcnhaichuklnhlhonttmtchukchptt,vthigiancamichuksl2s(khisdngthchanh4MHz),vtrongmtgiy,LEDschptt500000ln.Trongkhimtngichcthnhnbitc24hnhnhtrongmtgiy.iunycnghal,mtngingoihnhtinh,viconmtctcx lhnhnhnhanhhn,khichngkinhintngtrnsnirng:Eh,ngitrit,tithyccigangchptt.Cnngitrit,vitcxlhnhnhcamtl24hnhtrong1giy,khichngkinhintngtrnsnirng:Khng,ngingoihnhtinh,tithynsnglintcch!.

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 3/17

    Nhvy, lmsaomtngicmnhncLEDangchptt,cchduynht l

    phigimslnchptttrong1giynhhn24,ccthaotcviiukhinhinthchoconngithychintngtrnlnltsl:

    - BtLEDsngln- ChmtchtchotikhimtnhnchnhnhLEDsng.- TtLED- ChmtchtchotikhimtnhnchnhnhLEDtt.- Lpliccthaotctrn.Nhtabit,doviiukhinkhngccilnhgilchmtcht,chonnkhi

    nimchngtrnhdelaymicphtsinhthchinqutrnhch.

    Cthnichngtrnhdelayngmtvaitrquantrngtrongccthaotchinth.Bncnh,chngtrnhdelaycncvaitrquantrngtrongvicgiaotipviccthitbkhc,khimtcxlcaviiukhinvccthitbkhngngnht.Ngoira,tacn sdng chng trnhdelay trongnhiu tnhhung thc t cn ra lnh chovi iukhinphich.

    2. Xydngchngtrnhdelay2.1. Cclnhsdngchochngtrnhdelay

    Ngoicclnhccpntrongbi1,tacnsdngthmcclnhsauchochngtrnhdelay:

    LnhDECFSZ

    Cphp: DECFSZ thanh_ghi,noi_den

    Lnh1

    Lnh2

    Tcdng:Gimgitrchatrongthamsthanh_ghivsosnhvi0.

    - Nugitrsaukhigimkhc0,lnh1cthcthi.

    - Nugitrsaukhigimbng0,lnh1khngcthcthivcthaybnglnhNOP(khnglmgc).

    Thamsnoi_dendngxcnhnilugitrthanhghithanh_ghisaukhigim.Khikhngsdng thamsnoi_den, trnhbindchsmcnh lktqucchatrongthanhghiW.

    - Nuthamsnoi_denbng1,ktqucchatrongthanhghithanh_ghi.

    - Nuthamsnoi_denbng0,ktqucchatrongthanhghiW.

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 4/17

    LnhRETURN

    Cphp: RETURN

    Tcdng: trvchngtrnhchnhtchngtrnhcon.

    LnhRETLW

    Cphp: RETLW tham_so (0tham_so255) Tcdng: trvchngtrnhchnhtchngtrnhconvigitrtham_so

    cchatrongthanhghiW. 2.2. Thuttonchochngtrnhdelay

    Tabitphn1,chngtrnhdelaylchngtrnhdngralnhchoviiukhin...chmtcht(tmthinhnghamtcch...ikhinhvy).iunycngngnghavivicralnhchoviiukhinlmmtcngvicvnghanotrongmtkhongthigiandotaquytnh.

    TrongtplnhcaviiukhinPIC,taclnhNOP.Lnhnyctcdungralnhchoviiukhin ...khng lmgc,v thigian thc thi lnhnycng l1chuklnh.Nhuvy,taccnthitphixydngthuttonchochngtrnhdelay,vchcn...NOPlintclxong?Hontonkhngnginnhvy,vkhitasgpphiccvnsau:

    - Thnht,cithuttoncv...khngbnhthng.

    - Thhai,vit chng trnhnhvy th rtmi tay (mun ra lnh chovi iukhinch1ms,bnphivitivit lici lnhNOP ...1000 lnnusdngloithchanh4MHz).

    - Thba,dunglngbnhchngtrnhbphphmmtcch...qung.

    Rrngltakhngthvitchngtrnhdelaytheocch.Vvickhcphcttcccnhcimnutrncnglcctiuchtrachomtchngtrnhdelay,l:ngngonvthuntinchovicsdng.

    Mtphngphpthngsdngvitccchngtrnhdelaylchoviiukhin...nhy tinhy luimyci label.Tuynhin kimsotc thigiandelaydochngtrnhtora,tacntnhtonccgitrtrongchngtrnhmtcchphhp.

    Sauytasdisuvoccthuttondngvitchngtrnhdelayny.

    2.2.1 Thutton1

    TrongthuttonnytasdnglnhDECFSZxydngchngtrnhdelay.

    onchngtrnh1:xtmtoncodenhsau

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 5/17

    MOVLW d20 ;agitr20vothanhghiW

    MOVWF delayreg ;delayreg

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 6/17

    Mun to thigiandelay luhn, taphi tng s lng ccvng lp ln. on

    chngtrnhsauminhhacchtngslngvnglpchochngtrnhdelay:

    onchngtrnh2:

    MOVLW d255 MOVWF delayreg1 ;agitr255vothanhghidelayreg1

    loop DECFSZ delayreg1,1 ;gimgitrthanhghidelayreg1vsosnhvi0 ;gitrsaukhigimluvothanhghidelayreg1

    GOTO loop1 ;nuchabng0nhytilabelloop1 GOTO next ;nubng0chngtrnhdelayhonttloop1

    MOVLW d255 MOVWF delayreg2 ;avothanhghidelayreg2gitr255loop2 DECFSZ delayreg2,1 ;gimgitrthanhghidelayreg2vsosnhvi0 ;gitrsaukhigimluvothanhghidelayreg2

    GOTO loop2 ;nuchabng0thnhynlabelloop2 GOTO loop ;nubng0thnhynlabelloopnext ; cclnhtiptheosauchngtrnhdelay

    Taxtonchngtrnht labelloop1 trc.onchngtrnhnytngtnhonchng trnh1,chonncch tnh thigiandelay trongonchng trnhnykhngcgthayi.GitrNtrongcngthc4stngngvigitrN2avothanhghidelayreg2(255).TagiT2lthigiandelaydoonchngtrnhnytorathT2sctnhnhsau:

    T2=3(N2+1)ti (5) Khigitrtrongthanhghidelayreg2gimv0thcclnhtlabelloopc

    thcthi.thiimnygitrtrongthanhghidelayreg1sgimimtnvvtiptcthcthivnglploop1.NhvysaumtkhongthigianT2,gitritrongthanhghidelayreg1sgimimtnv,vnutagiN1lgitravothanhghidelayreg1thslngimgitrtrongthanhghidelayreg1sl(N1+1).NhvythigiandelayTdoonchngtrnh2toral:

    T=(N1+1)T2=3(N1+1)(N2+1)ti (6)

    Datheoccgitravotrongonchngtrnh2tacthtnhcthigiandelaydoonchngtrnhtrntoranhsau:

    T=3(255+1)(255+1)ti=196608ti

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 7/17

    Nusdng loi thchanh4MHz th thigiandelaydoonchng trnh trn

    toral196608s.

    Nhvy,tyvothigiandelaycnthitvtyvoloithchanhsdngtrongmchmtacthaccgitrN1vN2voccthanhghidelayreg1vdelayreg2mtcchthchhpdavocngthc(6).

    Vd: tnh ton ccgi tr avo thanhghidelayreg1vdelayreg2 thigiandelaydoonchngtrnh2toral90ms.Gistaangsdngloithchanh4MHz.

    Tagiibitonnhsau:doloithchanhtasdngctns4MHznnti=1s.Dotac

    (N1+1)(N2+1)=T/3ti=90103/(31106)=30103

    Nuchngitravothanhghidelayreg2 lN2=199thgitrN1avothanhghidelayreg1sl:

    N1=30103/(199+1)1=149

    Mtimcnch lbncnhvicthamncngthc (6),ccgitrN1vN2phithamniukin:

    0

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 8/17

    MOVWF countb ;agitr1vothanhghicountb

    delay_0

    DECFSZ counta,1 ;gimgitrtrongthanghicountavsosnhvi0

    GOTO $+2 ;nuchabng0,nhytilnhGOTOdelay_0

    DECFSZ countb,1 ;nubng0,gimgitrtrongthanhghicountb

    GOTO delay_0 ;countbsaukhigimcgitrbng0nnlnhny

    ;khngcthcthi

    DECFSZ count1,1 ;gimgitrtrongthanhghicount1

    GOTO d1 ;nhyvlabeld1

    ;cclnhtiptheocachngtrnhchnhsauon

    ;chngtrnhdelay

    TrctintalunlnhGOTO$+2.LnhnyctcdngnhytilnhthhaiktdnglnhGOTO$+2,tclnhynlnhGOTOdelay_0.Hontontng t tac thdng lnhccu trctng tnhynbtcdng lnhnotrongchngtrnhthngquavicthaythhngssaudu$.

    Taxtoncodebtu t labeldelay_0 trc.LnhDECFSZ counta,1mtmtchuk lnh thc thi.Nugi trcha trong thanhghicountachabng0 thlnhGOTO$+2cthcthi.Lnhnymthaichuklnh.Tiptheo,lnhGOTOdelay_0cthcthi.Lnhnycngmthaichuklnh.Sau,gitrtrongthanhghicounta tip tccgim.ny tanhn thyrng,gimmtgi tr trongthanhghicounta,tamtht5chuklnh(1chuklnhcholnhDECFSZcounta,1,2chuklnhcholnhGOTO$+2v2chuklnhcholnhGOTOdelay_0),vdogitravothanhghicountal199nnthigiancnthitthanhghicountagimhtgitrv0l:

    Ta=5(199+1)ti

    Dotaangsdnglaithchanh4MHznnTasmanggitr1000shay1ms.

    Khigitrtrongthanhghicountabng0,lnhGOTO$+2skhngcthcthimthayvollnhNOP,tiptheolnhDECFSZcountb,1scthcthi.Tathygitravothanhghicountbl1nnsaukhigimcountbsbng0nnlnhGOTOdelay_0scthaybnglnhNOPvtiptheo,lnhDECFSZcount1,1scthcthi.Sauchngtrnhquaytrvlabeld1thchinvicnpliccgitrchothanhghicounta,countbvtiptcthcthioncoedetlabeldelay_0.

    Nhvyvicagitr1vothanhghicountbthcchtch lthchinqutrnhchuyntipmikhithanhghicountagimv0.Voncodetlabeldelay_0thcchtltorathigiandelaygnng1msdotabquamtschuklnh

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 9/17

    trongbcchuyntip(lumtlnnaltaangsdngloithchanh4MHz),saugitrtrongthanhghicount1cgim1nv.Vnglpctiptcchonkhigi tr trong thanhghi count1 cgimv0.Khi lnhGOTO d1khngc thc thinavqu trnh to thigiandelaykt thc,cc lnh tip theo trongchngtrnhchnhstiptccthcthi.

    nytacthnhnthyrngcmi1msthgitrtrongthanhghicount1sgimi1nv.Do,muntorabtcmtthigiandelaynolbisca1ms,tachvicagitrtngngvothanhghicount1.Trongvdonchngtrnh3,dotaavothanhghicount1gitr90nnthigiandelaysl90ms.Hontontngtchovictorathigiandelay10ms,50ms,100ms,150ms,200ms,tacngddngnhnthylthigiandelaytiadoonchngtrnhtrntoral255ms.Viccthaotcthngthngdnhchoviiukhin,cthniylthigiandelaylntacthsdng.

    Thutton2tuydihnvsdngnhiuthanhghihnsovithutton1nhngncnhiuuimhnthutton1dotnhlinhngvdsdngcan.Tacthsdngonchng trnhdelaynynhmtchng trnhdelaymuchovicxydngccngdngchoviiukhinPIC.

    Trong trnghpsdng lai thchanhc tnscaohn, tac thkthphaithutton1v2torathigiandelaymongmun.

    3. ngdngTrongccphn trn, tac thhnhdungcmcch, tcdngvmtsgii

    thutchovicxydngmtchngtrnhdelay.Bygillcsdngcckinthcchoccngdngcth.

    ngdng1:Ta s pht trin ng dng u tin cho chng trnh delay tmch nguyn l v

    chngtrnhcxydngtrongbi1.Trongbi1,tathchinvitxutccgitr raPORTBvkim chngbng ccLEDgnvoPORTB.Bygi ta svitchngtrnhchottcccLEDgnvoPORTBchpttsaumikhongthigian100ms.

    Giithutchochngtrnhchccngkhngcgphingbn,ccbcthchinlnltsl:

    - BtttcccLEDPORTB

    - Delay100ms

    - TtttcccLEDPORTB

    - Delay100ms

    - Lpliccthaotctrn

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 10/17

    Chngtrnhscvitnhsau:Chngtrnh2.1:;=============================================================================

    ;WWW.PICVIETNAM.COM

    ;Laptrinh: NGUYENTRUNGCHINH

    ;Ngaybatdau: 23thang01nam2006

    ;Ngayhoanthanh: 23thang01nam2006

    ;Kiemtrachuongtrinh:DoanHiep,DoanMinhDang,

    ; [email protected]

    ;Ngaykiemtra:

    ;SudungvidieukhienMicrochip: PIC16F877A

    title chuongtrinh21.asm

    processor 16f877a

    include

    __CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&

    _XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF

    ;Capnhatvabosung:

    ;Motachuongtrinh: ChuongtrinhdungdedieukhientatcacacLEDganvao

    ; PORTBchoptatlientucsaumoikhoangthoigian100ms.

    ; Khongsudungchuongtrinhcon

    ;Motaphancung: 8LEDduocganvaoPORTBthongquacacdientro,cac

    ; thanhphandikembaogomthachanh,machresetvanguon

    ;=============================================================================

    ;

    ;Khoitaocacbien

    ;

    count1 EQU 0x20 ;cacbiendungchodoanchuongtrinhdelay

    counta EQU 0x21

    countb EQU 0x22

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 11/17

    ;=============================================================================

    ;CHUONGTRINHCHINH

    ;=============================================================================

    ORG 0x000

    GOTO start

    start

    ;

    ;KhoitaoPORTB

    ;

    BCF STATUS,RP1

    BSF STATUS,RP0 ;chonBANK1

    CLRF TRISB ;PORTB

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 12/17

    delay_01

    DECFSZ counta,1

    GOTO $+2

    DECFSZ countb,1

    GOTO delay_01

    DECFSZ count1,1

    GOTO d1_1 ;hetdoanchuongtrinhdelay

    CLRF PORTB ;tatcacLEDoPORTB

    MOVLW d100 ;doanchuongtrinhdelay100ms

    MOVWF count1

    d1_2

    MOVLW d199

    MOVWF counta

    MOVLW d1

    MOVWF countb

    delay_02

    DECFSZ counta,1

    GOTO $+2

    DECFSZ countb,1

    GOTO delay_02

    DECFSZ count1,1

    GOTO d1_2 ;hetdoanchuongtrinhdelay1ms

    GOTO loop ;trovevonglapchinhcuachuongtrinh

    END

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 13/17

    Vi chng trnh trn, ta c th quan st cc hin tng do vi iu khin to ra PORTBthngquaccLED.Dothigiandelay l100mschonntrong1giytrngthicaLEDsthayi10ln.iunychophptaquanstcbngmtthng.bygi,cc bn hy th gim thi gian delay xung nh dn (gim gi tr a vo thanh ghicount1),xemhintnggsxyra.Khithigiandelaygimnmtgitrno,tasccmgicrngccLEDkhngcnchpttna,mssngmtcchlintc.

    Taddngnhnthymtnhcimtrongchngtrnhtrnlphivitivitlichng trnhdelay nhai ln,vmt lnna,vn vdung lngbnh chngtrnhctra.Mtgiiphpkhcphcnhcimtrn,lchngtrnhcon.

    Mtchngtrnhconcthtmhiulmtoncodenoclpilplinhiulntrongchngtrnhchnh,vthayviphivitivitlioncodenhiuln,tatchconcodethnhmtchngtrnhconvgioncodetchngtrnhchnhthngqua lnhCALL.Mtchngtrnhconsbtubng1 labelvktthcbnglnhRETURNhoclnhRETLW.

    C thnichng trnhcongip tacnhiuphngnhn trongvic tchcmtchngtrnhvitchoviiukhin.

    Bygi, tas tchc lichng trnh2.1 thnhmtchng trnhmibngcchsdngchng trnhconcho oncode to thigiandelay100ms.Chng trnhmi scvitnhsau:

    Chngtrnh2.2:

    ;=============================================================================

    ;WWW.PICVIETNAM.COM

    ;Laptrinh: NGUYENTRUNGCHINH

    ;Ngaybatdau: 23thang01nam2006

    ;Ngayhoanthanh: 23thang01nam2006

    ;Kiemtrachuongtrinh:DoanHiep,DoanMinhDang,

    ; [email protected]

    ;Ngaykiemtra:

    ;SudungvidieukhienMicrochip: PIC16F877A

    title chuongtrinh22.asm

    processor 16f877a

    include

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 14/17

    __CONFIG _CP_OFF&_WDT_OFF&_BODEN_OFF&_PWRTE_ON&

    _XT_OSC&_WRT_OFF&_LVP_OFF&_CPD_OFF

    ;Capnhatvabosung:

    ;Motachuongtrinh: ChuongtrinhdungdedieukhientatcacacLEDganvao

    ; PORTBchoptatlientucsaumoikhoangthoigian100ms.

    ; Cosudungchuongtrinhcon

    ;Motaphancung: 8LEDduocganvaoPORTBthongquacacdientro,cac

    ; thanhphandikembaogomthachanh,machresetvanguon

    ;=============================================================================

    ;

    ;Khoitaocacbien

    ;

    count1 EQU 0x20 ;cacbiendungchodoanchuongtrinhdelay

    counta EQU 0x21

    countb EQU 0x22

    ;=============================================================================

    ;CHUONGTRINHCHINH

    ;=============================================================================

    ORG 0x000

    GOTO start

    start

    ;

    ;KhoitaoPORTB

    ;

    BCF STATUS,RP1

    BSF STATUS,RP0 ;chonBANK1

    CLRF TRISB ;PORTB

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 15/17

    ;

    ;Vonglapchinh

    ;

    loop

    MOVLW 0XFF

    MOVWF PORTB ;battatcacacLEDoPORTB

    CALL delay_100ms;goichuongtrinhcontaothoigiandelay100ms

    CLRF PORTB ;tatcacLEDoPORTB

    CALL delay_100ms;goichuongtrinhcontaothoigiandelay100ms

    GOTO loop ;trovevonglapchinhcuachuongtrinh

    ;=============================================================================

    ;CHUONGTRINHCON

    ;=============================================================================

    delay_100ms ;labelbatdauchuongtrinhcon

    MOVLW d100 ;doancodechochuongtrinhcondelay100ms

    MOVWF count1

    d1

    MOVLW d199

    MOVWF counta

    MOVLW d1

    MOVWF countb

    delay_0

    DECFSZ counta,1

    GOTO $+2

    DECFSZ countb,1

    GOTO delay_0

    DECFSZ count1,1

    GOTO d1

    RETURN ;ketthucchuongtrinhcon,trovechuongtrinhchinh

    END

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 16/17

    Tanhn thy rngvi cch t chc chng trnh sdng chng tnh con, chng

    trnhchnhcngtrnnngngn,dhiuvrrnghnrtnhiu.

    Tip theo, tas tin thmmtbcnabngcch t lmkhmnhviyucuminhsau:

    ngdng2:Yucucangdngnycng tng tnhngdng1, tuynhin ta s thayi

    nhiuthigiandelaykhcnhau,cthnhsau:

    - BtttcccLED

    - delay100ms

    - TtttcccLED

    - Delay200ms

    Rrngltrongonchngtrnhchnh,giithutkhngcnhiukhcbit.ThayvsaukhittLED,tagichngtrnhcondelay_100msthbygisgichngtrnhcondelay_200ms(ttnhinltaphivitchngtrnhconnythmiccigi).Vnylvitnhthnochongnnht.

    pngcyucucabiny, tachcn thayimtvichi titnh trongchngtrnhcondelay.Cthnhsau:

    delay_100ms ;labelbatdauchuongtrinhcondelay_100ms

    MOVLW d100

    GOTO delay

    Delay_200ms ;labelbatdauchuongtrinhcondelay_200ms

    MOVLW d200

    GOTO delay

    delay

    MOVWF count1

    d1

    MOVLW d199

    MOVWF counta

    MOVLW d1

    MOVWF countb

    delay_0

    DECFSZ counta,1

  • Ngiboco: NguynTrungChnh Tiliu: TUT02.03

    Ngy: 2/9/2006 Trang: 17/17

    GOTO $+2

    DECFSZ countb,1

    GOTO delay_0

    DECFSZ count1,1

    GOTO d1

    RETURN ;ketthucchuongtrinhcon,trovechuongtrinhchinh

    Nhtabitphn2,vithutton2,munthayithigiandelaychochngtrnhdelay,tachvicthayigitravothanhghicount1.ytacnglmthaotctngt.oncodetlabeldelaycginguynkhngthayi.Khigichngtrnh con delay_100ms, gi tr 100s c a vo thanh ghiW, sau nhy ti labeldelayagitrvothanhghicount1tiptcthchinvictothigiandelay.Ccthaotcctinhnhtngtnhkhigichngtrnhcondelay_200msvlcgitrcavothanhghiWsl200.

    Hontontngttacthtoramtlotnhngchngtrnhdelay1ms,2ms,5,ms,sdngmtcchddngtytheoyucuvchngtrnhdelaycangdngcth.

    nyxemnhtaphttrinmtcchkhhonthinvccgiiphpchochngtnhdelay thngquavicxydngchngtrnhcondelayvhiuccchtonhiuthigiandelaykhcnhautrongcngmtchngtrnhmkhngcnphivitivitlinhiuchngtrnhdelay.

    Bygillcrtramtviktluntrckhiktthcbi2vchunbchobi3.

    4. KtlunChng trnhdelay ngmt vai tr kh quan trng trong vicpht trin cc ng

    dngchoviiukhin.Chngtrnhdelaycsdngnhiutrongccthaotchinthvtrongccngdngcnralnhchoviiukhinphich.

    Ccthuttondngxydngchngtrnhdelayphithamncctiuchngngnvthuntinchovicsdng,ngthigiptakimsotcthigiandelaydoonchngtrnhtora.

    Thigiandelaydochngtrnhdelaytorasphthucvogiithutsdngchochngtrnhdelayvloithchanhsdngchoviiukhin.

    Chng trnh congip ta c cnhiuphngn t chcmt chng trnh ngdngmtcchlinhhot,gngngvdhiuhn.

    Htbi2!