Takaisin
;*****************************************************************************************
; Tämä tiedosto on esimerkki ohjelman aloituksesta MPLAB ohjelmalla *
; Ohjelma voidaan kirjoittaa esimerkiksi aloittaen tästä pohjasta. *
; *
; Jos keskeytystä ei käytetä, keskeytystä koskeva osa voidaan jättää *
; pois kokonaan. *
; Samoin myös siihen liittyvät muuttujat W_TEMP ja STATUS_TEMP *
; *
; Jos lisää tietoa halutaan ohjelman käytöstä, sitä löytyy MPLAB *
; ohjelman help tiedostoista sekä Microchip dokumentista DS33014 *
; Tosin kyllä englannin kielellä. *
; Samoin lisätietoja löytyy PIC-mikron datalehdiltä, myös käskyjen *
; toiminnat. *
; Kaikki kommentit voidaan kirjoittaa käännettävään ohjelmatiedostoon, *
; puolipisteen jälkeen (;), kääntäjä jättää kaiken, merkin oikealla puolella *
; olevan tekstin ja merkit huomioimatta. *
; *
;*****************************************************************************************
; *
; Tiedostonimi: xxxxxxxx.asm Ohjelmatiedoston nimi 8 merkkiä *
; Päiväys: Ohjelman päiväys *
; Tiedosto versio: Ohjelman versio *
; *
; Omistaja: Ohjelman tekijän ja omistajan tiedot *
; Ohjelman tekijä: Voi käyttää lisääkin tietoja halutessaan *
; tai voi myös jättää kaikki kommentit *
; ja ohjelmatiedot kirjoittamatta. *
; *
;*****************************************************************************************
; *
; Ohjelman toiminta lyhyesti: *
; *
; *
; *
;*****************************************************************************************
; *
; Huomautuksia: *
; *
; *
; *
; *
;*****************************************************************************************
list p=16F84 ; list määrittää käytetyn piirin
#include <p16F84.inc> ; Prosessorille valmiiksi määritellyt
; muuttujat tiedostossa p16F84.inc
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
; '__CONFIG' määrittää piirin perusasetukset:
; _CP_OFF
; _WDT_ON Watch Doc ajastin käytössä ON pois käytöstä OFF
; _PWRTE_ON Power Up ajastin käytössä ON pois käytöstä OFF
; _RC_OSC Kello oskillaattorin valinta RC-piiri XT kide tai resonaattori
; Samat määritykset on tehty .inc tiedostossa. Jos ne tehdään tässä niin
; tämän tiedoston määritykset kumoavat .inc tiedostossa tehdyt määritykset.
;*****************************************************************************************
;***** Muuttujien määritys.
w_temp EQU 0x0C ; Muuttuja käytössä keskeytyksissä
status_temp EQU 0x0D ; Muuttuja käytössä keskeytyksissä
; Käyttäjän määrittelemät muuttujat.
; Muuttujien niminä voi käyttää mitä tahansa nimiä, mielummin jotain toimintaan liittyvää,
; jolloin ohjelmasta tulee jotenkin ymmärrettävää.
; Ohjelmassa on syytä käyttää selväkielistä tekstiä kommentteina toiminnasta yms.
; Ensiksi määritetään muuttujalle nimi esim:
PIIRI EQU 0x10 ; PIIRI, ja vastaavuus EQU sekä muuttujan osoite 0x10
;*****************************************************************************************
ORG 0x000 ; Resetointi osoite, ohjelma alkaa aina tästä osoitteesta
GOTO ALKU ; Hyppykäsky varsinaisen ohjelman aloituskohtaan
ORG 0x004 ; Keskeytyksessä aloitetaan tästä
MOVWF W_TEMP ; Talletetaan W_rekisterin sisältö W_TEMP rekisteriin
MOVF STATUS,w ; Siirretään STATUS rekisterin sisältö w_rekisteriin
MOVWF STATUS_temp ; Talletetaan W_rekisterin sisältö STATUS_TEMP rekisteriin
;-----------------------------------------------------------------------------------------
; TÄHÄN VÄLIIN KIRJOITETAAN KESKEYTYKSESSÄ SUORITETTAVA OHJELMA.
;-----------------------------------------------------------------------------------------
MOVF STATUS_TEMP,W ; Palautetaan STATUS_rekisterin kopio W_rekisteriin.
MOVWF STATUS ; Palautetaan talletettu STATUS rekisterin tila.
SWAPF W_TEMP,f ;
SWAPF W_TEMP,w ; Palautetaan talletettu W rekisterin tila.
RETFIE ; Palataan ohjelmassa keskeytyneeseen kohtaan.
;*****************************************************************************************
ALKU ; Käynnistyksen ja määrittelyjen jälkeen varsinainen
; ohjelma alkaa tästä.
; OHJELMAKOODI KIRJOITETAAN TÄSTÄ ETEENPÄIN.
; OHJELMAN LOPUSSA ILMOITETAAN KÄÄNTÄJÄLLE OHJELMAKOODIN LOPPUMINEN.
;*****************************************************************************************
END ; Ohjelmakoodi loppuu tähän.
Takaisin