;; ;; spreadspace pic utils ;; ;; ;; Copyright (C) 2011 Christian Pointner ;; ;; This file is part of spreadspace pic utils. ;; ;; spreadspace pic utils is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; any later version. ;; ;; spreadspace pic utils is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with spreadspace pic utils. If not, see . ;; ;; ------------------------------------- ;; PREAMBLE LIST p=16F1847 include "p16f1847.inc" __config _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF __config _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_LO & _LVP_OFF ;; ------------------------------------- ;; DEFINES CNT0 EQU H'0020' CNT1 EQU H'0021' ;; ------------------------------------- ;; OFFSET org .0 goto init ;; ------------------------------------- ;; Interrupts org .4 clrf BSR btfsc PIR1,SSP1IF goto int_spi retfie int_spi bsf PORTA,7 nop bcf PORTA,7 retfie ;; ------------------------------------- ;; INIT init ;; BANK 4 movlw b'00000100' movwf BSR movlw b'00100100' movwf SSP1CON1 movlw b'00010000' movwf SSP1CON3 movlw b'00000000' movwf SSP1STAT ;; BANK 3 movlw b'00000011' movwf BSR clrf ANSELA clrf ANSELB ;; BANK 2 movlw b'00000010' movwf BSR ;; BANK 1 movlw b'00000001' movwf BSR movlw b'01111111' movwf TRISA movlw b'01110011' movwf TRISB movlw b'01011000' movwf OSCCON movlw b'00001000' movwf PIE1 movlw b'01000000' movwf INTCON ;; BANK 0 clrf BSR clrf PIR1 bsf INTCON,GIE bcf PORTA,7 ;; ------------------------------------- ;; MAINLOOP main movlw .50 movwf CNT0 outer movlw .255 movwf CNT1 inner decfsz CNT1,f goto inner decfsz CNT0,f goto outer movlw b'00001000' xorwf PORTB,f goto main ;; ------------------------------------- ;; END end