Autor Tema: Paralelo a serial con pic16f84  (Leído 4354 veces)

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

Desconectado XRaziel

  • PIC10
  • *
  • Mensajes: 15
Paralelo a serial con pic16f84
« en: 27 de Septiembre de 2005, 16:18:00 »
Hola amigos deseo tomar el estado del puerto B y enviarlo en forma serial a una pc alguien tiene alguna rutina que me pueda enviar por favor .

Gracias

Desconectado XRaziel

  • PIC10
  • *
  • Mensajes: 15
RE: Paralelo a serial con pic16f84
« Respuesta #1 en: 27 de Septiembre de 2005, 17:06:00 »
Escrito originalmente por XRaziel
Hola amigos deseo tomar el estado del puerto B y enviarlo en forma serial a una pc alguien tiene alguna rutina que me pueda enviar por favor .

Gracias


Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Paralelo a serial con pic16f84
« Respuesta #2 en: 27 de Septiembre de 2005, 19:50:00 »
Ok t faltan 2 cosas; lenguaje y q tipo de serial kieres sincrono (2 lineas) o asincrono (1 linea), en cualkier caso aun falta q definas a q velocidad kieres los datos.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Paralelo a serial con pic16f84
« Respuesta #3 en: 27 de Septiembre de 2005, 20:27:00 »
Hola:

Me adelanto a la respuesta del amigo XRaziel y pongo un ejemplito en PBP (para un 877)

Codigo:
include "modedefs.bas"

Puerto var byte

TRISB=%11111111

loop:
    puerto=PORTB
    SEROUT PORTC.0,N2400,[#puerto]
    goto loop
end

Desconectado XRaziel

  • PIC10
  • *
  • Mensajes: 15
RE: Paralelo a serial con pic16f84
« Respuesta #4 en: 28 de Septiembre de 2005, 09:03:00 »
Hola gracias por mostrar interes lo me disculpo por no añadir mas informacion seria de la siguente forma

codigo assembled  velocidad 1200bps asincrono

esto es lo que hice por favor si lo pueden corregir seria estupendo .

estado   equ   0x03      
ptoa   equ   0x05      
ptob   equ   0x06      
dato   equ   0x10      
bits   equ   0x11      
loop   equ   0x12      
#define   CARRY estado, 0   
#define   RP0     estado, 5   
#define   TX     ptoa, 2      
   bsf        RP0      
   movlw   0x04      
   movwf   ptoa      
   movlw   0xff       
    movwf   ptob
   bcf       RP0          
   bsf TX          
   ENVIAR   
    clrf    dato
   movlw   ptob
   movwf   dato      
   movlw   d"8"      
   movwf   bits
   bcf   TX              
   call   BIT          
DATO   
    bcf   TX          
   rrf   dato, 1          
   btfsc   CARRY      
   bsf   TX              
   call   BIT          
   decfsz   bits, 1      
   goto   VEL      
   bsf   TX              
   call   BIT          
    goto    ENVIAR
VEL   movlw   d"166"      
   movwf   loop
   nop
   nop
   decfsz   loop, 1
   goto   $ -3
   return

   end


Es todo lo que tengo si tienen  un codigo completo seria estupendo
Gracias

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Paralelo a serial con pic16f84
« Respuesta #5 en: 28 de Septiembre de 2005, 12:44:00 »
Ehh dond esta esa subrutina BIT??

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Paralelo a serial con pic16f84
« Respuesta #6 en: 28 de Septiembre de 2005, 15:09:00 »
Por el Goto $-3 es una rutina de un autor de libros sobre PICs muy conocido...Sonrisa GiganteFlash

A esa rutina le falta decirle el seteo a los puertos....
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado XRaziel

  • PIC10
  • *
  • Mensajes: 15
RE: Paralelo a serial con pic16f84
« Respuesta #7 en: 28 de Septiembre de 2005, 16:32:00 »
Si bueno la rutine es una que encontre en internet ahora trate de modificarla y si me falta la sub BIT pero en todo caso lo que necesitaba era una ayuda en vez de una critica, al final lo resolvi solo y dejo la rutina aca para que la pueda usar quien la necesite.

;La rutina la extraje de Internet Solo la mofifique pero funciona bien
;para el que la quiera usar
;Funciona a 1200bps
LIST P=16F84
;*****************************
;Declaración de registros
Optionr equ 0x01
status  equ 0x03
PORTA   equ 0x05
PORTB   equ 0x06                                                                                            
carry   equ 0
TX      equ 2
r0d     equ 0x0d
r0e     equ 0x0e
trans   equ 0x0f

org       0
goto    Inicio
org     5
;****************************
;Subrutina delay para transmitir un bit
Delay movlw .166           ;cargar para 833 microseg aproximadamente
 startup movwf r0e        ;llevar a cabo el retardo
  redo nop                ;limpiar circuito de vigilancia
       nop
       decfsz r0e
       goto  redo
       retlw 0
;Fin de la subrutina delay
;****************************
;Subrutina enviar,datos a traves del transmisor
Enviar movwf trans        ;llevar el contenido de w a transmision
  xmrt movlw 8            ;cargar con el numero de bits
       movwf r0d          ;el contador
       bcf   PORTA,TX     ;colocar la linea de transmision en bajo
       call  Delay        ;para generar bit de arranque
 xnext bcf   PORTA,TX     ;colocar la linea de transmision en bajo
       bcf   status,carry ;limpiar el carry
       rrf   trans        ;rotar registro de transmision
       btfsc status,carry ;preguntar por el carry
       bsf   PORTA,TX     ;si es uno, colocar linea en alto
       call  Delay
       decfsz r0d         ;decrementar el contador, saltar si cero
       goto  xnext        ;repetir hasta transmitir el dato
       bsf   PORTA,TX     ;colocar la linea de transmision en alto
       call  Delay        ;llamar retardo 1 bit -bit de parada-
       retlw 0
;Fina de la subrutina enviar
;****************************
;Inicio del programa
Inicio bsf   status,5      ;pasa al banco alto
       movlw b"00000000"   ;configuro puerto a completo como salida
       movwf PORTA
       movlw 0xFF
       movwf PORTB
       bcf   Optionr,7     ;activa las resistencias internas de pull up
       bcf   status,5
       bsf   PORTA,TX      ;colocar la linea de transmision en alto
       movf  PORTB,w       ;cargar el dato binario en w
       call  Enviar        ;llamar a la subrutina enviar
       goto  Inicio
;Fin del programa principal
;*****************************
end

Acuerdense que NADIE NACIO SABIENDO............

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Paralelo a serial con pic16f84
« Respuesta #8 en: 28 de Septiembre de 2005, 18:14:00 »
Hola:

amigo XRaziel no creo que sea como para molestarse creo que la critica a la que te refieres fue sin animo de ofender, recuerda que aqui todos estamos para ayudarnos...!

Y gracias por dejar el codigo para los que lo necesiten...! Sonrisa Gigante

Desconectado MGLSOFT

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 7918
RE: Paralelo a serial con pic16f84
« Respuesta #9 en: 29 de Septiembre de 2005, 09:40:00 »
Barbaro, Xraziel !!
Te ayudamos a descubrir que cuando te enojas prestas mas atencion a lo que haces !!RebotadoRebotadoRebotado

Eran algunas chanzas que hacemos por aqui, perdonanos, y feliz bautismo en el foro.
Bienvenido seas aqui, estaremos para ayudarte !!Sonrisa GiganteSonrisa GiganteSonrisa GiganteSonrisa Gigante
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado XRaziel

  • PIC10
  • *
  • Mensajes: 15
RE: Paralelo a serial con pic16f84
« Respuesta #10 en: 29 de Septiembre de 2005, 11:36:00 »
Bien bien jajajaja  de ahora en adelante tratare siempre de ser mas instuitivo con este asunto de programar, esta vez me fue bien pero siempre se necesita de los demas, gracias por lo de bienvenido es grato participar de algo cuando es interezante y sobre todo cuando no es solo uno quien se beneficia.

saludos y un fuerte abrazo desde chile .


 

anything