Ayuda Pic16F877A - Pin #5

Buenas Noches amigos =)!, vengo con una pequeña duda.

Empece a programar en Pic16F877A, el problema empezó cuando el Pin #5, no arrojaba voltaje, pero el Pin que le sigue si, supongo que a de ser que necesita una configuración o estoy haciendo algo mal con la programación o configuración antes de montarlo al Pic. No se que pueda ser, espero que alguien pueda ayudarme ^^!

De ante mano muchas gracias =)

Aquí pongo el Código que tengo. El código esta hecho para que todas los Pines del puerto A sean de Salida.

LIST p=16f877A
#INCLUDE P16F877A.INC
ORG 0
N EQU 0x00
cont1 EQU 0x20
cont2 EQU 0x21

movlw 0x20;
movwf 0x03; Banco 1 status

movlw 0x06
movwf 0x9f
movlw 0x00
movwf 0x85; TRIS A salida
movlw 0x00
movwf 0x83
limp
clrf 0x05

ciclo
incf 0x05,1
CALL Retardo ; Llamada a la rutina de retardo
btfss 0x05,4
GOTO ciclo ; Va a la etiqueta Encled
goto limp

Retardo ; Rutina de retardo
MOVLW N
MOVWF cont1
Rep1
MOVLW N
MOVWF cont2
Rep2
DECFSZ cont2,1
GOTO Rep2
DECFSZ cont1,1
GOTO Rep1
RETURN ; Retorno a la llamada de rutina de retardo.

end

Gracias :aplauso:;):)
 
Aparentemente todo esta bien, deberías probar con otro PIC no sea que el pin este quemado, cosa difícil pero no imposible y revisar muy bien el montaje.

Con respecto a las configuraciones todo esta bien o por lo menos se ve bien, intenta (seria lo mismo, pero de repente el PIC o el compilador es quisquilloso) poner el ADCON1 en 7 a ver si se soluciona el problema.

El problema de verdad es extraño...
 
Aparentemente todo esta bien, deberías probar con otro PIC no sea que el pin este quemado, cosa difícil pero no imposible y revisar muy bien el montaje.

Con respecto a las configuraciones todo esta bien o por lo menos se ve bien, intenta (seria lo mismo, pero de repente el PIC o el compilador es quisquilloso) poner el ADCON1 en 7 a ver si se soluciona el problema.

El problema de verdad es extraño...

Gracias por responder =)

De hecho lo probe en 2 pic diferentes, como estamos haciendo eso en el grupo varios traen su pic, pero aun así en el otro Pic pasa lo mismo.

Me podrias explicar un poco mas del ADCON1, si mal no recuerdo el profe nos "ayudo" y estuvimos leyendo ese comando y lo pusimos pero ni asi funciono el PIN.

Saludos =)(y)
 
Con el registro ADCON1 lo que configuras es las entradas analógicas y digitales, ademas de la justificación de los registro para la conversión de los datos al hacer uso del ADC en el Datasheet del componente encuentras las diferentes configuraciones

ok acabo de ver un error catastral en el inicio del programa, tu estas declarando las variables N, cont1 y cont2, ... resulta que cuando declaras variables debes hacerlo asignado las direcciones de memoria así como lo estas haciendo con cont1 y cont2, pero con N estas utilizando la posición 0x00 y esa es una posición reservada para el PIC, esa es la dirección donde esta el comienzo del programa.

para el comienzo utiliza esto, asi lo declaro yo y no me da problemas de ningun tipo

LIST P=16F877A
INCLUDE <16F877A.INC>
ORG 0X00 ; dirección del comienzo del programa
GOTO ##### ;en los numerales colocas la bandera o dirección a donde
quieres que salte el programa
ORG 0X04 ; dirección de interrupciones
GOTO ****** ;en los numerales se coloca la bandera o dirección a donde
quieres que salte el programa

luego de esto colocas las declaraciones de variables, por ejemplo

N EQU 0x20
cont1 EQU 0x21
cont2 EQU 0x22
debes tener en cuenta que solo puedes declarar variables después de la dirección 0x20 que son las posiciones de memoria de para propósito general

espero que esto solucione el problema, postea una imagen de la simulacion para ver exactamente que estas haciendo.

Y un dato para que la programacion sea un poco mas facil de hacer en vez de utilizar direcciones en exadecimal puedes utilizar palabras normales ejemplo

HOLA MOVLW 0X20
MOVWF PORTA
BSF PORTB,3
GOTO HOLA

(ESTE ES UN CÓDIGO SIN NINGUNA LÓGICA QUE SOLO SIRVE PARA MOSTRAR QUE ES MAS FÁCIL Y AGRADABLE UTILIZAR PALABRAS EN VES DE DIRECCIONES DE MEMORIA)
 
Última edición:
Atrás
Arriba