TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: albertoie en 27 de Abril de 2006, 13:50:19
-
LA ACLARACION QUE ME HICIERON SIRVIO PERO CON LO DEL REFRESCO SIGO CON PROBLEMAS HE INTENTADO HACERLO POR RETARDOS PERO SIGUE PASANDO LO MISMO, LA INTERRUPCION NO LA PUEDO USAR POR QUE LA TENGO OCUPDA CONTANDO TIEMPOS. ADJUNTO LA PARTE DEL CODIGO DONDE ENCONTRE LO QUE AFECTA EL DISPLAY
LA IDEA NO ES RESTAR NUMEROS, ES HABILITAR UN DIPLAY PRIMERO Y DESPUES EL OTRO, ESTO LO HAGO PORQUE UTILIZO EL MISMO PUERTO PARA ENVIAR LOS DATOS AL DISPLAY, ES UNA VISUALIZACION DINAMICA, ESTA PARTE DEL CODIGO HACE ESO HABILITA UNO MANDA EL DATO, DESPUES LO DESHABILITA, HABILITA EL OTRO Y MANDA EL DATO.
EL PROBLEMA ESTA EN QUE EL PRIMER DISPLAY QUE SE HABILITA ES EL QUE SE VE MENOS BRILLANTE
;*******RUTINA SALIDA DEL DATO AL PUERTO**********************************************
SALPUER BSF PORTA,4 ;DESHABILITA DIS1 CON EL TRANSISTOR
BSF PORTA,5 ;DESHABILITA DIS2 CON EL TRANSISTOR
MOVWF DATOP ;MUEVE EL DATO AL REGISTRO PARA PUERTO
BTFSS DATOP,7 ;REVISA EL BIT DE SIGNO PARA SABER SI ES - O +
GOTO PUERTO ;SI ES POSITIVO VA AL PUERTO
BCF DATOP,7 ;SI ES NEGATIVO LIMPIA EL BIT DE SIGNO
BSF SIGNO,7 ;GUARDA EL SIGNO DE VALOR NEGATIVO
PUERTO MOVLW .10 ;CARGA CON 10 PARA CONVERTIR BCD
DISPL SUBWF DATOP,1 ;HACE LA RESTA
BTFSS STATUS,0 ;REVISA EL RESULTADO
GOTO INICIAL ;SI ES MENOR DE 10 VA A INICIAL
INCF DATOP2,1 ;SI ES MAYOR DE 10 INCREMENTA
GOTO DISPL ;CONTINUA CON EL CICLO
INICIAL ADDWF DATOP,1 ;REGRESA EL VALOR INICIAL
MOVLW .1 ;ESTO DIRECCIONA LA POSISCION
MOVWF PCLATH ;DE LA TABLA DECO
MOVF DATOP2,W ;LLEVO EL DATO MAS ALTO AL PUERTO
CALL DECO ;TABLA DECODIFICADOR
BTFSS SIGNO,7 ;REVISA EL SIGNO
GOTO SALID1 ;SI ES CERO VA DIRECTO AL PUERTO
IORWF SIGNO,W ;SI ES UNO COLOCA EL BIT 7 EN UNO PARA MOSTRAR EN EL SALID1 BSF PORTA,4 ;DESHABILITA DIS1 CON EL TRASISTOR
BCF PORTA,5 ;HABILITA DIS2 CON EL TRANSISTOR
MOVWF PORTB ;CARGA EL DATO ALTO AL PUERTO
CALL RETM2 ;VA AL RETARDO PARA VISUALIZAR
MOVF DATOP,W ;CARGA EL DATO BAJO
CALL DECO ;TABLA DECODIFICADOR
CLRF PCLATH ;LIMPIA PCLATH PARA CONTROL DE TABLAS
BTFSS SIGNO,7 ;REVISA EL SIGNO
GOTO SALID2 ;SI ES CERO VA DIRECTO AL PUERTO
IORWF SIGNO,W ;SI ES UNO COLOCA EL BIT 7 EN UNO PARA MOSTRAR EN EL
SALID2 BCF PORTA,4 ;HABILITA DIS1 CON EL TRASISTOR
BSF PORTA,5 ;DESHABILITA DIS2 CON EL TRANSISTOR
MOVWF PORTB ;CARGA EL DATO AL PUERTO
CALL RETM2 ;VA AL RETARDO PARA VISUALIZAR
CLRF DATOP ;LIMPIA REGISTRO
CLRF DATOP2 ;LIMPIA EL REGISTRO DE INCREMENTO
CLRF SIGNO ;LIMPIA EL REGISTRO DE SIGNO
BSF DIS2,1 ;CAMBIA EL ESTADO DE LA BANDERA A UNO
RETURN
-
cual es la idea del programa ?
segun veo ¿quieres hacer una resta entre dos numeros?
me podrias dar mas informacion
-
hOLA.....
INICIAL ADDWF DATOP,1 ;REGRESA EL VALOR INICIAL
MOVLW .1 ;ESTO DIRECCIONA LA POSISCION
MOVWF PCLATH ;DE LA TABLA DECO
yO NO SE SI ESTARE 100% SEGURO... PERO HASTA DONDE TENGO ENTENDIDO, EN ESTE MOMENTO ESTAS MAPEANDO PARA OTRO BANCO DE LA EEPROM DE PROGRAMA..... NO SE SI ESO LO QUIERAS HACER A DREDE.....
POR OTRO LADO ESTAS USANDO LA PATITA DEL PIC RA4, LA CUAL ES COLECTOR ABIERTO, POR LO TANTO DEBES COLOCARLE UNA RESISTENCIA DE POR LO MENOS 1K A 5V PARA EVITAR PROBLEMAS EN LA CONMUTACIÓN DEL TRANSISTOR.......
DIME CUAL ES EL PROBLEMA EN CNCRETO QUE PRESENTA TU CIRCUITO,,¡¡
-
Hola.
Ando medio perdido y no se cual es tu duda.
Un detalle: si estas modificando codigo ajeno, te recomiendo que cambies:
MOVLW .1 ;ESTO DIRECCIONA LA POSISCION
MOVWF PCLATH ;DE LA TABLA DECO
por:
BANKSEL DECO
Un saludo.