OK - first things first.
Are you compiling with MPASM or the PM assembler ? A look at the Compile and Program Options from the View menu in MCS.
Here is an example of a config line from a project that uses MPASM:
@ __CONFIG _CONFIG1H, _IESO_OFF_1H & _FCMEN_OFF_1H & _OSC_INTIO2_1H
I have also founds that the PicKit2 will complain about this if you do not define every single CONFIG register. I normally define what I know I need to set and leave the rest. It burns and runs fine.
there are a series of defaults in the .INC file in the PBP folder for each chip.
For the 16F87 it looks like :
<code>
;************************************************* ***************
;* 16F87.INC *
;* *
;* By : Leonard Zerman, Jeff Schmoyer *
;* Notice : Copyright (c) 2004 microEngineering Labs, Inc. *
;* All Rights Reserved *
;* Date : 01/07/04 *
;* Version : 2.45 *
;* Notes : *
;************************************************* ***************
NOLIST
ifdef PM_USED
LIST
include 'M16F87.INC' ; PM header
*** device pic16F87, hs_osc, wdt_on, lvp_off, protect_off
XALL
NOLIST
else
LIST
LIST p = 16F87, r = dec, w = -302
INCLUDE "P16F87.INC" ; MPASM Header
*** __config _CONFIG1, _HS_OSC & _WDT_ON & _LVP_OFF & _CP_OFF
NOLIST
endif
LIST
</code>
It have put *** to hi light the default the compiler will insert. Using PM the program will use the ones you specify in your code rather than the ones in the INC file. Using MPASM you will get warning about over-writing the contents of the CONFIG bits.
When I moved to MPASM I had to spent a bit of time working out what things were called as some of the names changed. Check out the MPASM INC files to workout what things are called.
bill
EDIT: Looking at you original post you are using PM. Just ignore the warnings - its just the PicKit2 being anal about making sure everything is defined.
Bookmarks