Starten på et program

 

I starten av programmet må man ha litt informasjon om hva slags klokke oscillator som skal brukes,

om prosessoren skal være lese beskyttet, power on timer av /på

watchdog timer av / på og hvilke pinner som skal være utganger eller innganger

og hvilken type prosessor som brukes.

 

Konfigurering

LIST

P=16F84

 

;Hvilken type prosessor som brukes

_CP_ON

EQU

H'000F'

_CP_OFF

EQU

H'3FFF'

_PWRTE_ON

EQU

H'3FF7'

_PWRTE_OFF

EQU

H'3FFF'

_WDT_ON

EQU

H'3FFF'

_WDT_OFF

EQU

H'3FFB'

_LP_OSC

EQU

H'3FFC'

_XT_OSC

EQU

H'3FFD'

_HS_OSC

EQU

H'3FFE'

_RC_OSC

EQU

H'3FFF'

 

 

__CONFIG

CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC

 

 

ORG

0

;Setter denne linjen til adresse 0 i program minnet

 

BSF

3,5

;Går over i bank 1 i RAM minnet

 

MOVLW

b'11111100'

;Setter porta,0 ,1 til utgang og porta,2, 3, 4, til inngang

 

MOVWF

5

;Laster tallet over i trisa register

 

MOVLW

b'00001111'

;Setter portb,0 ,1 ,2 ,3 til inngang og portb,4 ,5 ,6 ,7 til utgang

 

MOVWF

6

;Laster tallet over i trisb register

 

BCF

3,5

;Går tilbake til bank 0 i RAM minnet

 

CLRF

5

;Setter porta til 0

 

CLRF

6

;Setter portb til 0

 

 

 

Her skriver man resten av programmet

 

 

 

 

END

 

;Markerer slutten på programmet

 

Konfigurering

Denne konfigurasjonen setter prosessortypen til PI16F84,

Lesebeskyttelsen slås av ( CP_OFF ), dvs. at man kan lese programmet ut av prosessoren

senere ( hex koden ).

Vil man hindre andre i å kunne hente programmet ut av prosessoren, så settes lesebeskyttelsen på ( CP_ON ).

Power on timer settes på ( PWRTE_ON ) dvs. at programmet ikke startes før forsynings spenningen

har steget til et akseptabelt nivå.

Watchdog timer slås av (_WDT_OFF ), denne timeren bruks for å hindre at prosessoren

låser seg hvis programmet skulle henge seg av en eller annen grunn.

Watchdog timeren trenger man ikke å bry seg om i begynnelsen.

Klokke oscillatoren settes til krystall styrt ( _XT_OSC ).

Her kan man velge LP for low power krystall, XT for krystall / resonator,

HS for high speed krystall / resonator og RC for RC ledd ( motstand okondensator )

 

Porter

Porta,0 ,1 settes til utgang ( pinne 17 og 18 ) og porta,2 ,3 ,4 settes til inngang ( pinne 1 , 2 og 3 )

Portb,0 ,1 ,2 ,3 settes til inngang ( pinne 6 ,7 ,8 og 9 ) og portb,4 ,5 ,6 og 7 settes til utgang ( pinne 10 ,11 ,12 og 13 )

Trisa og trisb registerene bestemmer hvilke bit på porten som skal være inngang eller utgang,

0 er utgang og 1 er inngang.

Når man skriver et binært tall så er bittet til høyre det minst signifikante.

Så settes begge portene til 0 for å være sikker på at alle bit på portene er 0 når programmet startes.

 

Videre så skriver man programmet og avslutter det med END.

 

 

 

 

Tilbake