Bueno, generalmente no soy de preguntar, por lo q ven en mi cantidad de post, pero se me quemaron los libros tratando de descifrar esto, Estoy haciendo un proyecto para la universidad, que es un detector de alta y baja tension monofasico, donde me indica en un display la tension q esta en ese momento.
Resulta que hice todo el programa en el MPLAB, y me anda de maravillas, pero cuando lo puse en el circuito..... realmente no me anduvo nada . Revise por todos lados, todas las tensiones que llegan al PIC estan bien. Realize un mini programa aunque sea para q me logre prender los segmentos de 1 display, aunque sea eso,, y tampoco nada. Yo uso el reloj interno, eh buscado atraves de todo el internet sobre este, incluso me lei el PDF del PIC16F887. Lo configure,, pero... sigue sin andar . El PIC esta bien, me permite grabar y leer, es mas.... es nuevo.
Este es el codigo que tengo para probar aunque sea si prende, lo unico q tiene el PIC conectado es una resitencia de 1k y un capcitor de .1uf a la pata del MCLR. El oscilador me decididi a usar el interno, asi q no hay ninguno externo. Como uso el puerto D para prender los displays pense q no podia darme 5V y prenderme el segmento, asi q le puse una resistencia de 1k como pull-up. Todo esto fue ante la duda, pero sigue sin funcionar. El codigo esta bien. Lo pruebo con el proteus y anda de maravillas, lo simulo con el MPLAB y tambien, pero lo unico q me deja la incertidumbre es el oscilador, y no tengo osciloscopio como para verlo en la pata de CLKOUT.
Desde ya muchas gracias por la ayuda.
Resulta que hice todo el programa en el MPLAB, y me anda de maravillas, pero cuando lo puse en el circuito..... realmente no me anduvo nada . Revise por todos lados, todas las tensiones que llegan al PIC estan bien. Realize un mini programa aunque sea para q me logre prender los segmentos de 1 display, aunque sea eso,, y tampoco nada. Yo uso el reloj interno, eh buscado atraves de todo el internet sobre este, incluso me lei el PDF del PIC16F887. Lo configure,, pero... sigue sin andar . El PIC esta bien, me permite grabar y leer, es mas.... es nuevo.
Este es el codigo que tengo para probar aunque sea si prende, lo unico q tiene el PIC conectado es una resitencia de 1k y un capcitor de .1uf a la pata del MCLR. El oscilador me decididi a usar el interno, asi q no hay ninguno externo. Como uso el puerto D para prender los displays pense q no podia darme 5V y prenderme el segmento, asi q le puse una resistencia de 1k como pull-up. Todo esto fue ante la duda, pero sigue sin funcionar. El codigo esta bien. Lo pruebo con el proteus y anda de maravillas, lo simulo con el MPLAB y tambien, pero lo unico q me deja la incertidumbre es el oscilador, y no tengo osciloscopio como para verlo en la pata de CLKOUT.
Código:
LIST P=16F887
INCLUDE <P16F887.INC>
__CONFIG _CONFIG1, _INTOSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOR_OFF & _IESO_ON & _FCMEN_ON & _LVP_ON
__CONFIG _CONFIG2, _WRT_OFF & _BOR40V
CBLOCK H'20'
AUX1
AUX2
PDel0
PDel1
ENDC
RESET ORG H'00'
GOTO CONDINIC
ORG H'04'
INTERR
NOP
CONDINIC
BANKSEL OPTION_REG
MOVLW 0x74
MOVFW OPTION_REG
BANKSEL ANSEL
CLRF ANSEL ; Selecciono que canal va a ser analogico y cual digfital, dejo solo AN0
INCF ANSEL,F ; Dejo solamente el canal AN0 como entrada analogica
CLRF ANSELH
BANKSEL OSCCON ; Osc Interno 500 KHz
MOVLW 0x6F
MOVWF OSCCON
BANKSEL TRISD
CLRF TRISD
CLRF TRISE
BANKSEL TRISA
MOVLW 0xFF
MOVWF TRISA
BANKSEL PORTE
CLRF PORTE
MAIN
CALL DEMORA
MOVLW 0xFF
MOVWF PORTD
CALL DEMORA
MOVLW 0x00
MOVWF PORTD
GOTO MAIN
DEMORA movlw .239 ; 1 set numero de repeticion (B)
movwf PDel0 ; 1 |
PLoop1 movlw .232 ; 1 set numero de repeticion (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 goto PDelL3 ; 2 ciclos delay
PDelL3 clrwdt ; 1 ciclo delay
decfsz PDel1,1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0,1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
PDelL4 goto PDelL5 ; 2 ciclos delay
PDelL5 goto PDelL6 ; 2 ciclos delay
PDelL6 goto PDelL7 ; 2 ciclos delay
PDelL7 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.