Autor Tema: problemas para leer en puertoA de PIC16F876A  (Leído 4004 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado jrody

  • PIC10
  • *
  • Mensajes: 25
problemas para leer en puertoA de PIC16F876A
« en: 14 de Abril de 2011, 03:29:08 »
Hola amigos de TodoPic.
Escribo para pedir ayuda. ya estoy a punto de tirar la toalla y renunciar a los PIC.
El problema que tengo es que no puedo leer una entrada de PIC16F876A en el Puerto A.0 y A.1 y con esta señal prender Led en Puerto B.0 y B.1 respectivamente, tengo entendido que el puerto A tiene aplicaciones analógicas y que lo tengo que poner a digital, y que tengo que definir si es de entrada o salida. Estoy seguro que en esta parte esta mi error porque esta misma practica ya la logre pero con el puerto B del mismo PIC recibiendo una señal en el B.0 para prender led en el B.5  
Tengo un Oscilar de 4Mhz Externo y estoy programando con un MasterPorg.
Anexo mi programa en MicroPICBASIC. Saludos y muchas gracias de antemano por la ayuda que me puedan brindar.  
Modifique mi post con un ejemplo mucho mas chico y directo.

@ device XT_OSC
@ device WDT_OFF
@ device PWRT_ON
DEFINE osc 4
ADCON1 = 7               ; converto todo el puerto A en digital
TRISA = 1                 ; indico que todos lo pin del PA son de Entrada.

uno VAR porta.0          ; boton 1
dos VAR porta.1          ; boton 2
amarillo VAR portb.0    ; led amarillo en a.2
verde VAR portb.1       ; led verde en a.3

Inicio:
    HIGH amarillo   ;prendo los led para señales de vida
    PAUSE 1000
    LOW amarillo   
    PAUSE 1000
    HIGH verde   
    PAUSE 1000
    LOW verde   
    PAUSE 1000

espera:
    IF uno = 0 THEN GOTO prendeama        ;si uno es precionado prende amarillo
    IF dos = 0 THEN GOTO prendever          ;si dos es precionado prende verde
    GOTO espera            

prendeama:
    GOSUB norebote           ; a subrutina norebote
    HIGH amarillo          ; prendo amarillo
    PAUSE 2000                 ; pausa 1 segundo
    LOW verde                 ; apago amarillo
    GOTO espera               ; regreso a esperar boton
prendever:
    GOSUB norebote           ; a subrutina norebote
    HIGH verde                   ; prendo verde
    PAUSE 2000                  ; pausa 1 segundo
    LOW verde                   ; apago verde
    GOTO espera                ; regreso a esperar boton

norebote:                    
  IF uno = 0 THEN norebote
  IF dos = 0 THEN norebote
  PAUSE 25                  
  RETURN
END
« Última modificación: 15 de Abril de 2011, 23:52:29 por jrody »

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: problemas para leer en puertoA de PIC16F876A
« Respuesta #1 en: 16 de Abril de 2011, 01:36:46 »
Hola, no veo que setees el puerto como entrada.

trisa = 255

En tu codigo te recomendaria usar el antirebote despues de que ejecutes el codigo de cada tecla, trata de no usar GOTO mas usa el GOSUB y RETURN.

Pd. No dupliques tus mensajes, con que lo pongas una vez es suficiente, date una vuelta por las reglas del foro.

Saludos.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado jrody

  • PIC10
  • *
  • Mensajes: 25
Re: problemas para leer en puertoA de PIC16F876A
« Respuesta #2 en: 16 de Abril de 2011, 11:11:44 »
OK. Muchas gracias por contestar
El puerto A lo estoy seteando con TRIAS = 1 (todos los pin a 1)

Ya intente con TRISA = 255, y nada no camina.

Gracias por el comentario tendré en cuanta las reglas para la próxima, Mil disculpas soy nuevo en esto del foro.

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: problemas para leer en puertoA de PIC16F876A
« Respuesta #3 en: 16 de Abril de 2011, 13:16:49 »
.


Deberías deshabilitar también los comparadores analógicos, poniendo 0x07 en el registro CMCON.
Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado jrody

  • PIC10
  • *
  • Mensajes: 25
Re: problemas para leer en puertoA de PIC16F876A
« Respuesta #4 en: 18 de Abril de 2011, 00:17:17 »
.


Deberías deshabilitar también los comparadores analógicos, poniendo 0x07 en el registro CMCON.
Saludos.



Nada amigo a la hora de compilar me marca error no acepta el comando CMCON el PIC que estoy usando es un 16F876A.

ERROR Line 25: Syntax error  cmcon = 0x07. (Practica2.pbp)

Desconectado jrody

  • PIC10
  • *
  • Mensajes: 25
Re: problemas para leer en puertoA de PIC16F876A
« Respuesta #5 en: 18 de Abril de 2011, 00:30:32 »
Hola, no veo que setees el puerto como entrada.

trisa = 255

En tu codigo te recomendaria usar el antirebote despues de que ejecutes el codigo de cada tecla, trata de no usar GOTO mas usa el GOSUB y RETURN.

Pd. No dupliques tus mensajes, con que lo pongas una vez es suficiente, date una vuelta por las reglas del foro.

Saludos.

OK Amigo muchas excelente ya camino.
Lo único que cambie del código ya publicado es la siguiente linea.
TRISA = 255