TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: elloco en 19 de Febrero de 2008, 19:13:41
-
he hecho un programa en el que atraves d eun teclado un pic 16f84 y un lcd te visualice el numero pulsado del teclado por el lcd, pero mi duda es que ahora yo como hacerlo, se q es con el bit z pero no se si tengo q llevar al acumulador el 7 y guardarlo y despues preguntar xq hice eso xo no me sale nada me sigue igual. aqui os dejo el programa . Espero qme ayudeis, gracias.
LIST p=16F84A
RADIX HEX
INCLUDE<P16F84.INC>
GUARDA EQU 0C
CBLOCK 0x0D
ENDC
org 00h
goto INICIO
org 05h
Mensajes
addwf PCL,F
MENSAJE0
DT "Teclee Numero", 0x00
MENSAJE1
DT "Numero Correcto", 0x00
MENSAJE5
DT "Numero Incorrecto", 0x00
FinMensajes
ASCII addwf PCL,F
retlw '0'
retlw '1'
retlw '2'
retlw '3'
retlw '4'
retlw '5'
retlw '6'
retlw '7'
retlw '8'
retlw '9'
retlw 'A'
retlw 'B'
retlw 'C'
retlw 'D'
retlw '*'
retlw '#'
INCLUDE <TECLADO.ASM>
INICIO call LCD_Inicializa
bsf STATUS,RP0
movlw b'10000111'
movwf TMR0_OPT
clrf TRISA
bcf STATUS,RP0
movlw MENSAJE0
CALL LCD_Mensaje
SCAN call KEY_SCAN
movlw 0x80
subwf TECLA,W
btfsc STATUS,Z
goto SCAN
CALL KEY_OFF
call KEY_HEX
movf TECLA,W
call ASCII
movwf GUARDA
call LCD_Linea2
movf GUARDA,W
call LCD_Caracter
goto SCAN
INCLUDE <LCD_4BIT.INC>
INCLUDE <RETARDOS.INC>
INCLUDE <LCD_MENS.INC>
END
-
A ver si entiendo tu duda, quieres ver si por ejemplo una variable es igual a 7 ? y si es igual hacer una cosa y si no, hacer otra?
-
si por ejemplo si no no es igual a7 numero incorrecto y si numero correcto. es decir yo pulso el 7 y se visualiza x el lcd y si es 7 correcto sino no es correcto. no se como podria hacerlo.gracias
-
y esa instruccion si de verdad funciona en q parte del programa se introduce por a mi no me funciona quiza xq no la meti en la parte correspondiente. espero qme ayudeis.
-
bueno os relago la siguiente macro: si un registrop es igual a otro
IFFIF MACRO REG_1 , REG_2 , LBL_NO_SON_IGUALES ; ¿ REG_1 = REG_2?
MOVF REG_1, 0
XORWF REG_2, 0
BTFSS STATUS, Z
GOTO LBL_NO_SON_IGUALES
ENDM
;--------------------------------------------------- la macro se llama de la sioguiente manera
; ejemplo :
;.............................. DECLARO REGISTROS EN MPLAB
CBLOCK
VAR1, VAR2
ENDC
;
:-/
IFFIF VAR1, VAR2, SALIDA
.
.
. ;CODIGO SI SON IGUALES
SALIDA: ; CODIGO SI SON DIFERENTES