• Martes 5 de Noviembre de 2024, 17:21

Autor Tema:  Rutina De Tx Y Rx Con Pic 16f870  (Leído 2741 veces)

giovy

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Rutina De Tx Y Rx Con Pic 16f870
« en: Lunes 20 de Septiembre de 2004, 00:00 »
0
Hola a todos, soy nuevo en el foro y quisiera algo de ayuda, necesito realizar una rutina de TX y RX serial con pic 16f870, el dato recibido en el Pic es TTL y necesito sacarlo a 4 dispositivos en TTL.

No se si me pudieran colaborar indicandome como realizarlo, la idea es no emplear el módulo de TX y RX que trae el Pic.

Por su gentil colaboración les agradezco a todos.

oldkami

  • Miembro activo
  • **
  • Mensajes: 50
    • Ver Perfil
Re: Rutina De Tx Y Rx Con Pic 16f870
« Respuesta #1 en: Lunes 27 de Septiembre de 2004, 23:01 »
0
No recuerdo muy bien donde encontre estas rutinas, sirven para configurar un rs232 por software.   espero que te sean de ayuda.


Código: Text
  1.  
  2. ;transmite serialmente a 9600bps con un xtal de 4MHz
  3. ;se deben definir las siguientes variables:
  4. ;  RXport  
  5. ;  RXtris
  6. ;  TXport
  7. ;  TXtris
  8. ;  RS_TEMP1
  9. ;  RS_TEMP2
  10. ;  RXD
  11. ;  TXD
  12. ;  RB0, ES LA SEÑAL DE RX
  13.  
  14.  
  15.   #define  RXport  PORTB,0
  16.   #define  RXtris  TRISB,0
  17.   #define  TXport  PORTB,1
  18.   #define  TXtris  TRISB,1
  19.  
  20.   CONSTANT  LF   = d'10'
  21.   CONSTANT  CR = d'13'
  22.   CONSTANT  TAB = d'9'
  23.   CONSTANT  BS   = d'8'
  24.  
  25.   UDATA_SHR
  26. RS_TEMP1  RES  1
  27. RS_TEMP2  RES  1
  28. RXD    RES  1
  29. TXD    RES  1
  30.  
  31.  
  32.  
  33. ;MACROS
  34.  
  35. RS232init  macro
  36.   call  RS_init
  37.   endm
  38.  
  39. SEND  macro  S_String
  40.   movlw  S_String
  41.   call  SENDsub
  42.   endm
  43.  
  44. SENDw  macro
  45.   call  SENDsub
  46.   endm
  47.  
  48. RECEIVE  macro
  49.   call  RECsub
  50.   endm
  51.  
  52. ;subrutinas
  53. ;RS_init inicializa
  54. RS_init  bsf  TXport    
  55.   banksel  OPTION_REG
  56.   clrf  OPTION_REG
  57.   bcf  TXtris
  58.   bsf  RXtris
  59.   banksel  TXport
  60.   bsf  TXport
  61. &#59;movlw  INTCON
  62.   RETURN
  63.  
  64. ;RECsub  recibe el dato serial  
  65. RECsub  call  RS_Wait
  66.   btfsc  RXport  &#59;
  67.   goto  REENTRY  &#59;
  68.   movlw  0x08
  69.   movwf  RS_TEMP1
  70.   goto  RECa
  71. RECa  call  R_Wait
  72.   btfss  RXport
  73.   goto  RECb
  74.   bsf  RXD,0x07
  75.   goto  RECc
  76. RECb  bcf  RXD,0x07
  77. RECc  decfsz  RS_TEMP1,0
  78.   rrf  RXD,1
  79.   decfsz  RS_TEMP1,1
  80.   goto  RECa
  81.   call  R_Wait
  82.   btfss  RXport
  83.   clrf  RXD
  84.   retlw  0x01
  85.  
  86. ;REENTRY limpia RXD en caso de malentendido
  87. REENTRY  
  88.   clrf  RXD
  89.   movlw  0x0F
  90.   movwf  RXD
  91.   retlw  0x01
  92.  
  93. ;SENDsub transmite un dato almacenado en W
  94. SENDsub  movwf  TXD
  95.   bcf  TXport
  96.   movlw  0x08
  97.   movwf  RS_TEMP1
  98.   call  S_Wait
  99. SENDa  btfsc  TXD,0
  100.   goto  SENDb
  101.   bcf  TXport
  102.   goto  SENDc
  103. SENDb  bsf  TXport
  104. SENDc  rrf  TXD,1
  105.   call  S_Wait
  106.   decfsz  RS_TEMP1,1
  107.   goto  SENDa
  108.   goto  SENDd
  109. SENDd  bsf  TXport
  110.   call  S_Wait
  111.   call  S_Wait
  112.   bsf  TXport
  113.   RETURN
  114.  
  115. ;rutinas de espera: deben ser cambiadas segun el xtal usado
  116. ;y la tasa de baudios.
  117.  
  118. S_Wait  movlw  0x1E
  119.   movwf  RS_TEMP2
  120.   goto  X_Wait
  121. RS_Wait  movlw  0x0C
  122.   movwf  RS_TEMP2
  123.   goto  X_Wait
  124. R_Wait  movlw  0x1D
  125.   movwf  RS_TEMP2
  126.   goto  X_Wait
  127. X_Wait  decfsz  RS_TEMP2,1
  128.   goto  X_Wait
  129.   RETURN
  130.  
  131.  

Saludos

Oldkami

giovy

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Rutina De Tx Y Rx Con Pic 16f870
« Respuesta #2 en: Miércoles 29 de Septiembre de 2004, 03:39 »
0
Oldkami mil gracias por su colaboración, comenzare a trabajar en el.
 :D