desktop

No consigo grabar el pic

Hola a todos. Muchachos, tengo un problema similar al de deimos1000 y tlaloc.
Resulta que tenía un PIC16F628A y trabajaba muy bien antes, pero ahora no funciona por nada....
El circuito es el básico de un LED intermitente y el código similar.

Es más, sé que ese ejemplo es del libro PICBasic de Reyes, pero mi PIC no funciona por nada.
Compré 2PIC[/SIZE]16F628A nuevos y nada.......

Estoy usando MicroCode estudio Plus, de compilador instalé el PBP y una carpeta de MPLAB.Estoy usando el esquema básico sin oscilador, sólo 5 V, su tierra, una resistencia con un LED en la salida y nada...

Tengo Windows 8 de 64 bits y el código es similar al que inicialmente tuvo deimos 1000 y tlaloc.

Por-favor, necesito ayuda.
 
Última edición por un moderador:
¿Qué programador estás usando?
Mencionas que el PIC no funciona, ¿pero cuál es el problema?
¿Qué hace o qué no hace?
¿El compilador o el programador muestra o errores?

Adjunta el programa que estás usando, porque puedes tener problemas con la palabra de configuración.
 
Bueno, leí todo el tema y al parecer es que estoy compilando usando MPASMWIN520.

Al comienzo el PIC no funciona con ningún ejemplo porque no configuraba los fuses y creo que MicroCode graba con oscilador externo y yo lo estaba montando sin oscilador, o sea, que funcione el interno, ahora sé que por eso el PIC no funcionaba.

1. Ahora necesito compilar programas configurados con el uso de oscilador interno, o sea, sin usar el cristal de 4 MHz.

2. Uso MicroCode Studio Plus 4.0, PBP 2.60, MPASMWIN520 y Windows 8.1 de 64 bits.
Creé una carpeta llamada PBP ejercicios cerca a la carpeta PBP para que no genere error de dirección larga al compilar y guardar el hex, todo esto en la unidad C .

3. Ayuda en cómo configurar los fuses desde el Microcode introduciendo la configuración compatible con MPASM, o otra forma que se pueda.

4. Estoy implementado un contador de pulsos con 3 entradas y visualización por LCD 16x2.

PHP:
' DEFINICIÓN DE REGISTROS PARA EL LCD
Define LCD_DREG PORTB 'Utilizar 4 bits del puerto B para tx de datos
Define LCD_DBIT 4     'Desde el Bit B.4 al Bit B.7
Define LCD_RSREG PORTB'Selección del puerto del registro 
Define LCD_RSBIT 3    'En el bit B.1
Define LCD_EREG PORTB 'Utilizar el enable en el puerto B
Define LCD_EBIT 2     'En el bit B.2

CMCON = 7 ;convierte en digitales el puerto A
trisb=0 ;hace salidas sólo los bits más bajos de Puerto B
numero1 VAR word ;crea la variable número con valor 255
numero2 VAR word
numero3 VAR word
bot1 VAR porta.0
bot2 VAR porta.1
bot3 VAR porta.2

pause 200
LCDOUT $FE, 1 ;limpiar pantalla LCD
LCDOUT $FE,$80,"GAN" ;cursor en el casillero 3 de la 1era línea
LCDOUT $FE,$86,"TROL" ;cursor en el casillero 3 de la 1era línea
LCDOUT $FE,$8C,"PUEN" ;cursor en el casillero 3 de la 1era línea
LCDOUT $FE,$C0, DEC numero1
LCDOUT $FE,$C6, DEC numero2
LCDOUT $FE,$CC, DEC numero3

contar1:
IF bot1=0 THEN aumentar1
contar2:
IF bot2=0 THEN aumentar2
contar3:
IF bot3=0 THEN aumentar3   
goto contar1

aumentar1:
IF bot1=0 THEN aumentar1
numero1=numero1 + 1
LCDOUT $FE,$C0, DEC numero1  
pause 200
goto contar2

aumentar2:
IF bot2=0 THEN aumentar2
numero2=numero2 + 1 
LCDOUT $FE,$C6, DEC numero2
pause 200
goto contar3

aumentar3:
IF bot3=0 THEN aumentar3
numero3=numero3 + 1 
LCDOUT $FE,$CC, DEC numero3
pause 200
goto  contar1
end
Hasta aquí me compila bien, pero como les repito, creo que escribiéndolo así funciona con oscilador externo y quiero configurar para que funcione el interno y cómo configurar el Master Clear y demás fuses.

Gracias de antemano.

Adjunté imágenes y agradezco infinitamente su ayuda.
 

Adjuntos

  • contador de pulsos.rar
    14.4 KB · Visitas: 1
  • a1.jpg
    a1.jpg
    175.8 KB · Visitas: 8
  • a2.jpg
    a2.jpg
    165.5 KB · Visitas: 6
  • a3.jpg
    a3.jpg
    179.2 KB · Visitas: 6
  • a5.jpg
    a5.jpg
    163 KB · Visitas: 6
  • a6.jpg
    a6.jpg
    354.1 KB · Visitas: 7
Última edición por un moderador:
tengo 2 el pickit 2 original y grabo con su sofware original y un grabador pickit 2 clone que tambien grabo con su sofware original

este ultimo cuando trato de borrar el pic 16f628a no lo borra todo al chequear si esta en blanco sale un error con mensaje en rojo eso pasa con el pickit 2 clone con el original lo deja en blanco asumo que el por el grabador
 
Bien, en el Pickit 2 hay una opción donde se puede configurar manualmente los bits que definen el tipo de oscilador a usar. Es cuestión de modificar esos bits. En la hoja de datos del respectivo micro en la sección "Configuration bits" están los valores que deben de tomar para configurar uno u otro oscilador.

Otra cosa, el problema que mencionas me suena a un problema con la entrada del voltaje de programación y VCC del micro. De igual forma el Pickit2 cuenta con la opción "Vpp first", con esto, el programador coloca VPP en MCLR antes de VDD, así se evita que el micro comience a ejecutar el programa cuando se está configurado el oscilador interno.

Este tema ya se ha tratado aquí en el foro y se dan otras alternativas.

Saludos
 
Atrás
Arriba