LIST P=16F648
INCLUDE "P16F648A.INC"
INCLUDE "SHORTS.INC"
__CONFIG _LVP_OFF & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF & _CP_ON & _WDT_OFF & _PWRTE_OFF
ERRORLEVEL -302
CBLOCK 0X20 ; TEMPORARY STORAGE-------------
CNTJ, CNTK, CNTP1, CNTP2, CNTP3, CNT1, CNT2, W_REG, STATUS_REG
PORTB_TEMP, MS_TIME, MS_TIME_TEMP, DEB_CNT, DECOUNT
;------------THIS PROGRAM NEEDS...---------
SDELAYCOUNT
ENDC ;--------TEMPORARY STORAGE-------------
ORG 0X04
START: ;-----PORT I/O CONFIGURATION-------------------------------
BANK0
BSF CMCON, CM2 ;DISABLE COMPARATOR.
BSF CMCON, CM1
BSF CMCON, CM0
BANK1
LOADF TRISA, B'11110111'
LOADF TRISB, B'00000000'
BSF OPTION_REG, NOT_RBPU ;BCF/BSF = ENABLE/DISABLE PULL-UP.
BCF OPTION_REG, INTEDG ;BSF/BCF = HIGH/LOW - RB0/INT EDGE TRIGGER
;------POWER ON RESET CONFIGURATION--------------------------
BSF PCON, OSCF ;C/S = 37KHZ/4MHZ OSCILLATOR SPEED.
BANK1 ;------INTERRUPT CONFIGURATION-------------------------------
BCF INTCON, PEIE ;C/S = DIS/ENABLE PERIPHERAL INTERRUPTS.
BCF PIE1, TMR1IE ;C/S = DIS/ENABLE TIMER1 INTERRUPT.
BCF PIE1, CCP1IE ;C/S = DIS/ENABLE CAPTURE INTERRUPT.
BCF PIE1, CMIE ;C/S = DIS/ENABLE COMPARATOR INTERRUPT.
BCF PIE1, EEIE ;C/S = DIS/ENABLE EEPROM INTERRUPT.
BCF INTCON, GIE ;C/S = DIS/ENABLE GLOBAL INTERRUPT.
BCF INTCON, T0IE ;C/S = DIS/ENABLE TIMER0 INTERRUPT.
BANK0 ;----TIMER1 CONFIGURATION-----------------------------------
BCF T1CON, TMR1ON ;C/S = DIS/ENABLE TIMER1 ON.
BCF T1CON, TMR1CS ;C/S = IN/EXTERNAL(RA6) CLOCK.
BANK1 ;----TIMER0 CONFIGURATION-----------------------------------
BCF OPTION_REG, T0CS ;C/S = IN/EXTERNAL(RA4) CLOCK.
BCF OPTION_REG, PSA ;C/S = TIMER0/WDT PRESCALER ASSIGNMENT.
BCF OPTION_REG, .2 ;PRESCALER
BCF OPTION_REG, .1 ;000=1:2, 001=1:4, 010=1:8, 011=1:16
BCF OPTION_REG, .0 ;100=1:32, 101=1:64, 110=1:128, 111=1:256
BANK0 ;-------------------------------------------------------------
;*********MAIN**************************
CLRF PORTB
MAIN: