;; ;; 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' CNT2 EQU H'0022' TMP EQU H'0023' ;; ------------------------------------- ;; OFFSET org .0 goto init ;; ------------------------------------- ;; Interrupts org .4 clrf BSR btfsc PIR1,SSP1IF goto int_spi retfie int_spi bsf PORTA,7 bcf PIR1,SSP1IF incf TMP,f movf TMP,w movwf SSP1BUF 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' ; 1 MHz ; movlw b'01100000' ; 2 MHz ; movlw b'01101000' ; 4 MHz ; movlw b'01110000' ; 8 MHz movlw b'01111000' ; 16 MHz movwf OSCCON movlw b'00001000' movwf PIE1 ;; BANK 0 clrf BSR clrf PIR1 movlw b'11000000' movwf INTCON bcf PORTA,7 bcf PORTB,3 clrf TMP ;; ------------------------------------- ;; MAINLOOP main ;; movlw .255 ;; movwf CNT0 ;; outer1 ;; movlw .255 ;; movwf CNT1 ;; outer ;; movlw .20 ;; movwf CNT2 ;; inner ;; decfsz CNT2,f ;; goto inner ;; decfsz CNT1,f ;; goto outer ;; decfsz CNT0,f ;; goto outer1 ;; movlw b'00001000' ;; xorwf PORTB,f goto main ;; ------------------------------------- ;; END end