Saludos, estoy tratando de comunicarme por RF usando el USART del 16f628 y tengo problemas, espero que me puedan ayudar. El asunto es que cuando envío el dato, el recepctir funciona pero, !UNA SOLA VEZ!, tengo que desenergizar todo el receptor para ue nuevamente responda. He hecho varios cambios pero no logro encontrar dónde esta la falla. Espero sus colaboraciones. Gracias.
para el transmisor:
Para el receptor:
Terminator.
para el transmisor:
Código:
define osc 4
;@ device xt_osc ; oscilador externo XT
@ DEVICE PIC16F628A, WDT_OFF
@ DEVICE PIC16F628A, PWRT_OFF
@ DEVICE PIC16F628A, BOD_OFF
@ DEVICE PIC16F628A, PROTECT_OFF
@ DEVICE PIC16F628A, CPD_OFF
@ DEVICE pic16f628A, LVP_OFF
@ DEVICE PIC16F628A, MCLR_OFF
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
;=====Configuración del USART
RX VAR PORTB.1 : TRISB.1=1 ;Rx
TX VAR PORTB.2 : TRISB.2=0 ;Tx
DEFINE HSER_RCSTA 90H
DEFINE HSER_TXSTA 24H
DEFINE HSER_BAUD 2400
DEFINE HSER_SPBRG 103 ;4Mhz/(2400*16)-1=103
;============================
botonA var portb.0
trisb.0=1
transmitir:
if botonA=0 then envio1
goto transmitir
envio1:
;pause 50
Hserout ["A"]
pause 500
goto transmitir
end
Código:
define osc 4
;@ device xt_osc ; oscilador externo XT
@ DEVICE PIC16F628A, WDT_OFF
@ DEVICE PIC16F628A, PWRT_OFF
@ DEVICE PIC16F628A, BOD_OFF
@ DEVICE PIC16F628A, PROTECT_OFF
@ DEVICE PIC16F628A, CPD_OFF
@ DEVICE pic16f628A, LVP_OFF
@ DEVICE PIC16F628A, MCLR_OFF
@ DEVICE PIC16F628A, INTRC_OSC_NOCLKOUT
;=====Configuración del USART
RX VAR PORTB.1 : TRISB.1=1 ;Rx
TX VAR PORTB.2 : TRISB.2=0 ;Tx
DEFINE HSER_RCSTA 90H
DEFINE HSER_TXSTA 24H
DEFINE HSER_BAUD 2400
DEFINE HSER_SPBRG 103 ;4Mhz/(2400*16)-1=103
;============================
portb.0=0
ledR var portb.0
datos var byte
high portB.7
pause 300
low portB.7
recibir:
;high ledR
Hserin [datos]
if datos="A" then high ledR : pause 500
low ledR
; pause 500
goto recibir
end
Última edición por un moderador: