Autor Tema: Duda en comunicacion RS232 PC/PIC  (Leído 2342 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado marckmicro

  • PIC10
  • *
  • Mensajes: 4
Duda en comunicacion RS232 PC/PIC
« en: 25 de Julio de 2010, 18:18:28 »
Que tal soy nuevo en en foro pero no tan nuevo utilizando pics
mi duda es la siguiente:

¿La comunicacion RS232 con el PIC16F877 es posible si utilizo la configuracion de reloj interno (RC)?
ya lei el datasheet y unos ejemplos pero en ninguno me especifica si el modulo del USART funciona
con el reloj interno del pic que es el que yo estoy utilizando.
 :?

por cualquier cosa les mando el codigo de mi programa, igual y mi error esta en este

Si alguien me puediera ayudar se los agradeceria desde ya.  :)


 

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Duda en comunicacion RS232 PC/PIC
« Respuesta #1 en: 25 de Julio de 2010, 19:25:50 »
Hola, yo he realizado comunicaciones en 9600 con reloj interno sin problemas...
que error te da?  colocas un max232 a la salida ?


Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado marckmicro

  • PIC10
  • *
  • Mensajes: 4
Re: Duda en comunicacion RS232 PC/PIC
« Respuesta #2 en: 25 de Julio de 2010, 20:44:16 »
primero gracias por responder

si utilizo un max232 de hecho ya he realizado comunicacion RS232 utilizando un 8081 de intel como microcontrolador
y se como se utiliza el max de hecho despues de revisar mi circuito solo me quedaba que el error estubiera en mi
programa (como el asunto de reloj).

el error es que no hace nada, se supone que cunado tecleo "a" se encienda RD0 y cuando tecleo "b" se encienda RD1

si puedieras revisar mi codigo te lo agradeceria

Desconectado marckmicro

  • PIC10
  • *
  • Mensajes: 4
Re: Duda en comunicacion RS232 PC/PIC
« Respuesta #3 en: 25 de Julio de 2010, 20:47:59 »
primero gracias por responder

si utilizo un max232 de hecho ya he realizado comunicacion RS232 utilizando un 8081 de intel como microcontrolador
y se como se utiliza el max de hecho despues de revisar mi circuito solo me quedaba que el error estubiera en mi
programa (como el asunto de reloj).

el error es que no hace nada, se supone que cunado tecleo "a" se encienda RD0 y cuando tecleo "b" se encienda RD1

si puedieras revisar mi codigo te lo agradeceria
me equivoque no es 8081 es 8051 jaja

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda en comunicacion RS232 PC/PIC
« Respuesta #4 en: 25 de Julio de 2010, 23:30:48 »
Primero que nada estas configurando RD0 y RD1 como entradas, por lo tanto lo demás puede que este bien   :smiley:

Por aquí hay para leer sobre assembler en PICs y algunos de sus módulos en 16F.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado marckmicro

  • PIC10
  • *
  • Mensajes: 4
Re: Duda en comunicacion RS232 PC/PIC
« Respuesta #5 en: 26 de Julio de 2010, 00:31:53 »
uffffff que pena  :oops: :oops: :oops: :oops: :oops: :oops:

tienes razon puse mal las salidas

pero bueno mando de nuevo el codigo ya corregido espero que no tenga mas errores tontos
y por si acaso pongo mas detalles de mi practica:
PIC16F877A
MAX232 con capacitores de 10uf
Utilizo la interface HyperTerminal para XP con cable USB-Serial

Código: [Seleccionar]
LIST P=16F877       
RADIX HEX                               
INCLUDE <p16f877A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _RC_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

CBLOCK   0X20
apun
dato
PROT1
PROT2
ENDC

org 0x00
GOTO TRANS
org 0X05
TRANS BSF STATUS,RP0 ;banco 1
CLRF TRISD
MOVLW b'01000000'
MOVWF TRISC
BCF TXSTA,BRGH ;pone bit BRGH=0 (velocidad baja)
  MOVLW .6 ;valor para configurar 9600 Bauds
  MOVWF SPBRG ;configura 9600 Bauds
BCF TXSTA,SYNC ;limpia bit SYNC (modo asíncrono)
BCF STATUS,RP0 ;regresa al banco 0
  BSF RCSTA,SPEN ;pone bit SPEN=1 (habilita puerto serie)
      BSF RCSTA,CREN ;Habilita recepción
clrf PORTD
CLRF PORTC

recibe BTFSS PIR1,RCIF  ;checa el buffer de recepción
GOTO recibe ;si no hay dato listo espera
MOVF RCREG,W ;si hay dato, lo lee
MOVWF dato ;lo almacena en dato
MOVF dato,W
SUBLW 0X61
BTFSS STATUS,Z
GOTO be
bsf PORTD,0
call TEMP
bcf PORTD,0
be MOVF dato,W
SUBLW 0X62
BTFSS STATUS,Z
GOTO recibe
bsf PORTD,1
call TEMP
bcf PORTD,1
goto recibe

TEMP
MOVLW B'11111111'
MOVWF PROT1 ;rutina de retardo para visualizar las operaciones
LOOP2
MOVLW B'11111111'
MOVWF PROT2
LOOP
DECFSZ PROT2,1
GOTO LOOP
DECFSZ PROT1
GOTO LOOP2
RETURN
end



 

anything