pic16f84 banko 0 1 bankui ir kontrolės manipuliavimo

D

Dunn

Guest
Labas Aš stengiuosi išmokti PIC programavimą.

Prašome galėtų man šiek tiek padėti.

Aš perskaičiau, kad:
1) pic16f84 1 bankui yra toks, naudojamus kontroliuoti.
2) pic16f84 bankas "0" naudojama manipuliacijos.

Kaip aš galiu pasakyti, jei nurodymas (pvz. MOVLW) yra kontrolės ar manipuliacijas?

Ačiū.

 
Sveiki,

"Bankai", gali būti sunku ką suprasti, kai jūs dar tik pradeda.

Bandys ir aiškiai paaiškinti.

Pirmiausia, "Bankai" yra tikrai tik RAM atminties.

Jūs, vartotojas gali naudoti tam tikras RAM jūsų saugoti savo vertybes Kas dažniausiai vadinama registruose.
Taip Nuotraukos pati sistema turi naudoti RAM savo registruose.

Be Pic16F84 RAM yra padalyta į dvi atskiras sritis, Bank0 ir Bank1.
Abu bankai yra taikomas sistemai ir gali būti prieinami vartotojui, tačiau konkrečioje vietoje tik.
Žiūrėti Puslapis 13 iš duomenų lapo - tai rodo, kad sistemų registrų ir Vartotojai Registrų vadinamos "bendros paskirties"

Nors pirmiau minėtus nėra labai sunku, kai jūs pradedate kodas, kad problemos prasideda.

Kai rašote arba skaityti yra Vartotojo registrus ar sistemos registrą, kaip Porta, turite užtikrinti, kad banko Pasirinkite Bit yra nustatyti atitinkamai.

Tai atliekama naudojant specialų bitų būsenos registro.

Pavyzdžiu galėtų būti: -

Kodas:

BCF STATUSĄ, RP0; Pasirinkite banko 0

BCF PORTB; aiškiai Port B

movlw b'00000000 "vertė daryti PortB skaitmeninis išėjimas

BSF STATUSĄ, RP0; pasirinkite bankui 1

movwf TRISB; Nustatyti TRISB išvesties

BCF STATUSĄ, RP0; Nustatyti bankui 0
 
Labas

Ačiū už atsakymą.

Suprantu jūsų pavyzdys (manau):
BCF STATUSĄ, RP0; Pasirinkite banko 0
BCF PORTB; aiškiai Port B
movlw b'00000000 "vertė daryti PortB skaitmeninis išėjimas
BSF STATUSĄ, RP0; pasirinkite bankui 1
movwf TRISB; Nustatyti TRISB išvesties
BCF STATUSĄ, RP0; Nustatyti bankui 0

Be tutoral Aš skaitau ji sako:

Eilutė 1 BSF 03H, 5; GO 1 bankui
2 linija MOVLW 06h, suformuoti 00110 į W
3 eilutė MOVWF 85h; Perkelti 00110 į TRISA
Linija 4 BCF 03H, 5; Grįžkite į banko 0

Aš nesuprantu, kodėl, 1 eilutė, jis eina į banko 1 d., kai 1 bankui yra toks kontrolės.
Aš maniau Line 1 dalis liks bankui 0, MOV (MOVLW 06h ir 85h MOVWF) yra naudojamas manipuliuoti duomenimis.

Manau, kad turėtų būti:
Eilutė 1 BSF 03H, 5; GO bankas 0
2 linija MOVLW 06h, suformuoti 00110 į W (įdėti manipuliuoja duomenimis?)
3 eilutė BSF 03H, 5; GO 1 bankui (paruošta valdymo uostas)
Linija 4 MOVWF 85h; Perkelti 00110 į TRISA
Eilutė 5 BCF 03H, 5; Grįžkite į banko 0

Ačiū už bet kokią pagalbą

 
Sveiki,

Ok, jūsų pamoka kodas yra teisingas - tačiau manau, kad jūsų pamoka turi būti wriiten iki 1980 koledžo dėstytojas - prašome ieškoti ten internete apie kai daug gerų ir suprantama montuotojo vadovėliai, kurie iš.
Ar ne tik eiti pirmasis radote, turi gerą išvaizdą ir eiti su ta, kuri atrodo, kad dauguma prasmę Jums.

Čia yra geras sąrašas - tiesiog tikiuosi, EGA neturi proto man nuorodas ET http://www.electro-tech-online.com/micro-controllers/15035-newcomers-please-read-pic-regarded-upd-0xd. htm

Grįžtant prie jūsų kodas -

Be pic16F84 duomenų lapas pažvelgti į 8 schema puslapis lustas ir pamatysite, kad W yra bankų vienetas savo ir ne sistemos dalis registrų.todėl viską, ką daryti, kad W nepriklauso nuo bankų.

Dabar pažiūrėkite į atminties žemėlapyje 13 puslapyje rodyti sistemos registrų - pirmasis Statusas registre ir tada TRIS registrą - pranešimas hex adresą juos pusėje.

Dabar pažiūrėkite į savo kuratorių kodas, skirtingai nei mano, o ne pavadinimų Registras būklės jis kreipėsi tiesiai į hex vertė.
Jis daro tą patį su TRIS registrą.
Todėl kodas labai sunku sekti ir tai yra nebūtina.

Galiausiai pažvelgti 13 puslapis, Registras būklės ir bitai 5 ir 6 dydžio nustatymo bankų.Taigi pažvelgti į savo kodą, ir ją ištaisyti -

Eilutė 1 BSF 03H, 5; GO bankas 0

Norėdami pasirinkti banką 0 turite "Clear" BCF STATUSĄ, RP0 - daro RP0 = 02 linija MOVLW 06h, suformuoti 00110 į W (įdėti manipuliuoja duomenimis?)

Tai tiesiog įkelia hex vertė į W, W nėra priežiūros, kurie banko esate3 eilutė BSF 03H, 5; GO 1 bankui (paruošta valdymo uostas)

Dabar pasirinkite, 1 bankas "SET" BSF STATUSĄ, RP0 - daro RP0 = 1

Linija 4 MOVWF 85h; Perkelti 00110 į TRISA

Tada perkelti W duomenis į TRISA registre bank1 movwf TRISA

Eilutė 5 BCF 03H, 5; Grįžkite į banko 0

Galiausiai jūs grįšite į Bank0 jei nėra jokių kitų nurodymų dėl bank1Jei negalite daryti išvados, kad ne mesti, imtis laisvą dieną ir apsidairykite aplink geriau pamoka, paprastai pradedant mirksėti lemputės, nesijaudinkite, jei jūs nesuprantate kodo pavyzdžius, tiesiog statyti schema ir paleisti juos , ko greitai pateks į vietą ir tapo daug lengviau suprasti.

 
Manau, reikia pridurti, kad jei jūs naudojate MPLAB kaip montuotojo, Microchip papildomas požymis, kad padėtų jums pasirinkti tinkamą banką.Viskas, ką jums reikia padaryti, tai naudokite "banksel" instrukcija prieš registrą, kurį norite atidaryti.

Pavyzdžiui
Jei norite padaryti Port B produkcijos ir registro duomenų pateikti 10101010 savo kontaktų jums reikia naudoti 1 bankui patekti į TRIS registrą ir banką 0 naudotis.Vietoj nustatymo ir naujo naudoti bitai Registras būklės, kuri tampa paini ir lengva prarasti sekti,:

banksel TRISB
clrf TRISB

banksel PORTB
movlw B'10101010 "
movwf PORTB

Ir daro tai daug lengviau skaityti.Kaip pradedantysis, tai turbūt protinga per naudokite banksel instrukcija, kurioje yra Banko ne iš tikrųjų keičiasi, bet tai ne trukdo ir tik praranda du nurodymus.Aš jį naudoti dažniau, nei reikia gauti programos darbo tada nuimkite atvejais, kai teisingai Bank jau buvo pasirinktas.Atkreipkite dėmesį, kad banksel nėra procesoriaus instrukcijų, tai montuotojo instrukcija, kuri gamina dvi procesoriaus instrukcijas automatiškai, po vieną kiekvienai banko pasirinkimas tiek.Rasite banksel ypač naudinga, kai jūs naudojate daugiau atsakingiesiems, kurios turi daugiau registrą bankų, nes ji kontroliuoja ir banko bitų, o ne tik 1 vieną bankams 0 ir.

Brian.

 
Hi Brian,Thanks for adding Banksel - ką aš galėjo padaryti su kai naudojama programa 16Fs.

Tiesiog taip džiaugiuosi, aš persikėlė į 18F be ieškos nerimauti ir iki 384 baitų RAM ir prieš jums reikia pakeisti bankų (banko 0 naudotis 128 banko 1 256)

 
Aš taip pat dabar naudoja 18F46J11 daugelyje programų, paprastai su daugybe nepanaudotos atminties, bet jie kainuoja tiek nedaug ji neturi jaudintis man.Jei tik, kad lustas būtų laive EEPROM.Įdomiausia tai, aš taip pat naudoja daug 10F202s ir jie yra per maži, kad reikia bankų atrankos bitai!

Brian.

 
Ačiū visiems dalyviams.

Prašome gali kas nors padėti man pagal pranešėte man žinoti, jeigu yra knyga ar ....kur galėčiau pažvelgti kodo pavyzdį (pageidautina su komentarais), parašyta surinkimas) už 16F84/16F690 kad galėjau mokytis iš jos.

Galų gale aš noriu sužinoti, kaip programa PIC naudojant C.
Pirmasis asamblėjos tada C. Ar tai teisingas būdas mokytis (ar turėčiau tiesiog išmokti programuoti C nuo pradžios)?

Aš galiausiai nori programos PIC 16F690 naudojant C.
Maniau, kad aš sužinoti, kaip programa 16F84 pirma todėl, kad jis atrodė paprasčiau tada 16F690.

Ačiū visiems replys.

 
Aš atvykau iš elektroninių fonas, kad aš sakyčiau, mokytis asemblerio kalba pirmą tada pereiti prie C. Taip buvo todėl, kad Asemblerio kalba suteikia daug daugiau įžvalgos, kaip IPS darbų ir padeda suprasti savo stipriąsias puses ir trūkumus.C yra lengviau, tačiau daugeliu atvejų mažiau efektyvus, nes ji dalykus "bendrosios paskirties" būdu, o ne optimizuotas jūsų konkrečiu atveju.

Jūs taip pat manau, kad C eina parametrai kaminą, arba nekilnojamojo aparatūros vieną ar vienas Rangovas kompiliatorių, tai naudoja gana atminties daug įgyvendinti.Dėl šios priežasties, C yra siauresnė įtaisus, kurie turi mažas atminties, iš tiesų daug C kompiliatorius neturi remti mažas IPS prietaisų ne visiems.

Kaip ir paprastas naudoti, nepasakytum, F84 yra lengviau naudoti nei F690, tai priklauso nuo programos.Kartais tai daug paprasčiau naudoti pastatytas periferinė ne mėgdžioja ją programinę įrangą prietaisas be jo.

Yra daug kodo pavyzdžių MPLAB padėti failus, Microchip interneto svetainėje ir PICLIST svetainę.Google paieškos "16 F84A ASM" atsirado 8400 nuorodomis metu senumo tai ten turėtų būti daug pavyzdžių iš ten.

Brian.

 
Sveiki,

Thats geras patarimas iš Brian, bet ne tik atsiskaityti už skaityti knygas, atsisiųsti MPlab ir paleisti savo kodą, net jei jos tik 4 eilutes dabar naudojate.
Galite naudoti Simulator funkciją vienu etapu, kuriame galite pamatyti, kaip kiekvieną iš jūsų intructions yra procedūra ir perkelti į įvairius registrus

Taip pat atsiųsti jums PM.

 

Welcome to EDABoard.com

Sponsor

Back
Top