copied template, changed formatting
parent
6c9816bea6
commit
c257d5f90b
@ -0,0 +1,78 @@
|
||||
;**********************************************************************
|
||||
; *
|
||||
; Filename: main.asm *
|
||||
; Date: *
|
||||
; File Version: *
|
||||
; *
|
||||
; Author: *
|
||||
; Company: *
|
||||
; *
|
||||
; *
|
||||
;**********************************************************************
|
||||
; *
|
||||
; Files required: *
|
||||
; *
|
||||
; *
|
||||
; *
|
||||
;**********************************************************************
|
||||
; *
|
||||
; Notes: *
|
||||
; *
|
||||
; *
|
||||
; *
|
||||
; *
|
||||
;**********************************************************************
|
||||
|
||||
;; basic setup
|
||||
list p=16f676 ; list directive to define processor
|
||||
#include <p16F676.inc> ; processor specific variable definitions
|
||||
|
||||
errorlevel -302 ; suppress message 302 from list file
|
||||
|
||||
__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT
|
||||
|
||||
; '__CONFIG' directive is used to embed configuration word within .asm file.
|
||||
; The lables following the directive are located in the respective .inc file.
|
||||
; See data sheet for additional information on configuration word settings.
|
||||
|
||||
w_temp EQU 0x20 ; variable used for context saving
|
||||
status_temp EQU 0x21 ; variable used for context saving
|
||||
|
||||
ORG 0x000 ; processor reset vector
|
||||
goto main ; go to beginning of program
|
||||
|
||||
|
||||
ORG 0x004 ; interrupt vector location
|
||||
movwf w_temp ; save off current W register contents
|
||||
movf STATUS,w ; move status register into W register
|
||||
movwf status_temp ; save off contents of STATUS register
|
||||
|
||||
; isr code can go here or be located as a call subroutine elsewhere
|
||||
|
||||
movf status_temp,w ; retrieve copy of STATUS register
|
||||
movwf STATUS ; restore pre-isr STATUS register contents
|
||||
swapf w_temp,f
|
||||
swapf w_temp,w ; restore pre-isr W register contents
|
||||
retfie ; return from interrupt
|
||||
|
||||
|
||||
; these first 4 instructions are not required if the internal oscillator is not used
|
||||
main
|
||||
; call 0x3FF ; retrieve factory calibration value
|
||||
; bsf STATUS,RP0 ; set file register bank to 1
|
||||
; movwf OSCCAL ; update register with factory cal value
|
||||
; bcf STATUS,RP0 ; set file register bank to 0
|
||||
|
||||
|
||||
;; remaining code goes here
|
||||
|
||||
|
||||
|
||||
;; initialize eeprom locations
|
||||
|
||||
ORG 0x2100
|
||||
DE 0x00, 0x01, 0x02, 0x03
|
||||
|
||||
|
||||
END ; directive 'end of program'
|
||||
|
Loading…
Reference in New Issue