Hola:
Probando el MPLAB X 1.60 otra vez, ya que llevo un año sin tocarlo.
Creo un proyecto y se me cre una carpeta con mucho subdirectorios y archivos.
Tengo archivos .asm, .inc en ensamblador. No se ni donde ponerlo exactamente ya que ponga donde lo ponga me sale error.
ERROR:
Probando el MPLAB X 1.60 otra vez, ya que llevo un año sin tocarlo.
Creo un proyecto y se me cre una carpeta con mucho subdirectorios y archivos.
Tengo archivos .asm, .inc en ensamblador. No se ni donde ponerlo exactamente ya que ponga donde lo ponga me sale error.
Código:
;
; EJEMPLO 3-12
; Autor: Mikel Etxebarria
; Orozko-Bizkaia, Julio 2010
;
;El manejo de la pantalla LCD, más mensajes todavía.
;
;Este ejemplo pretende introducirnos en el manejo de la pantalla LCD, para la visualización
;de diferentes mensajes.
;
List p=16F886 ;Tipo de procesador
include "P16F886.INC" ;Definiciones de registros internos
#define Fosc 4000000 ;Velocidad de trabajo
;Ajusta los valores de las palabras de configuración durante el ensamblado.Los bits no empleados
;adquieren el valor por defecto.Estos y otros valores se pueden modificar según las necesidades
__config _CONFIG1, _LVP_OFF&_PWRTE_ON&_WDT_OFF&_EC_OSC&_FCMEN_OFF&_BOR_OFF ;Palabra 1 de configuración
__config _CONFIG2, _WRT_OFF ;Palabra 2 de configuración
Temporal_1 equ 0x20 ;Variable temporal
Temporal_2 equ 0x21 ;Variable temporal
Lcd_var equ 0x70 ;Variables (3) empleadas por las rutinas de manejo del LCD
MSE_Delay_V equ 0x73 ;Variables (3) empleadas por las macros de temporización
org 0x00 ;Vector de RESET
goto Inicio
org 0x05
;******************************************************************************************
;Según el valor contenido en el registro W, se devuelve el carácter a visualizar
Tabla_Mensajes movwf PCL ;Calcula el desplazamiento sobre la tabla
;***********************************************************************************
;La directiva DT genera tantas intsrucciones RETLW como bytes o caracteres contenga
Mens_0 equ $ ;Mens_0 apunta al primer carácter del mensaje 0
dt "Hola",0x00
Mens_1 equ $ ;Mens_1 apunta al primer carácter del mensaje 1
dt "Foros de elec.",0x00
Mens_2 equ $ ;Mens_2 apunta al primer carácter del mensaje 2
dt "Bueno.",0x00
Mens_3 equ $ ;Mens_3 apunta al primer carácter del mensaje 3
dt "Hasta otra",0x00
include "LCD4bitsPIC16.inc" ;Incluye las rutinas de manejo del LCD
include "MSE_Delay.inc" ;Incluir rutinas de temporización
;*************************************************************************************
;Mensaje: Esta rutina envía a la pantalla LCD el mensaje cuyo inicio está indicado en
;el acumulador. El fin de un mensaje se determina mediante el código 0x00
Mensaje movwf Temporal_1 ;Salva posición de la tabla
Mensaje_1 movf Temporal_1,W ;Recupera posición de la tabla
call Tabla_Mensajes ;Busca caracter de salida
movwf Temporal_2 ;Guarda el caracter
movf Temporal_2,F
btfss STATUS,Z ;Mira si es el último
goto Mensaje_2
return
Mensaje_2 call LCD_DATO ;Visualiza en el LCD
incf Temporal_1,F ;Siguiente caracter
goto Mensaje_1
;Programa principal
Inicio clrf PORTB
clrf PORTA ;Borra los latch de salida
bsf STATUS,RP0
bsf STATUS,RP1 ;Banco 3
clrf ANSEL ;Puerta A digital
clrf ANSELH ;Puerta B digital
bcf STATUS,RP1 ;Banco 1
movlw b'11110001'
movwf TRISA ;RA1-RA3 salidas
movlw 0xf0
movwf TRISB ;RB0-RB3 salidas
bcf STATUS,RP0 ;Banco 0
call UP_LCD ;Configura puertos para LCD
call LCD_INI ;Secuencia de inicio del LCD
movlw b'00001100'
call LCD_REG ;Envía instrucción: LCD ON, Cursor OFF y blink OFF
Loop movlw b'00000001'
call LCD_REG ;Borra LCD y Home (colocar cursor en 1ª posición)
movlw Mens_0
call Mensaje ;Visualiza el mensaje 0
movlw b'11000101'
call LCD_REG ;Coloca cursor en 2ª fila del LCD
movlw Mens_1
call Mensaje ;Visualiza mensaje 1
Delay 1000 Milis ;Temporiza 1 seg.
movlw b'00000001'
call LCD_REG ;Borra LCD y Home (colocar cursor en 1ª posición)
movlw Mens_2
call Mensaje ;Visualiza el mensaje 2
movlw b'11000000'
call LCD_REG ;Coloca cursor en 2ª fila del LCD
movlw Mens_3
call Mensaje ;Visualiza el mensaje 3
Delay 1000 Milis ;Temporiza 1 seg.
goto Loop
end ;Fin del programa fuente
Un ejemplo:make -f nbproject/Makefile-default.mk SUBPROJECTS= .build-conf
make[1]: Entering directory `C:/Users/Meta/MPLABXProjects/Prueba_01.X'
make -f nbproject/Makefile-default.mk dist/default/production/Prueba_01.X.production.hex
make[2]: Entering directory `C:/Users/Meta/MPLABXProjects/Prueba_01.X'
"C:\Program Files (x86)\Microchip\MPLABX\mpasmx\mpasmx.exe" -q -p16f886 -l"build/default/production/build/default/debug/Ejemplo 3-12.lst" -e"build/default/production/build/default/debug/Ejemplo 3-12.err" -o"build/default/production/build/default/debug/Ejemplo 3-12.o" "build/default/debug/Ejemplo 3-12.asm"
Error[151] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 38 : Operand contains unresolvable labels or is too complex
Error[151] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 41 : Operand contains unresolvable labels or is too complex
Error[151] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 44 : Operand contains unresolvable labels or is too complex
Error[151] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 47 : Operand contains unresolvable labels or is too complex
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 53 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 55 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 56 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 58 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 67 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 70 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 92 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\LCD4BITSPIC16.INC 94 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 74 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 75 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 78 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] BUILD\DEFAULT\DEBUG\EJEMPLO 3-12.ASM 80 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[311] BUILD\DEFAULT\DEBUG\MSE_DELAY.INC 40 : Operand of HIGH operator was larger than H'FFFF'.
Message[311] BUILD\DEFAULT\DEBUG\MSE_DELAY.INC 40 : Operand of HIGH operator was larger than H'FFFF'.
make[2]: *** [build/default/production/build/default/debug/Ejemplo 3-12.o] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
make[2]: Leaving directory `C:/Users/Meta/MPLABXProjects/Prueba_01.X'
make[1]: Leaving directory `C:/Users/Meta/MPLABXProjects/Prueba_01.X'
BUILD FAILED (exit value 2, total time: 2s)