Hey!
Saludos Kamaradas!
Aqui solicitando su ayuda, resulta que quiero aprender a usar la comunicación serial con el PIC16F877, ya he investigado bastante, he leido el datasheet del PIC y ya he podido recibir datos del PC al PIC, pero no he podido enviar satisfactoriamente datos del PIC al PC. Estoy haciendo pruebas basicas para envia datos al PC, como el siguiente código el cual según yo envía el dato presente en PORTA al PC cada 1 segundo:
Código:
;---------------------------------------------
List P=16F877
#include<p16f877.inc>
__CONFIG 0X3F71
org 0x00
goto inicio
org 0x05
inicio: bsf STATUS,RP0
movlw 0x06 ; PORTA como entrada
movwf ADCON1 ; digital
clrf TRISB ; PORTB = 'ssss ssss'
movlw 0x0C ; BaudRate a 19200 (Fosc=4MHz)
movwf SPBRG
movlw 0x24
movwf TXSTA ; BRGH=1
bcf STATUS,RP0
bsf RCSTA,SPEN
enviar: movf PORTA,W
movwf TXREG
call delay
goto enviar
; Subrutina de tiempo de aproximadamente 1s
delay: movlw 0x255
movwf 0x20
carga: movlw 0x255
movwf 0x21
decre: nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
decfsz 0x20,F
goto decre
decfsz 0x21,F
goto carga
return
end
Cuando pruebo el circuito con la hyperterminal (o MatLab) no funciona correctamente, solo me envía datos cada vez que oprimo el Reset, por lo que me da la impresión de que debo limpiar una bandera pero en el datasheet no encuentro nada de eso (sera porque mi nivel de ingles es muy bajo). Así que si alguien me puede echar un cable y revisara mi código y me dijera donde esta la falla se los agradecería mucho, o con alguna pista me conformo. Mientras seguiré buscando/experimentando!
Gracias por leer mi mensaje. Buena Vibra!