<?xml version="1.0" encoding="UTF-8"?>        <rss version="2.0"
             xmlns:atom="http://www.w3.org/2005/Atom"
             xmlns:dc="http://purl.org/dc/elements/1.1/"
             xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
             xmlns:admin="http://webns.net/mvcb/"
             xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
             xmlns:content="http://purl.org/rss/1.0/modules/content/">
        <channel>
            <title>
									Buscando fallo del ASM - Ensamblador				            </title>
            <link>https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/</link>
            <description>Asociación de Robótica y Domótica de España</description>
            <language>es</language>
            <lastBuildDate>Wed, 07 Oct 2026 10:02:06 +0000</lastBuildDate>
            <generator>wpForo</generator>
            <ttl>60</ttl>
							                    <item>
                        <title>Re: Buscando fallo del ASM</title>
                        <link>https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31860</link>
                        <pubDate>Wed, 26 Aug 2009 14:11:31 +0000</pubDate>
                        <description><![CDATA[Tengo duplicada la etiqueta InicioEn:
	ORG	0
Inicio
	call	LCD_Inicializa

y en:
Inicio
	bsf		SalidaR1	; Como se ha pulsado la tecla de parada se
	bsf		SalidaR2	Ya encontré el fallo. Gracias....]]></description>
                        <content:encoded><![CDATA[Tengo duplicada la etiqueta <I>Inicio</I><br><br>En:
<CODE>	ORG	0
Inicio
	call	LCD_Inicializa</CODE>

y en:
<CODE>Inicio
	bsf		SalidaR1	; Como se ha pulsado la tecla de parada se
	bsf		SalidaR2	</CODE></blockquote><br><br>Ya encontré el fallo. Gracias. Lo de TRISA o PORTA no tiene nada que ver.]]></content:encoded>
						                            <category domain="https://www.arde.cc/foro/ensamblador/">Ensamblador</category>                        <dc:creator>Meta</dc:creator>
                        <guid isPermaLink="true">https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31860</guid>
                    </item>
				                    <item>
                        <title>Re: Buscando fallo del ASM</title>
                        <link>https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31857</link>
                        <pubDate>Wed, 26 Aug 2009 13:55:13 +0000</pubDate>
                        <description><![CDATA[Creo que eso da igual, PORTB y TRISB representan el mismo valor de memoria, lo que realmente selecciona entre uno u otro es el banco en el que estés trabajando, por lo que donde se pone uno ...]]></description>
                        <content:encoded><![CDATA[Creo que eso da igual, PORTB y TRISB representan el mismo valor de memoria, lo que realmente selecciona entre uno u otro es el banco en el que estés trabajando, por lo que donde se pone uno se puede poner el otro obteniendo el resultado esperado.<br><br>Probablemente el error lo tengas en los includes, mira que no tengas una etiqueta duplicada en un include y en tu programa.]]></content:encoded>
						                            <category domain="https://www.arde.cc/foro/ensamblador/">Ensamblador</category>                        <dc:creator>Goblin Welder</dc:creator>
                        <guid isPermaLink="true">https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31857</guid>
                    </item>
				                    <item>
                        <title>Re: Buscando fallo del ASM</title>
                        <link>https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31853</link>
                        <pubDate>Wed, 26 Aug 2009 13:27:01 +0000</pubDate>
                        <description><![CDATA[Yo creo que el problema lo tienes aquí:      bsf      STATUS,RP0            ; Configura como salidas las 4 líneas del   bcf      SalidaR1         ; del Puerto B respetando la configuración d...]]></description>
                        <content:encoded><![CDATA[Yo creo que el problema lo tienes aquí:<br>   <br>   bsf      STATUS,RP0            ; Configura como salidas las 4 líneas del<br>   bcf      SalidaR1         ; del Puerto B respetando la configuración del<br>   bcf      SalidaR2            ; resto de las líneas.<br>   bcf      SalidaR3<br>   bcf      SalidaR4<br>   bcf      STATUS,RP0<br><br>ya que SalidaR1 hace referencia al PORTB,3 y no al TRISB,3, que es donde se configuran los puertos como entradas o salidas. Lo mismo para las otras SalidaRn.]]></content:encoded>
						                            <category domain="https://www.arde.cc/foro/ensamblador/">Ensamblador</category>                        <dc:creator>El_Pack</dc:creator>
                        <guid isPermaLink="true">https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-31853</guid>
                    </item>
				                    <item>
                        <title>Buscando fallo del ASM</title>
                        <link>https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-2711</link>
                        <pubDate>Wed, 26 Aug 2009 12:57:55 +0000</pubDate>
                        <description><![CDATA[Hola:Estoy con el ASM del PIC-16F84A y me aparece este error compilado con el MPLAB v8.36.----------------------------------------------------------------------Release build of project `C:PI...]]></description>
                        <content:encoded><![CDATA[Hola:<br><br>Estoy con el ASM del PIC-16F84A y me aparece este error compilado con el MPLAB v8.36.<br><br>----------------------------------------------------------------------<br>Release build of project `C:PIC16F84AMeta_Control.disposable_mcp' started.<br>Language tool versions: MPASMWIN.exe v5.33, mplink.exe v4.33<br>Wed Aug 26 13:35:17 2009<br>----------------------------------------------------------------------<br>Clean: Deleting intermediary and output files.<br>Clean: Done.<br>Executing: "C:Archivos de programaMicrochipMPASM SuiteMPASMWIN.exe" /q /p16F84A "Meta_Control.asm" /l"Meta_Control.lst" /e"Meta_Control.err"<br>Error   C:PIC16F84AMETA_CONTROL.ASM 202 : Address label duplicated or different in second pass (Inicio)<br>Message C:PIC16F84ALCD_4BIT.INC 93 : Register in operand not in bank 0.  Ensure that bank bits are correct.<br>Message C:PIC16F84ALCD_4BIT.INC 105 : Register in operand not in bank 0.  Ensure that bank bits are correct.<br>Halting build on first failure as requested.<br>----------------------------------------------------------------------<br>Release build of project `C:PIC16F84AMeta_Control.disposable_mcp' failed.<br>Language tool versions: MPASMWIN.exe v5.33, mplink.exe v4.33<br>Wed Aug 26 13:35:19 2009<br>----------------------------------------------------------------------<br>BUILD FAILED<br><br>Su código fuente es:
<CODE><i>
</i>; ZONA DE DATOS **********************************************************************

	LIST		P=16F84A
	INCLUDE		&lt;P16F84A.INC&gt;
	__CONFIG	_CP_OFF &amp;  _WDT_OFF &amp; _PWRTE_ON &amp; _XT_OSC

	CBLOCK   0x0C		
	TeclaPulsada					; Va a guardar el contenido de la tecla pulsada.
	MensajeApuntado					; Va a guarda la dirección del mensaje apuntado.
	ENDC

#DEFINE  SalidaR1		PORTB,3	; Define dónde se sitúan las salidas.
#DEFINE  SalidaR2		PORTB,2
#DEFINE  SalidaR3		PORTB,1
#DEFINE  SalidaR4		PORTB,0


TECLA_RELE_1_ON		EQU	'q'				; Código de las teclas utilizadas.
TECLA_RELE_1_OFF	EQU	'a'
TECLA_RELE_2_ON		EQU	'w'
TECLA_RELE_2_OFF	EQU	's'
TECLA_RELE_3_ON		EQU	'e'
TECLA_RELE_3_OFF	EQU	'd'
TECLA_RELE_4_ON		EQU	'r'
TECLA_RELE_4_OFF	EQU	'f'
TECLA_INICIO		EQU 'z'
TECLA_PARADA		EQU	' '
TECLA_INFO			EQU 'i'				; Código de la tecla espaciadora, (hay un espacio,
									; tened cuidado al teclear el programa).
; 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		SalidaR1			; del Puerto B respetando la configuración del
	bcf		SalidaR2				; resto de las líneas.
	bcf		SalidaR3
	bcf		SalidaR4
	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
Mensaje_R1_ON
	DT "RELE 1 ON", 0x00
Mensaje_R1_OFF
	DT "RELE 1 OFF", 0x00
Mensaje_R2_ON
	DT "RELE 2 ON", 0x00
Mensaje_R2_OFF
	DT "RELE 2 OFF", 0x00
Mensaje_R3_ON
	DT "RELE 3 ON", 0x00
Mensaje_R3_OFF
	DT "RELE 3 OFF", 0x00
Mensaje_R4_ON
	DT "RELE 4 ON", 0x00
Mensaje_R4_OFF
	DT "RELE 4 OFF", 0x00
Mensaje_Info
	DT "FirmWare v1.00", 0x00
Mensaje_Inicio
	DT "Todos activos", 0x00

; Subrutina "TesteaTeclado" -------------------------------------------------------------
;
; Testea el teclado y actúa en consecuencia.

TesteaTeclado
	movwf	TeclaPulsada			; Guarda el contenido de la tecla pulsada.
	xorlw	TECLA_RELE_1_ON			; ¿Es la tecla del movimiento hacia adelante?
	btfsc	STATUS,Z
	goto	R1_ON				; Sí, se desea movimiento hacia adelante.
;
	movf	TeclaPulsada,W			; Recupera el contenido de la tecla pulsada.
	xorlw	TECLA_RELE_1_OFF			; ¿Es la tecla del movimiento hacia atrás?
	btfsc	STATUS,Z
	goto	R1_OFF					; Sí, se desea movimiento hacia atrás.
;
	movf	TeclaPulsada,W			; Recupera el contenido de la tecla pulsada.
	xorlw	TECLA_RELE_2_ON				; ¿Es la tecla del movimiento hacia la izquierda?
	btfsc	STATUS,Z
	goto	R2_ON				; Sí, se desea movimiento hacia la izquierda.
;
	movf	TeclaPulsada,W			; Recupera el contenido de la tecla pulsada.
	xorlw	TECLA_RELE_2_OFF				; ¿Es tecla del movimiento hacia la derecha?
	btfsc	STATUS,Z
	goto	R2_OFF				; Sí, se desea movimiento hacia la derecha.
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_RELE_3_ON				
	btfsc	STATUS,Z
	goto	R3_ON				
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_RELE_3_OFF				
	btfsc	STATUS,Z
	goto	R3_OFF				
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_RELE_4_ON				
	btfsc	STATUS,Z
	goto	R4_ON				
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_RELE_4_OFF				
	btfsc	STATUS,Z
	goto	R4_OFF					
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_INICIO				
	btfsc	STATUS,Z
	goto	Inicio					
;
	movf	TeclaPulsada,W			
	xorlw	TECLA_INFO				
	btfsc	STATUS,Z
	goto	Info					
;
	movf	TeclaPulsada,W			; Recupera el contenido de la tecla pulsada.
	xorlw	TECLA_PARADA			; ¿Es la tecla de parada?.
	btfss	STATUS,Z
	goto	Fin						; No es ninguna tecla de movimiento. Sale.
Parado
	bcf		SalidaR1			; Como se ha pulsado la tecla de parada se
	bcf		SalidaR2				; desactivan todas las salidas.
	bcf		SalidaR3
	bcf		SalidaR4
	movlw	MensajeParado
	goto	Visualiza
R1_ON
	bsf		SalidaR1
	movlw	Mensaje_R1_ON
	goto	Visualiza
R1_OFF
	bcf		SalidaR1
	movlw	Mensaje_R1_OFF
	goto	Visualiza
R2_ON
	bsf		SalidaR2
	movlw	Mensaje_R2_ON
	goto	Visualiza
R2_OFF
	bcf		SalidaR2
	movlw	Mensaje_R2_OFF
	goto	Visualiza
R3_ON
	bsf		SalidaR3
	movlw	Mensaje_R3_ON
	goto	Visualiza
R3_OFF
	bcf		SalidaR3
	movlw	Mensaje_R3_OFF
	goto	Visualiza
R4_ON
	bsf		SalidaR4
	movlw	Mensaje_R4_ON
	goto	Visualiza
R4_OFF
	bcf		SalidaR4
	movlw	Mensaje_R4_OFF
	goto	Visualiza
Inicio
	bsf		SalidaR1			; Como se ha pulsado la tecla de parada se
	bsf		SalidaR2				; desactivan todas las salidas.
	bsf		SalidaR3
	bsf		SalidaR4
	movlw	Mensaje_Inicio
	goto	Visualiza
Info
	movlw	Mensaje_Info

; 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  &lt;RS232.INC&gt;
	INCLUDE  &lt;RS232MEN.INC&gt;
	INCLUDE  &lt;LCD_4BIT.INC&gt;
	INCLUDE  &lt;LCD_MENS.INC&gt;
	INCLUDE  &lt;RETARDOS.INC&gt;
	END
</CODE>]]></content:encoded>
						                            <category domain="https://www.arde.cc/foro/ensamblador/">Ensamblador</category>                        <dc:creator>Meta</dc:creator>
                        <guid isPermaLink="true">https://www.arde.cc/foro/ensamblador/buscando-fallo-del-asm/#post-2711</guid>
                    </item>
							        </channel>
        </rss>
		