Hola! Primeramente, quisiera felicitar a toda la comunidad TodoPIC por el magnífico portal creado la gran utilidad que tiene. Es mi primer mensaje aunque ya desde hace algún tiempo vengo entrando en el foro a leer y aprender

. Hay muchos y muy buenos artistas del mundo de la electrònica aquí a dentro.
Y ahora a por lo que iba, estoy haciendo una aplicación con un PIC (és la primera vez que uso un PIC como micro, y de hecho, hasta ahora practicamente no habia tocado micros), compilada en C. Utilizo un PIC18F2550 ya que si me animo quizás incluya una aplicación USB. También utilizo una Eeprom I2C 24LC512 en la que almaceno variables, un RTC DS1302 para coger la hora, 4 pulsadores para moverme por diversos menús, y un LCD de 4x20 para las visualizaciones.
Compilé el código generado sin ningún problema, y después simulé con el Proteus 7.1, y no he tenido tampoco ningún problema en la simulación del código. Claro que en Proteus no hace falta hacer todas las connexiones pertinentes.
Intenté hacer funcionar el circuito en la protoboard y nada de nada. Después modifiqué (añadí un bucle infinito) el código de manera que sólo se tenga que encender un led en el pin_B7, y así intentar ver que fallava. Para mi sorpresa, tampoco encendía el led... Así que supongo que el problema está en el conexionado.
Pues bien, monté las connexiones en la protoboard, de la manera que indiva el JPEG que hay adjunto.
Unicamente varia:
*Es un pic18f2550 en lugar del 2520 del dibujo del proteus.
*Entre OSC1 y OSC2, hay un Cristal de 20Mhz, con un condensador de 22pF a cada patilla del cristal, y después conectados a masa.
*El Reset está con una resistencia de 10K, y a masa.
*He quitado los pulsadores, lcd, etc. ya que no hacía falta al tratarse sólo de un led a encender.
*Una resistencia de 2k2 y un led en el pin b7 y después a massa (correctamente polarizado).
*Los 2 Vss a tierra (pines 8 i 19)
* Vdd a 5 voltios.
*El led mal connectado del dibujo no está.
Os pego también la primera parte de código:
#include <18F2550.h>
#fuses NOWDT, WDT128, XT, NOPROTECT, BROWNOUT, NOPUT, NOCPD
#fuses NOSTVREN, NODEBUG, NOLVP, NOWRT, NOWRTD, NOIESO, NOFCMEN, NOPBADEN
#fuses NOWRTC, NOWRTB, NOEBTR, NOCPB, NOLPT1OSC, MCLR, NOXINST
#use delay(clock=4000000)
#define EEPROM_SDA PIN_A4
#define EEPROM_SCL PIN_A3
#define USB_HID_DEVICE FALSE //disabled HID
#define USB_EP1_TX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for IN bulk/interrupt transfers
#define USB_EP1_RX_ENABLE USB_ENABLE_BULK //turn on EP1(EndPoint1) for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE 32 //size to allocate for the tx endpoint 1 buffer
#define USB_EP1_RX_SIZE 32 //size to allocate for the rx endpoint 1 buffer
#define DESCARREGA recepcio[0]
#byte pb =0xF81
#byte pa =0xF80
#bit ok =pb.0
#bit up =pb.1
#bit down =pb.2
#bit ret =pb.3
#bit flagRF =pa.5
#bit FlagAvis=pa.6
static unsigned int8 segPP[140], minPP[140];
static unsigned int8 segEST,CPISEST, minEST, anio, hora, minuto, dia, mes,tempsmigsegEST, memoriaant, poshora;
static unsigned int8 tempsmigmin, tempsmigseg, tmpSEST, tmpMEST, metres;
static unsigned int8 pmrSEST, pmrMEST, pmlSEST, pmlMEST, LPUS, decim, userok;
static unsigned int8 MAUS, CPIS, adjust, NPUS,TEMPUS,posmenu, picA,posconf,VelmigEST;
static unsigned int8 posreg, pospar, user, posvis,usuari, memoria, copymemoria;
static unsigned int8 mint, seg, minP, segP, memo, DES, des1, CPOC, colocar1;
int8 datos_esp[20],recepcio[1],datos_gen[15];
static int1 fi1, fi2, fi3, fi4, fi31, fi32, fiborrar, fihora, fintransfer;
static int1 finalregistre, final, figrabar, fivisual, fimemoria, fiusb;
static int1 fisesio, finedar, escnedar, ficonfig, fiadjust;
int16 punt_segPP[140], punt_minPP[140];
int16 punt_segEST,punt_minEST,punt_CPISEST;
int16 punt_TEMPUS,punt_MAUS,punt_VelmigEST, punt_dia,punt_minuto,punt_anio,punt_hora,punt_mes;
int16 punt_pmlSEST, punt_pmrMEST, punt_pmrSEST, punt_tmpSEST, punt_tmpMEST;
int16 punt_pmlMEST, punt_CPIS, punt_LPUS, colocar, punt_NPUS, punt_memtope;
int hour,min,sec,day,mth,year,dow;
#include <lcd420.h>
#include <ds1302.c>
#include <24512.c>
#include <funcions.h>
#include <funcions1.h>
#include <punters1.h>
#include <pic18_usb.h> //Microchip PIC18Fxx5x Hardware layer for CCS's PIC USB driver
#include <PicWinUSB.h> //Descriptors and USB configuration
#include <usb.c> //handles usb setup tokens and get descriptor reports
void main()
{
port_b_pullups(true);
setup_adc_ports(NO_ANALOGS);
disable_interrupts(GLOBAL);
init_ext_eeprom();
lcd_init();
inicialización_variables();
while(1)
{
while (1)
{
output_high(PIN_B7);
}
......
Que creeis que puede ser el fallo?
- Grabación del PIC? He utilizado WinPIC800
- Connexión de los elementos citados para funcionamiento basico del PIC.
- Código.
- Error componentes (PIC, Cond, Rest, Cristal etc.)
Muchas gracias por adelantado

.
Edito: Por torpe
