Er program som fungerer i PIC16F arbeider med PIC18F?

E

ericmar

Guest
Jeg lurte på om de som arbeider i PIC16F877 kan arbeide i PIC18F452??

Jeg har fortsatt en nybegynner så jeg virkelig hv ingen anelse om dette!

Vennligst hjelp!

 
De fleste programmer skal kunne arbeide med PIC18 men du må rekompilering eller reassemble dem som mest av PIC16 bruke 14bit instruksjoner mens PIC18 bruke 16bit instruksjoner.

Også noen av SFR's kan ha differnt adresser ...

med vennlig hilsen

 
I 16Fs, den RP0 & RP1 biter (status register) bli bsr i 18Fs, det
er et registere L
itteral to B
sr

For eksempel, du vil jobbe i bank 1 -> movlb d'001 ", der movlb betyr MOV
e L
itteral til B
sr

<img src="http://www.edaboard.com/images/smiles/icon_wink.gif" alt="Kyss" border="0" />hilsen,

 
1) Alle SFR ikke krever banktjenester, så fjerne eventuelle pagesel eller banken velger instruksjon.
2) Se etter eventuelle $ -1 som undervisning.Du må doble figuren.Ex $ -1 blir $ -2 $ -2 blir $ -4 etc.
3) Se etter instruksjon som endrer PCL som ADDWF PCL, W. Siden 18 serierekke adresse WORD linje, må du legge 2 linjer før instruksjon.CLRF status, C og RLCF WREG, F.
Eller bruke den forbedrede funksjonen av 18 serier TBLPTRU / H / L.Microchip har et program merknader til dette.
4) RRF blir RRCF, RLF blir RLCF.
5) Er jeg mangler noe annet

 
Ex.BTFSC STATUS, C
GOTO $ -1

Den første instruksjonen teste C flagg i STATUS register.Hvis C = 0, neste instruksjon (GOTO) vil bli hoppet over.For andre instruksjon, $ er representerer nåværende adresse.Denne undervisningen vil føre Programmet Counter å gå tilbake til forrige instruksjon.

For 18F serien må du endre det til BRA $ -2.

Mer sikker måte bruker etiketten!

TEST: BTFSC STATUS, C
GOTO TEST

I dette tilfellet koden fungerer for både serie.

 
Mr. Hill,

Takk en million for å dele din kunnskap!
Jeg
har vært å trekke håret mitt for 2 dager prøvde å konvertere min 16F-koden til 18F.Har ikke sett det noe sted (i Dataarkvisning) at de to linjene du vise ovenfor må legges til "addwf PCL" for å fungere.Jeg
har blitt prøver å øke "teller" for å kompensere for økning av 2 "til ingen nytte.
Nå mine koden funker!

Takk igjen.

 
Du
er velkommen.

Men husk på PIC18, bruker beregnede GOTO metoden, kan du bare få tilgang til 128 byte med data.Hvis du trenger tilgang til mer enn det, må du gjøre noen regnestykket til PCLATH og kanskje PCLATU.Men det vil resultere i ineffecient koden.For dette formålet, vil jeg anbefale deg å bruke tabellen poinetr TBLPTRU, TBLPTRH og TBLPTRL.

 

Welcome to EDABoard.com

Sponsor

Back
Top