Autor Tema: Configurar registros y puertos del pic 16f876  (Leído 18471 veces)

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

Desconectado rodri_go100

  • PIC10
  • *
  • Mensajes: 7
Configurar registros y puertos del pic 16f876
« en: 01 de Febrero de 2009, 16:20:30 »
Hola, estoy intentando hacer un programa en ensamblador para el pic 16F876 pero hace mucho que no tocaba nada de programacion y a lo mas que llegue fue a programar el 16F84A.

He mirado muchos post y programas de ejemplo para copiar o intuir como se hace la configuracion de los registros y puertos de este pic, vamos, todo lo que precede al programa en si.

Alquien me puede echar un cable o decirme que tendria que poner, para activar el puerto A como entrada, el B como salida y el C mitad entrada y mitad salida?

En lo que es el programa no tengo muchas dudas de momento, pero claro si no lo tengo bien configurado esta claro que no funcionara nada.

Os dejo el trozo de la configuracion que tengo a ver que me decis.

Un saludo!

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Configurar registros y puertos del pic 16f876
« Respuesta #1 en: 01 de Febrero de 2009, 17:15:53 »
Hola Rodrigo,

Antes de configurar losm puertos como entradas o salidas tienes que configurar el registro ADCON diciendo al micro que lo vas a utilizar como digital.
Por lo que comentas, lo normal es que para recuperar recuerdos te cojas el datasheet del micro que estas utilizando y le pegues un pequeño repaso.
Si mal no recuerdo el registro ADCON hay que configurarlo con el valor 0x06 y asi configuras todos los puertos como i/o digitales y luego ya configuaras los puertos de forma individual.
Aqui te pongo el link del datasheet y en la pag31 puedes ver como se configura el puerto A para el resto es de forma similar.

http://ww1.microchip.com/downloads/en/DeviceDoc/30292c.pdf

Fer.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Configurar registros y puertos del pic 16f876
« Respuesta #2 en: 01 de Febrero de 2009, 17:23:01 »
Se me olvidó ponerte que el registro a configurar es el ADCON1.

Un ejemplo basico
Código: [Seleccionar]
clrf PORTA
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000110'
movwf ADCON1 ;Puerta A E/S digitales
clrf TRISB ;Puerta B se configura como salida
clrf TRISA ;Puerta A salidas
movlw b'11111111'
movwf TRISC ;Puerta C entrada
bcf STATUS,RP0 ;Selecciona banco 0
   



Fer.
« Última modificación: 01 de Febrero de 2009, 17:29:17 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado rodri_go100

  • PIC10
  • *
  • Mensajes: 7
Re: Configurar registros y puertos del pic 16f876
« Respuesta #3 en: 01 de Febrero de 2009, 18:00:26 »
Muchisimas Gracias Fer.

Era eso lo que fallaba, ahora va perfectamente, ahora solo queda depurar bien el programa para que funcione como yo quiero.

Un saludo! y gracias de nuevo

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Configurar registros y puertos del pic 16f876
« Respuesta #4 en: 01 de Febrero de 2009, 18:06:19 »
de esta manera se configura como quieres puerto A como entrada, puerto B como salida, y Puerto C mitad entrada mitad salida
Citar
bsf           STATUS,RP0   ;Selecciona banco 1
movlw   b'00000110'
movwf   ADCON1      ;Puerta A E/S digitales
clrf           TRISB      ;Puerta B se configura como salida
movlw      b'11111111'
movlw      TRISA               ;puerto A como entrada
movlw      b'11110000' 
movlw      TRISC               ;puerto C mitad entrada(RC7-RC4), mitad salida(RC5-RC0)
bcf           STATUS,RP0   ;Selecciona banco 0

aunque tengo una duda, q pasa cuando los puertos tienen menos de 8 bit, para configurarlos como entrada o salida es necesario especificar 8 bits?

de todas maneras puedes mirar en este pdf con varios ejemplos con el 876 y el 877
ejemplo PIC16F87X
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado canival35

  • PIC10
  • *
  • Mensajes: 36
Re: Configurar registros y puertos del pic 16f876
« Respuesta #5 en: 25 de Marzo de 2009, 17:56:47 »
de esta manera se configura como quieres puerto A como entrada, puerto B como salida, y Puerto C mitad entrada mitad salida
Citar
bsf           STATUS,RP0   ;Selecciona banco 1
movlw   b'00000110'
movwf   ADCON1      ;Puerta A E/S digitales
clrf           TRISB      ;Puerta B se configura como salida
movlw      b'11111111'
movlw      TRISA               ;puerto A como entrada
movlw      b'11110000' 
movlw      TRISC               ;puerto C mitad entrada(RC7-RC4), mitad salida(RC5-RC0)
bcf           STATUS,RP0   ;Selecciona banco 0


aunque tengo una duda, q pasa cuando los puertos tienen menos de 8 bit, para configurarlos como entrada o salida es necesario especificar 8 bits?

de todas maneras puedes mirar en este pdf con varios ejemplos con el 876 y el 877
ejemplo PIC16F87X

Hola jhozate creo que tienes un error cuando escribes en los registros TRISA y TRISC la instruccion deberia de ser movwf TRISA y movwf TRISB
y respecto a tu duda de los puertos menores a 8 bits, simplemente se ignoranporque no tiene nada conectado porque no existen, saludos  :-)

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re: Configurar registros y puertos del pic 16f876
« Respuesta #6 en: 26 de Marzo de 2009, 06:15:04 »

Hola jhozate creo que tienes un error cuando escribes en los registros TRISA y TRISC la instruccion deberia de ser movwf TRISA y movwf TRISB
y respecto a tu duda de los puertos menores a 8 bits, simplemente se ignoranporque no tiene nada conectado porque no existen, saludos  :-)

Lo normal es que si no los utilizas, los dejes configurados como entradas. Si los dejas como salidas si tienes algun problema con el pin se puede trasladar al pic. Por ejemplo que caiga algun resto de algo entre alguna parte de tu circuito y tu ic de salida ya que las señales no sean compatibles.
« Última modificación: 26 de Marzo de 2009, 06:17:53 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: Configurar registros y puertos del pic 16f876
« Respuesta #7 en: 26 de Marzo de 2009, 10:45:05 »
Fer a lo que se refiere jhozate es a los bits que no existen en los puertos incompletos como PORTA que solo tiene 5 bits, y cerece de ls tres de mayor peso.
111 11111 los 3 primeros bits no existen en PORT A, daria igual poner 0XFF que poner 0X1F para la configuracion como entradas, eso creo yo.

saludos desde Ferrol tapi8

Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Configurar registros y puertos del pic 16f876
« Respuesta #8 en: 26 de Marzo de 2009, 18:07:00 »
de esta manera se configura como quieres puerto A como entrada, puerto B como salida, y Puerto C mitad entrada mitad salida
Citar
bsf           STATUS,RP0   ;Selecciona banco 1
movlw   b'00000110'
movwf   ADCON1      ;Puerta A E/S digitales
clrf           TRISB      ;Puerta B se configura como salida
movlw      b'11111111'
movlw      TRISA               ;puerto A como entrada
movlw      b'11110000' 
movlw      TRISC               ;puerto C mitad entrada(RC7-RC4), mitad salida(RC5-RC0)
bcf           STATUS,RP0   ;Selecciona banco 0


aunque tengo una duda, q pasa cuando los puertos tienen menos de 8 bit, para configurarlos como entrada o salida es necesario especificar 8 bits?

de todas maneras puedes mirar en este pdf con varios ejemplos con el 876 y el 877
ejemplo PIC16F87X

Hola jhozate creo que tienes un error cuando escribes en los registros TRISA y TRISC la instruccion deberia de ser movwf TRISA y movwf TRISB
y respecto a tu duda de los puertos menores a 8 bits, simplemente se ignoranporque no tiene nada conectado porque no existen, saludos  :-)

 :D :D :D no creas..efectivamente es un error garrafal...gracias por la correcion
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Configurar registros y puertos del pic 16f876
« Respuesta #9 en: 03 de Noviembre de 2010, 22:05:10 »
Tengo algunas dudas ya que busco en el foro ejemplo y no lo veo nada claro, SAN GOOGLE no esta conmigo buscando tampoco.
 a ver el pic16F876 tiene 6 PuertoA y silo configuro como entrada deberi ser asi

clrf   PORTA
bsf   STATUS,RP0                   ;Selecciono banco 1
movlw   b'00000110'            ; aqui es donde selecionos los puerto que quiero usar como entrada?



movwf   ADCON1      ;Puerto A E/S digitales
 
clrf   TRISB      ;Aqui quiero usar los puertos RB0,RB1,RB2,RB3 como salida y el resto como entrada


y aqui es lo que no comprendo porque como salida si estan a 1
clrf   TRISA      ;Puerta A salidas
movlw   b'11111111'   
movwf   TRISC      ;Puerta C entrada
bcf   STATUS,RP0   ;Selecciona banco 0

Alguien me podia aclarar esto?


Desconectado jhozate

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1698
Re: Configurar registros y puertos del pic 16f876
« Respuesta #10 en: 03 de Noviembre de 2010, 22:46:34 »
Citar
movlw   b'00000110'            ; aqui es donde selecionos los puerto que quiero usar como entrada?
movwf   ADCON1      ;Puerto A E/S digitales
no, ahi lo que haces es decirle que los pines que van a ser I/O digitales, pero todavia no le indicas si seran de entrada o salida

Citar
clrf   TRISB      ;Aqui quiero usar los puertos RB0,RB1,RB2,RB3 como salida y el resto como entrada
CLRF limpia todo el registro TRISB, pone ceros en el registro, es decir pone Todo el puerto como salida

Citar
clrf   TRISA      ;Puerta A salidas
si, se puso a 0 todo el TRISA

Rafa, seras que estas confundido con los Atmega? creo q en esos si es lo contrario, para poner como salida pones el registro a 1 y como entrada pones el registro a 0
« Última modificación: 03 de Noviembre de 2010, 22:50:36 por jhozate »
Ser Colombiano es un Premio, Saludos desde CALI-COLOMBIA

Desconectado stk500

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4919
Re: Configurar registros y puertos del pic 16f876
« Respuesta #11 en: 04 de Noviembre de 2010, 01:31:18 »
Hola Jhozate, es que al haber hecho lo cambio en mi proyecto el puerto RB4 no se me pone a 1

pero creo que ya di con el problema, chequea
Código: [Seleccionar]
bsf STATUS,RP0
bcf STATUS,RP1       ;banco1 movlw 0xF0
movwf TRISB           ;RB7:RB4 entradas  y puerto RB3:RB0 como salida
movlw 0x0F
movwf ADCON1        ;Puerto A como e/s digitales
movlw 0xFF
movwf TRISA            ; todos el puerto A como entranda   

Todavia no lo he probado, se me cierrar los ojos de leer :smiley:

Desconectado miguel valdivia

  • PIC10
  • *
  • Mensajes: 46
Re: Configurar registros y puertos del pic 16f876
« Respuesta #12 en: 10 de Abril de 2011, 19:57:17 »
Gracias me sirvió para configurar puertos del 16F870.