Hola que hay? Me gustaría saber si alguien ha probado este circuito para programar pic.
aqui os dejo el link de la pagina donde lo he sacado: http://r-luis.xbot.es/project/grab_pic.html
Soy novato en el tema, casi no se lenguaje de programación, se mas C que assembler, asi que me fui a esta pagina para aprender a manejarlos. http://r-luis.xbot.es/pic1/pic01.html Es un tutorial de 10 páginas sobre los pic y de alli saque el circuito programador (Hardware). Instale todos los programas que estan en la pagina 6, el compilador (Para pasar archivos a hexadecimal) y el programador, pero a la hora de programar me dice que hay un error en el código. El codigo es este:
Que es lo que hago mal?, he seguido al pie de la letra los pasos de la pagina pero no consigo programarlo.
aqui os dejo el link de la pagina donde lo he sacado: http://r-luis.xbot.es/project/grab_pic.html
Soy novato en el tema, casi no se lenguaje de programación, se mas C que assembler, asi que me fui a esta pagina para aprender a manejarlos. http://r-luis.xbot.es/pic1/pic01.html Es un tutorial de 10 páginas sobre los pic y de alli saque el circuito programador (Hardware). Instale todos los programas que estan en la pagina 6, el compilador (Para pasar archivos a hexadecimal) y el programador, pero a la hora de programar me dice que hay un error en el código. El codigo es este:
Código:
;---------------Encabezado-------------
LIST p=16f84
radix hex
;------------mapa de memoria---------
estado equ 0x03 ; Haciendo asignaciones
TRISB equ 0x06
ptob equ 0x06
reg1 equ 0x0C ; Estos 3 registros los utilizaré
reg2 equ 0x0D ; para hacer el retardo
reg3 equ 0x0E
;-------Configuración de puertos-------
reset org 0x00 ; origen del programa, aquí comenzará
; siempre que ocurra un reset
goto inicio ; salta a "inicio"
inicio bsf estado,5 ; pone rp0 a 1 y pasa al banco1
movlw b'00000000' ; carga W con 00000000
movwf TRISB ; y pasa el valor a trisb
bcf estado,5 ; pone rp0 a 0 y regresa al banco0
;----Aquí enciende y apaga el LED-----
ahora bsf ptob,0 ; pone un 1 en RB0 (enciende el LED)
call retardo ; llama al retardo
bcf ptob,0 ; pone a 0 RB0 (apaga el LED)
call retardo ; llama al retardo
goto ahora ; repite todo de nuevo
;-----------Rutina de Retardo-----------
retardo movlw 10 ; Aquí se cargan los registros
movwf reg1 ; reg1, reg2 y reg3
; con los valores 10, 20 y 30
tres movlw 20 ; respectivamente
movwf reg2
dos movlw 30
movwf reg3
uno decfsz reg3,1 ; Aquí se comienza a decrementar
goto uno ; Cuando reg3 llegue a 0
decfsz reg2,1 ; le quitare 1 a reg2
goto dos ; cuando reg2 llegue a 0
decfsz reg1,1 ; le quitare 1 a reg1
goto tres ; cuando reg1 llegue a 0
retlw 00 ; regresare al lugar
; de donde se hizo la llamada
;------------------------------------------
end ; se acabó
;------------------------------------------
Que es lo que hago mal?, he seguido al pie de la letra los pasos de la pagina pero no consigo programarlo.
Última edición: