Buenas noches a todos, soy nuevo en el foro , el programa que estoy haciendo es un control de arranque, paro, inversion de giro, con corriente trifasica con el PIC16F88 mediante la comunicacion RS232 y una interfaz en labview estuve obligando a que mis librerias ocuparan memoria de otros bancos pero sin remedio de solucionar mi problema en proteus sobre desbordamiento de memoria y unos warnings que de mplab que les adjuntare, les agradeceria si me pudieran guiar , gracias.
Empezare con los Warnings y errores de desbordamiento y finalmente colocare el codigo y librerias.
WARNING!
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Release build of project `C:\Users\candi\Desktop\comunicacionserialPIC-PC\Pic16f88\RS232.disposable_mcp' started.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35
Thu Aug 27 00:25:50 2015
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Done.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F88 "RS232.ASM" /l"RS232.lst" /e"RS232.err"
Message[302] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\LCD_4BIT.INC 105 : Register in operand not in bank 0. Ensure that bank bits are correct.
Message[302] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\LCD_4BIT.INC 117 : Register in operand not in bank 0. Ensure that bank bits are correct.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 63 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 65 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 107 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 110 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 113 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 115 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 155 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 158 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 161 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 164 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 166 : Invalid RAM location specified.
Warning[219] C:\USERS\CANDI\DESKTOP\COMUNICACIONSERIALPIC-PC\PIC16F88\RETARDOS.INC 168 : Invalid RAM location specified.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\mplink.exe" /p16F88 "RS232.o" /z__MPLAB_BUILD=1 /o"RS232.cof" /M"RS232.map" /W /x
MPLINK 4.35, Linker
Copyright (c) 2009 Microchip Technology Inc.
Errors : 0
Loaded C:\Users\candi\Desktop\comunicacionserialPIC-PC\Pic16f88\RS232.cof.
----------------------------------------------------------------------
Release build of project `C:\Users\candi\Desktop\comunicacionserialPIC-PC\Pic16f88\RS232.disposable_mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.35, mplink.exe v4.35
Thu Aug 27 00:25:51 2015
----------------------------------------------------------------------
BUILD SUCCEEDED
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ERRORES PROTEUS
[PIC16 MEMORY] PC= 0x1AF. Attempt to write unimplemente memory location 0x001C with 0x15 ignored
[PIC16 MEMORY] PC= 0x1B1. Attempt to write unimplemente memory location 0x001B with 0xF9 ignored
[PIC16 MEMORY] PC= 0x1B3. Attempt to write unimplemente memory location 0x001B ignored
.......
..............
.................. Y asi sucesivamente
----------------------------------------------------------------------------------------------
CODIGO
; PROGRAMA PARA ARRANCAR,PARO, INVERSION DE GIRO DE UN MOTOR TRIFASICO CON INTERFAZ EN LABVIEW
LIST P=16F88
INCLUDE <P16f88.INC>
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
#DEFINE EnciendeMotor PORTB,3 ; Define dónde se sitúan las salidas.
#DEFINE ApagaMotor PORTB,2
#DEFINE Cambiodegiro PORTB,1
#DEFINE ArranqueInv PORTB,0
TeclaEmotor EQU 'e' ; Enciende el motor.
TeclaAmotor EQU 'a' ; Apaga el motor
TeclaIgiro EQU 'g' ; Invierte el giro
TeclaAinverso EQU 'r' ; Vuelve arrancar en sentido contrario
TeclaParada EQU ' ' ; Para el sistema.
; ZONA DE CÓDIGOS ********************************************************************
ORG 0
Inicio
call LCD_Inicializa
call RS232_Inicializa
bsf STATUS,RP0 ; Configura como salidas las 4 líneas del
bcf EnciendeMotor ; del Puerto B respetando la configuración del
bcf ApagaMotor ; resto de las líneas.
bcf Cambiodegiro
bcf ArranqueInv
bcf STATUS,RP0
call Parado ; En principio todas las salidas deben estar
Principal ; apagadas.
call RS232_LeeDato ; Espera a recibir un carácter.
call TesteaTeclado
goto Principal
; "Mensajes" ----------------------------------------------------------------------------
;
Mensajes
addwf PCL,F
MensajeParado
DT " SISTEMA PARADO", 0x00
MensajeEncendido
DT " MOTOR ENCENDIDO", 0x00
MensajeApagado
DT " MOTOR APAGADO", 0x00
MensajeArranque
DT " ARRANQUE DELTA", 0x00
MensajeCambio
DT " CAMBIO DE GIRO", 0x00
; Subrutina "TesteaTeclado" -------------------------------------------------------------
; Testea el teclado y actúa en consecuencia.
TesteaTeclado
movwf TeclaPulsada ; Guarda el contenido de la tecla pulsada.
xorlw TeclaEmotor ; ¿Es la tecla para encender el motor?
btfsc STATUS,Z
goto Adelante ; Sí, se desea encender el motor.
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TeclaAmotor ; ¿Es la tecla del movimiento para apagar el motor?
btfsc STATUS,Z
goto Atras ; Sí, se desea apagar el motor.
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TeclaIgiro ; ¿Es la tecla del movimiento para invertir el giro?
btfsc STATUS,Z
goto Izquierda ; Sí, se desea girar el motor.
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TeclaAinverso ; ¿Es tecla del movimiento arrancar con el giro invertido?
btfsc STATUS,Z
goto Derecha ; Sí, se desea arrancar en ese sentido.
movf TeclaPulsada,W ; Recupera el contenido de la tecla pulsada.
xorlw TeclaParada ; ¿Es la tecla para parar el sistema?.
btfss STATUS,Z
goto Fin ; No es ninguna tecla de movimiento. Sale.
Parado
bcf EnciendeMotor ; Como se ha pulsado la tecla de parada se
bcf ApagaMotor ; desactivan todas las salidas.
bcf Cambiodegiro
bcf ArranqueInv
movlw MensajeParado
goto Visualiza
Adelante
bcf ApagaMotor
bsf EnciendeMotor
bcf Cambiodegiro
bcf ArranqueInv
movlw MensajeEncendido
goto Visualiza
Atras
bcf EnciendeMotor
bsf ApagaMotor
bcf Cambiodegiro
bcf ArranqueInv
movlw MensajeApagado
goto Visualiza
Izquierda
bcf EnciendeMotor
bcf ApagaMotor
bsf Cambiodegiro
bcf ArranqueInv
movlw MensajeArranque
goto Visualiza
Derecha
bcf EnciendeMotor
bcf ApagaMotor
bcf Cambiodegiro
bsf ArranqueInv
movlw MensajeCambio
; Según el estado de las salidas visualiza el estado del sistema en el visualizador LCD y en
; el monitor del ordenador.
Visualiza
movwf MensajeApuntado ; Guarda la posición del mensaje.
call LCD_Borra ; Borra la pantalla del modulo LCD.
movf MensajeApuntado,W ; Visualiza el mensaje en la pantalla
call LCD_Mensaje ; del visualizador LCD.
call RS232_LineasBlanco ; Borra la pantalla del ordenador.
movf MensajeApuntado,W
call RS232_Mensaje ; Lo visualiza en el HyperTerminal.
call RS232_LineasBlanco
Fin return
INCLUDE <RS232.INC>
INCLUDE <RS232MEN.INC>
INCLUDE <LCD_4BIT.INC>
INCLUDE <LCD_MENS.INC>
INCLUDE <RETARDOS.INC>
END
LIBRERÍAS
Se las dejo todas en un link para que si van a probar, incluido el código.
www.mediafire.com/download/appechb5cp08e6j/Codigo+Librerias.rar