Autor
|
Tema: PIC16F877A No enciende (Leído 6,405 veces)
|
H3lltronik
Desconectado
Mensajes: 9
Still Alive
|
Hola, tengo el siguiente circuito. Estoy usando el PIC16F877A y le programe el siguiente codigo: LIST p=16F877 ;tell assembler what chip we are using include "P16F877.inc" ;include the defaults for the chip __config 0x3F3A ; Pic16F877 11111100111010
ORG 0
NUMERO1 EQU 0x21 NUMERO2 EQU 0x22 ;NO USADA AUN
BCF STATUS,RP0 BCF STATUS,RP1 ;BANCO 0 CLRF PORTA BSF STATUS,RP0 BCF STATUS,RP1 ;BANCO 1 MOVLW 0x07 MOVWF ADCON1 ;E/S DIGITAL MOVLW 0xFF MOVWF TRISA ;TODO PORTA SALIDA
BCF STATUS,RP0 BCF STATUS,RP1 ;BANCO 0
MOVLW 0x01 MOVWF NUMERO1 INICIO: RLF NUMERO1,0 ;ROTABIT MOVWF PORTA MOVWF NUMERO1
CALL RETARDO
GOTO INICIO
RETARDO: ;RETARDO RETURN
FINAL: NOP END El problema es que el circuito no hace nada, no encienden los leds cuando el programa lo que hace es un simple rotabit en el PORTA para comprobar que el pic estuviera comprobando correctamente, probe el programa en simuladores del mismo pic y parece funionar pero al hacerlo en el pic real simplemente no hace absolutamente nada. Alguien tiene idea de que es lo que puede estar pasando? los capacitores del cristal son de 33pf y el cristal es de 4MHz. Gracias de antemano
|
|
|
En línea
|
Still Alive
|
|
|
engel lex
|
segurate de seguir el diagrama... por otro lado, tambien puede ser consecuencia que están cambiando unas 500 veces por segundo XD hace años que no toco un pic (con arduino creía que eso ya no se usaba hace como 10 años mas que para ambito profesional XD) menos aún risc asm XD pero incluso funcionando bien son 5 leds encenciendo una vez cada 1/500 segundos una de cada 8 veces XD deberías llenar el retardo con algo que dure por lo menos 1/10 de segundo
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
PalitroqueZ
Desconectado
Mensajes: 948
|
no podrás ver el encendido, puesto que no hay ningun retardo.
la rutina de RETARDO no existe.
pd: cambia los fuses por 0x3F71
pd2: otra cosa, comienza la rutina desde 0x5, para que no caigas en el vector de interrupción y asi no tengas problemas con lo relacionado al servicio de interrupciones.
|
|
« Última modificación: 25 Abril 2018, 06:00 am por PalitroqueZ »
|
En línea
|
"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard
|
|
|
H3lltronik
Desconectado
Mensajes: 9
Still Alive
|
Yo no se XD uso este integrado en especifico porque asi lo marco mi profesor y pues debo hacerlo asi, apenas estamos viendo pics. No creo que sea el retardo, es decir, ya he probado ya otros programas como que simplemente mueva un 33H al PORTA pero tampoco enciende los leds, no logro hacer que encienda aunque se supone que el circuito esta bien ya que sigue un diagrama de configuracion basica del pic, como este por ejemplo He probado algunas otras cosas como poner un capacitor de ruido de 100nF directo a vcc y gnd pero tampoco :c le he movido a bastantes cosas pero no logro hacer que encienda
|
|
|
En línea
|
Still Alive
|
|
|
H3lltronik
Desconectado
Mensajes: 9
Still Alive
|
He cambiado las cosas que me han mencionado en el codigo LIST p=16F877 ;tell assembler what chip we are using include "P16F877.inc" ;include the defaults for the chip __config 0x3F71 ; Pic16F877 11111100111010
ORG 0
NUMERO1 EQU 0x21 NUMERO2 EQU 0x22 ;NO USADA AUN
AUXRET1 EQU 0x23 AUXRET2 EQU 0x24 AUXRET3 EQU 0x25
BCF STATUS,RP0 BCF STATUS,RP1 ;BANCO 0 CLRF PORTA BSF STATUS,RP0 BCF STATUS,RP1 ;BANCO 1 MOVLW 0x07 MOVWF ADCON1 ;E/S DIGITAL MOVLW 0xFF MOVWF TRISA ;TODO PORTA SALIDA
BCF STATUS,RP0 BCF STATUS,RP1 ;BANCO 0
MOVLW 0x01 MOVWF NUMERO1 INICIO: RLF NUMERO1,0 ;ROTABIT MOVWF PORTA MOVWF NUMERO1
CALL RETARDO
GOTO INICIO
RETARDO: MOVLW 0x08 MOVWF AUXRET1
REFILL2: MOVLW 0xFF MOVWF AUXRET2
REFILL1: MOVLW 0xFF MOVWF AUXRET3
CTRL1: DECFSZ AUXRET3,1 GOTO CTRL1
DECFSZ AUXRET2,1 GOTO REFILL1 DECFSZ AUXRET1,1 GOTO REFILL2
RETURN
FINAL: NOP END Sin embargo el circuito sigue sin dar señales de vida :c que mas puedo hacer?! estoy asustado, mi semestre pende de un hilo Edit: Ya pude hacerlo funcionar, aparentemente el mover al TRISA un FFH hace que todo el puerto sea de entrada, no salida, por eso no encendía ningún led xd al final fue una estupidez. Gracias por su ayuda.
|
|
« Última modificación: 25 Abril 2018, 23:53 pm por H3lltronik »
|
En línea
|
Still Alive
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problemas con PORT-B de un PIC16F877A
Electrónica
|
rodogodo
|
3
|
4,052
|
3 Mayo 2006, 18:55 pm
por {05c4r}
|
|
|
NO ENCIENDE MI SAMSUNG NP-N150, SOLO ENCIENDE LAS LUCES DE ENCENDIDO Y BATERIA
Electrónica
|
Aspheron
|
1
|
11,914
|
24 Agosto 2013, 22:42 pm
por EDwaRD88
|
|
|
ADC con PIC16f877a
ASM
|
Jsempe
|
0
|
3,433
|
13 Octubre 2013, 04:39 am
por Jsempe
|
|
|
Programar pic16f877a
Electrónica
|
Egarcesovalle
|
1
|
4,701
|
29 Noviembre 2016, 04:59 am
por engel lex
|
|
|
PIC16F877A Y LCD
Electrónica
|
H3lltronik
|
3
|
3,087
|
22 Mayo 2018, 19:04 pm
por H3lltronik
|
|