TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: lisandrorondon en 20 de Abril de 2020, 19:11:57
-
Hola, instale la ultima versión de mplab en win7. Escribí un programa muy sencillo en lenguaje pic asm pero el programa no me compila. Hay que instalar otra aplicacion? Hice la descarga del mplab de la pagina oficial, entiendo es gratis y no me ha pedido licencia.
Estoy trabajando con un pic 16f84a, como hago para compilar, o que debo tener adicional a la aplicacion mplab?
Este seria el programa, por favor me dejan saber sus opiniones y correcciones. Gracias
(Estoy retomando la programacion en PIC comienzo por lo mas basico)
;///// ENCABEZADO Y DESCRIPCION DEL PROGRAMA /////
; FUNCION DEL PROGRAMA:
; MICRO CONTROLADO A USAR: PIC16F84A
list p=16f84a
#include "p16f84a.inc"
;///// CONFIGURACION DE PERIFERICOS INT / EXT /////
; __config 0x3FF9
__CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _CP_OFF
;///// DEFINICION DE VARIABLES O REGISTROS /////
;VAR1 EQU 0X00
;///// DEFINICION DE SUB RUTINAS /////
;///// DEFINICION DE RESET /////
ORG 0x00H ; processor reset vector
GOTO CONFIGURA
; go to beginning of program
ORG 0X05H ;direccion de interrupcion
;///// CONFIGURACION DE PUERTOS /////
CONFIGURA
BSF STATUS,RP0 ;SALTO A BANCO 1
MOVLF TRISA,'00011111' ;PUERTO A ENTRADA
MOVLF TRISB,'00000000' ;PUERTO B SALIDA
BCF STATUS,RP0 ;SALTO A BANCO 0
;VA A INICIO PROGRAMA
;///// DEFINICION DE INTERRUPCIONES SI SON USADAS /////
;///// PROGRAMA PRINCIPAL /////
;MAIN_PROG CODE
; let linker place main program
INICIO
BTFSS PORTA,0
MOVF PORTB,0XFF
MOVF PORTB,0X00
GOTO INICIO ; loop forever
END
-
Con MPLAB X es suficiente para compilar ASM, si queres programar en C, ya necesitas alguno de los compiladores XC8, XC16 o XC32 segun los PICs que desees programar.
-
Quizás voy a decir una tonteria de novato pero,
ORG 0x00H
A mi personalmente no me compila si hago la doble indicación hexadecimal.
0x00
ó
00h
por otro lado:
MOVLF TRISA,'00011111' ;PUERTO A ENTRADA
No encuentro la instrucción MOVLF en el datasheet ni como pseudoInstrucción.
Prueba lo de:
MOVLW b'00011111'
MOVWF TRISA
Espero haber sido de ayuda.
-
Si, cuando dijo que no le compilaba, asumi que no podia compilar, y no que estaba teniendo errores. No se en que estaba pensando...
Pero los errores usualmente te indican la linea donde ocurren.
-
Gracias a todos por las observaciones. Logre revisar unos errores y pude compilar ese programa muy basico desde el MPLAB XPRESS desde internet, el programa ejecuta bien, sin embargo no he podido compilar en MPLAB X usando el compilador XC8 en mi computador. Alguien sabe si hay que configurar algo adicional luego de las instalaciones de los dos programas?
Gracias
-
Gracias a todos por las observaciones. Logre revisar unos errores y pude compilar ese programa muy basico desde el MPLAB XPRESS desde internet, el programa ejecuta bien, sin embargo no he podido compilar en MPLAB X usando el compilador XC8 en mi computador. Alguien sabe si hay que configurar algo adicional luego de las instalaciones de los dos programas?
Gracias
Que tal lisandrorondon,
Tu código está escrito usando ensamblador, por lo que no necesitas el compilador C (XC8), si estás intentando compilarlo con XC8 obtendrás cientos de errores, debes usar solamente el ensamblador de MPLABX
elreypic.
-
Si tenés instalado el Proteus, ensamblás con el MPASM del mismo Proteus.