Autor Tema: Necesito ayuda, conexion pic16f876 mediante rs232 al pc  (Leído 5811 veces)

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

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« en: 07 de Junio de 2006, 06:28:31 »
buenas yo estoy con el mismo problema de conectar un pic16f876, la cosa es que consigo mandar del pic al pc sin ningun problema, en el hyperterminal me aparece todo lo que he mandado, mi problema es al recibir. He configurado el pic para que cuando reciba un dato del pc salte una interrupcion, y en el vector de interrupcion he hecho que envie un caracter al pc, vamos que intento hacer un eco pero mandando un caracter cualkiera que ponga yo manualmente, no el que me mande el pc. La cosa es q cuando pongo el hyperterminal, en la pantalla me recibe el caracter que deberia de mandar yo en el vector de interrupcion, es decir el caracter sale continuamente en pantalla, sin que yo le mande nada no deberia saltar la interrupcion uqe manda el caracter, pero por lo que parece es como si yo estuviera mandando algo constantemente. Aki va el codigo a ver si alguien puede decirme donde esta el fallo, seguramente estara en la configuracion pero yo no lo veo:

;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>>

ORG 04H ;Vector de interrupcion

INTER btfss PIR1,RCIF ;¿Interrupcion por recepcion?
goto VOLVER ;No. Falsa interrupcion
bcf PIR1,RCIF ;Si. Reponer Flag
movlw b'10000000' ;Envia el caracter, valor binario
movwf TXREG ; del codigo ascii
VOLVER retfie

;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>>

INICIO clrf PORTB ;Limpia salidas
clrf PORTC

bsf RCSTA,SPEN ;se activa la USART
bsf STATUS,RP0 ;Cambio al banco 1 ------------------
bcf STATUS,RP1
clrf TRISA ;Puerta A como salida
clrf TRISB ;Puerta B como salida
movlw 80H ;RC7/Rx entrada,
movwf TRISC ;RC6/Tx salida y RC5 Salida.
movlw 04H ;Configuracion USART
movwf TXSTA ;y activacion de transmision
movlw .25 ;9600 baudios
movwf SPBRG
bsf PIE1,RCIE ;Habilitacion interrupcion RX
bcf STATUS,RP0 ;Cambio al banco 0 -----------------
;clrf PORTB ;Limpia salidas
;clrf PORTC
bsf RCSTA,SPEN ;se activa la USART

movlw b'10010000' ;Configuracion de la usart
movwf RCSTA ;para recepcion continua

bsf STATUS,RP0 ;Cambio al banco 1 -------------
bcf STATUS,RP1
bsf TXSTA,TXEN ;Habilita la transmision

bcf STATUS,RP0 ;Cambio al banco 0 ------------------
movlw 0C0H ;Habilitacion para las
movwf INTCON ;interrupciones generales

Bukle goto Bukle

espero vuestra respuesta gracias, saludos

P.D: He escrito este mensaje en mas de un hilo porque no sabia exactamente donde habia q ponerlo
« Última modificación: 07 de Junio de 2006, 06:35:31 por mikelzuru »

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #1 en: 07 de Junio de 2006, 06:40:56 »
Código: ASM
  1. ;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>>
  2.  
  3.         ORG 04H ;Vector de interrupcion
  4.  
  5. INTER  
  6.         btfss   PIR1,RCIF ;¿Interrupcion por recepcion?
  7.         goto    VOLVER ;No. Falsa interrupcion
  8.         movf    PIR1,RCIF       ; >>>>>> LINEA MODIFICADA <<<<<
  9.         movlw   b'10000000' ;Envia el caracter, valor binario
  10.         movwf   TXREG ; del codigo ascii
  11. VOLVER retfie

Antes de seguir revisando el código fijate lo que haces aqui.

El flag de usart no se borra con un bcf PIR1,RCIF sino "leyendo" el dato del RCREG.

Hacer bcf PIR1,RCIF no hará nada, el flag seguirá seteado (por más que algún que otro simulador te lo marque como que se borró)

Modificalo para que quede así:


Código: ASM
  1. ;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>>
  2.  
  3.         ORG 04H ;Vector de interrupcion
  4.  
  5. INTER  
  6.         btfss   PIR1,RCIF ;¿Interrupcion por recepcion?
  7.         goto    VOLVER ;No. Falsa interrupcion
  8.         movf    RCREG,W       ; >>>>>> LINEA MODIFICADA <<<<<
  9.         movlw   b'10000000' ;Envia el caracter, valor binario
  10.         movwf   TXREG ; del codigo ascii
  11. VOLVER retfie


Otro punto, el TRISC<7> y el TRISC<6> ambos deben estar en 1 para que sean "pines de usart", el pin TX no se debe poner como "salida".

También debes habilitar el RCSTA,CREN (continuous receive) para que sigas reicibiendo datos.

Todo esto está explicado en el datasheet.


Saludos
« Última modificación: 07 de Junio de 2006, 06:42:34 por maunix »
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #2 en: 07 de Junio de 2006, 09:53:25 »
gracias, maunix, pues he puesto el RC7 TX a 1, y el movf  RCREG,W , por cierto el RCSTA ya estaba configurado de antes para recepcion continua
aqui --> movlw   90H      ;Configuracion de la usart
      movwf   RCSTA     ;para recepcion continua
es necesario habilitarlo de nuevo al terminar la interrupcion??
y sisuiendo mi pregunta anterior, ahora que he corregido lo que tu me has dicho, el programa sigue sin esperar a recibir el caracter, ya que nada mas iniciar el programa escribe en el hyperterminal el caracter de la interrupcion, porq puede ser esto??

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #3 en: 07 de Junio de 2006, 10:14:12 »
Hola mikelzuru, veo que as puesto 4 veces el mismo mensaje en todo el foro, por favor realices sola un post por pregunta, para no hacer más complicada la busqueda de una respuesta, por lo tanto tambien te pediría que borraras los demas post que as realizado ya que no posees respuestas.

Un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #4 en: 07 de Junio de 2006, 10:22:30 »
de acuerdo , pido disculpas, es la primera vez que posteaba aki y no estaba seguro de en que hilo me contestarian, ya estan los mensajes borrados, perdon de nuevo, y sigo esperando la respuesta, a ver si alguien puede ayudarme, se lo agradeceria mucho, gracias y saludos :)
« Última modificación: 07 de Junio de 2006, 10:25:46 por mikelzuru »

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #5 en: 07 de Junio de 2006, 10:32:45 »
Hola mikelzuru, gracias por ayudar a la mantencion del foro, con respecto a donde postear una pregunta lo que debes pensar es en cual de los sub-foros estaría más hacertada colocarla (en este caso yo lo hubiera colocado en este o en el de almacen del asembler) y hacer tu pregunta en solo un sub foro, por la respuesta no te preocupes ya que los participantes no se limitan a mirar un solo subforo por lo tanto seguro que la gran mayoria de ellos vera tu post, y de seguro si alguien sabe la respuesta te la responderá.

Por lo tanto y en base a lo anterior llegamos a la conclusión de que poniendo más post no conseguiras más respuestas, y solo colocando 1 nos ayudas a mantener el foro lo más ordenado posible, te agradesco nuevamente tu atención y este post no lo coloco con la intencion de retarte, solo para intentar explicarte de como debes postear en este foro ya que e podido darme cuenta de que eres nuevo por estos lugares.

Gracias y bienvenido al foro, un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #6 en: 07 de Junio de 2006, 12:00:51 »
gracias, maunix, pues he puesto el RC7 TX a 1, y el movf  RCREG,W ,

El TX es el RC6 cuidado con eso.  TRISC<6> y TRISC<7> ambos deben estar en 1.

por cierto el RCSTA ya estaba configurado de antes para recepcion continua
aqui --> movlw   90H      ;Configuracion de la usart
      movwf   RCSTA     ;para recepcion continua
es necesario habilitarlo de nuevo al terminar la interrupcion??

Perdón, se me pasó por alto, estas en lo correcto.   NO, no es necesario rehabilitarlo al terminar la interrupción.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado LabPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 143
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #7 en: 07 de Junio de 2006, 12:32:28 »
Hola compañero, has habilitado el bit RCIE (PIE1<5>), PEIE (INTCON<6>), GIE(INTCON<7>). Asegurate de setearlos.

Salaudos LabPIC  :mrgreen:
¡¡¡Viva México cabrones!!!

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #8 en: 07 de Junio de 2006, 17:32:52 »
Chaly29 gracias por la bienvenida, no tome como un reto ni mucho menos tu post, para eso estan los moderadores, gracias por la atencion.Siguiendo con mi duda...

Hola compañero, has habilitado el bit RCIE (PIE1<5>), PEIE (INTCON<6>), GIE(INTCON<7>). Asegurate de setearlos.

ya estan seteados si te fijas en el programa del primer post al hacer:
movlw 0C0H ;Habilitacion para las
movwf INTCON ;interrupciones generales
0C0H  ---> 11000000

y tambien esta : bsf PIE1,RCIE ;Habilitacion interrupcion RX

por lo que maunix me decia...

El TX es el RC6 cuidado con eso.  TRISC<6> y TRISC<7> ambos deben estar en 1.

confusion mia, tendre que probar a poner el TRISC<6> en 1, al principio lo puse como 0 porque es una salida de datos, pero bueno, por lo que parece el resto del programa esta bien configurado, si os dais cuenta de algun fallo mas en la configuracion os gradeceria q me lo dijerais, yo probare ahora cambiando la pata Tx y ya comentare el resultado, gracias y saludos :-)

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #9 en: 07 de Junio de 2006, 19:00:18 »
confusion mia, tendre que probar a poner el TRISC<6> en 1, al principio lo puse como 0 porque es una salida de datos, pero bueno, por lo que parece el resto del programa esta bien configurado, si os dais cuenta de algun fallo mas en la configuracion os gradeceria q me lo dijerais, yo probare ahora cambiando la pata Tx y ya comentare el resultado, gracias y saludos :-)

Así a priori no he detectado nada mas.  Haz la prueba y comentanos tus resultados y vemos en que te podemos seguir ayudando.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #10 en: 09 de Junio de 2006, 09:28:14 »
pues no consigo nada, he configurado todo segun lo que hemos hablado hasta ahora, y la interrupcion sigue saltando nada mas comenzar el programa, no espera a que se mande ningun dato del ordenador, sigo mirando pero no encuentro el fallo, me desesperooo  :-/ , si preferis que ponga el codigo completo lo pongo asi os asegurais de que todo este bien, seguire mirando, aver si me echais un cable por favor, gracias y saludos

Desconectado pibe

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 635
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #11 en: 09 de Junio de 2006, 09:35:09 »
Si, mejor que subas todo el programa.

Yo cuando algo me falla empiezo a meterle LEDS para saber donde se queda trabado o donde deja de hacer lo que yo pretendo.
Mi jefe mirando el prototipo que estoy creando: "Y eso va a funcionar?"

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #12 en: 09 de Junio de 2006, 09:47:44 »
pues no consigo nada, he configurado todo segun lo que hemos hablado hasta ahora, y la interrupcion sigue saltando nada mas comenzar el programa, no espera a que se mande ningun dato del ordenador, sigo mirando pero no encuentro el fallo, me desesperooo  :-/ , si preferis que ponga el codigo completo lo pongo asi os asegurais de que todo este bien, seguire mirando, aver si me echais un cable por favor, gracias y saludos

Fijate si al encender el PIC o conectarle el cable de la PC tienes el pin de RX en bajo.  Si es así tienes un problema de hardware.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado mikelzuru

  • PIC10
  • *
  • Mensajes: 6
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #13 en: 19 de Junio de 2006, 14:54:23 »

Fijate si al encender el PIC o conectarle el cable de la PC tienes el pin de RX en bajo.  Si es así tienes un problema de hardware.

Saludos


Pues tenias razon, la cosa es q habia una conexion  (q no la habia hecho yo pero bueno) :mrgreen: q ponia la pata de RX y la del max232 a 0, y por eso no recibia nada, pero ya esa solucionado y funciona, gracias por la ayuda a todos, para cualquier otra duda ya se donde postear, gracias otra vez y saludos

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Necesito ayuda, conexion pic16f876 mediante rs232 al pc
« Respuesta #14 en: 19 de Junio de 2006, 20:28:05 »

Fijate si al encender el PIC o conectarle el cable de la PC tienes el pin de RX en bajo.  Si es así tienes un problema de hardware.

Saludos


Pues tenias razon, la cosa es q habia una conexion  (q no la habia hecho yo pero bueno) :mrgreen: q ponia la pata de RX y la del max232 a 0, y por eso no recibia nada, pero ya esa solucionado y funciona, gracias por la ayuda a todos, para cualquier otra duda ya se donde postear, gracias otra vez y saludos

Bueno me alegro haber acertado en el problema que tenías. 

Claro que aquí estamos siempre que podemos para responder a las dudas.

Saludos


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything