¿Cómo se hace para programar un microcontrolador PIC?

2

Estoy trabajando en mi primer proyecto con un controlador de micron PIC, un PIC12F675.

¿Cómo puedo cargar un programa en el microcontrolador?

Compré para comenzar, pero realmente no sé cómo usarlo.

Estoy trabajando con Windows 7.
Instalé WinPic800 pero no parece estar detectando el programador cuando lo conecto a través de USB. Cuando hago clic en "Leer todo" (o en cualquier otra función), aparece el error "Error al abrir Ind. # 0".

¿Puede alguien decirme qué podría estar haciendo mal?

Gracias

    
pregunta Shubham

1 respuesta

4

Obtenga un mejor programador, como el Microchip PICkit 2 o PICkit 3. Funcionan "fuera de la caja" con el IDE de MPLAB, y obtiene depuración en el circuito, así como programación (necesita un encabezado especial si desea depurar el 12F675 ya que no tiene hardware de depuración en el chip). También recibirá mucha ayuda de otros usuarios en los foros de soporte de Microchip, y puede usarla con los tableros de desarrollo de bajo costo de Microchip.

Aquí hay un pequeño programa de prueba para el 12F675:

 
    ;flasher.asm
;simple program for PIC12F675 to flash LED on pin 5
;uses Timer0 for delay

list      p=12f675  ;list directive to define processor
#include "p12f675.inc"  ;processor specific variable definitions

errorlevel -302     ;suppress "not in bank 0" message

__CONFIG  _INTRC_OSC_CLKOUT

; ---------------------------------------------- ------------------- define ; ------------------------------------------------- ----------------

#define LED 2   ;GP2 (pin 5)
#define INIT_COUNT 10   ;

; ---------------------------------------------- ------------------- variables ; ------------------------------------------------- ----------------     cblock 0x20     tick_counter     endc

; ---------------------------------------------- -------------------- inicialización ; ------------------------------------------------- -----------------

;reset vector
org 0
nop
goto    Main

;interrupt vector
org 4
banksel INTCON
bcf     INTCON,T0IF     ;clear Timer0 interrupt flag
movlw   INIT_COUNT      ;re-initialise count
movwf   TMR0
decf    tick_counter,f
retfie

Principal:     Banksel OSCCAL; calibrador del oscilador     llamar 0x3FF; obtener el valor de cal     movwf OSCCAL; Calibrar     banksel ansel     movlw 11h; AN0 como entrada analógica, reloj de conversión Fosc / 8     movwf ANSEL     bankseL CMCON     movlw 07h; comparadores fuera     movwf CMCON     banksel TRISIO
    bcf TRISIO, LED; salida de LED GPIO5 (pin 2)     Banksel OPTION_REG     movlw b'00000011 '; preescala 1/128     movwf OPTION_REG;     banksel TMR0     movlw INIT_COUNT; inicialice el valor de conteo del temporizador     clrf tick_counter     movwf TMR0     bsf INTCON, GIE; habilita la interrupción global     bsf INTCON, T0IE; habilita la interrupción Timer0     banksel GPIO

; ---------------------------------------------- ------------------------- ; ciclo principal del programa ; ------------------------------------------------- ----------------------

bucle:     bsf GPIO, LED     llama dly     bcf GPIO, LED     llama dly     goto loop

dly     movlw 0x10     movwf tick_counter dly1:     movf tick_counter, f     skpz     goto dly1     volver

end

    
respondido por el Leon Heller

Lea otras preguntas en las etiquetas