TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: JCCAec en 28 de Marzo de 2005, 23:26:00

Título: Puerto A en el 16F873A
Publicado por: JCCAec en 28 de Marzo de 2005, 23:26:00
RollEyes         Gracias por dar lectura a esta preguntita:
Cómo se configura el puerta A en el PIC 16F873A para que quede completamente como entrada digital.  De antemano, muchas gracias
Título: RE: Puerto A en el 16F873A
Publicado por: cHiPmAn en 29 de Marzo de 2005, 00:44:00
Este PIC no lo he usado nunca, pero estoy convencido de que tiene el ADCON0 y el ADCON1. Mirate el apartado del conversor en el datasheet.
Título: RE: Puerto A en el 16F873A
Publicado por: MISTRELO en 29 de Marzo de 2005, 23:55:00

Hola,   usa las siguientes instrucciónes para configurar todo el puerto A como entradas digitales

bcf   STATUS,6
bsf   STATUS,5    ;Selecciona banco 1
movlw     0x06 ;Con estas dos instrucciones (0x06 y ADCON1) se configuran todos
movwf     ADCON1     ;los pines del puerto A como entradas DIGITALES

Espero que te sirva la información

Saludos.
Título: Re: Puerto A en el 16F873A
Publicado por: Vanesa en 25 de Mayo de 2006, 15:48:06
¿Alguien podría decirme como se haría en lenguaje C con el CCS??

Gracias!!
Título: Re: Puerto A en el 16F873A
Publicado por: LabPIC en 25 de Mayo de 2006, 15:56:31
Hola JCCAec lo que te comente el amigo MISTRELO es cierto, aunque el puerto unicamente lo configuras como digital con el codigo que te ha enviado, para que en realidad sean entradas digitales has lo siguiente:

bcf   STATUS,6
bsf   STATUS,5    ;Selecciona banco 1
movlw     0x06 ;Con estas dos instrucciones (0x06 y ADCON1) se configuran todos
movwf     ADCON1     ;los pines del puerto A como entradas DIGITALES
movlw     b'11111111';
movwf     TRISA;

Listo con esto si podras tener entradas digitales  :mrgreen:

En cuanto al lenguaje C estoy en ceros Vanesa  :z)

Saludos LabPIC
Título: Re: Puerto A en el 16F873A
Publicado por: Vanesa en 25 de Mayo de 2006, 16:25:21
bueno, gracias por el intento labpic... jeje, esperaré que entre algún entendido de C por aquí que pueda ayudarme...

Ah!! por cierto, el mensaje original era de hace más de un año así que no sé si tus ideas le habrán servido de mucho al que lo escribió.... jejje, pero seguro que alguien que llegue aquí buscando información como yo las agradece, que la ayuda siempre es bien recibida.

Saludos
Título: Re: Puerto A en el 16F873A
Publicado por: microcom en 25 de Mayo de 2006, 16:45:05
igual para el pic 16f819 , pic 16f877, pic 16f877a

INICIO   
   BSF   STATUS,5   ;CONFIGURACION DE PUERTOS
   bcf            status,6
   MOVLW   B'111111'   ;porta como entradas digitales
   MOVWF   PORTA
   MOVLW     07
   MOVWF    ADCON1      ;PUERTA A COMO SALIDAS O   
                                    ;ENTRADAS     DIGITALES.

http://www.hobby-elec.org/e_pic7_1_e.htm

repetir repetir bueno
 
Título: Re: Puerto A en el 16F873A
Publicado por: LabPIC en 25 de Mayo de 2006, 16:47:09
Hola microcom  :mrgreen:

creo que en lugar de cargar eel valor al PORTA es al TRISA?  :z)

Saludos LabPIC
Título: Re: Puerto A en el 16F873A
Publicado por: pibe en 25 de Mayo de 2006, 16:55:53
MOVLW   B'111111'   ;porta como entradas digitales

Y además le faltan un par de 1´s  :mrgreen:
Título: Puerto A en el 16F873A
Publicado por: microcom en 25 de Mayo de 2006, 17:50:48
no se en que influiria el
movlw b'111111'
movwf  porta
simpre me ha funcionado sin trisa.
¿el puertoa tiene 6bits?

caballeros disculpen la molestia pero si me pueden especificar.

INICIO   
   BSF   STATUS,5   ;CONFIGURACION DE PUERTOS   
   MOVLW   B'11000'
                MOVWF   PORTA
                CLRF    PORTE      ;PUERTO E COMO SALIDAS
                MOVLW   07
                MOVWF   ADCON1      ;PUERTA A COMO SALIDAS O ENTRADAS         DIGITALES.
   MOVLW   B'11110000'   ;SALIDAS ENTRADAS AL TECLADO MATRICIAL
   MOVWF   PORTB
                CLRF    PORTD      ;SALIDAS EL CRISTAL LCD
   MOVLW   B'00100100'

Título: Re: Puerto A en el 16F873A
Publicado por: maunix en 25 de Mayo de 2006, 18:10:43
¿Alguien podría decirme como se haría en lenguaje C con el CCS??

Gracias!!

Los pics cuando encienden tienen todos sus pines como entradas y los pines analógicos activados.

Solo necesitarías desactivar los pines analógicos. 

Código: C
  1. ADCON1 = 0x06;

De todas formas, de seguro el CCS tiene una función que te permite apagar los canales A/D.  ¿Es esta tu pregunta puntual? 

microcom tu código está bien, el punto es que no es recomendable que escribas de esa forma.  Estas en la pagina 1, y por eso al mover datos a la ubicacion PORTA en realidad lo haces al registro TRISA. 

Programáticamente es correcto, digamos el pic no nota la diferencia entre poner TRISA o PORTA porque solo maneja 7 bits para los registros --> para el pic ponerle 0x05 y 0x85 son lo mismo ya que el compilador o el ensamblador mismo lo tomará como 0x05 borrando el bit más significativo.

De todas formas, no es 'elegante' escribir el código de esa forma y te aconsejo uses TRISA, TRISB , etc.

Saludos
Título: Re: Puerto A en el 16F873A
Publicado por: LabPIC en 25 de Mayo de 2006, 18:43:00
Los pics cuando encienden tienen todos sus pines como entradas y los pines analógicos activados.

Solo necesitarías desactivar los pines analógicos. 

 :shock: pues yo no sabía esto que habeis mencionado maunix

microcom creo que tiene mucha razom el amigo maunix checa esto

Saludos LabPIC