TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: pacocable en 26 de Marzo de 2010, 06:43:22

Título: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: pacocable en 26 de Marzo de 2010, 06:43:22
Necesito leer datos por rb7 y enviar por rb0, pero me salen datos erroneos¿Algun ejemplo en asm?
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: Suky en 26 de Marzo de 2010, 09:36:09
 :shock: Más detalles sino no se puede ayudar! Como lo haces? Que datos erróneos salen?
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: pacocable en 26 de Marzo de 2010, 12:03:26
me voy a intentar de explicar:
necesito leer por rb7 datos, de forma que los pueda comparar si son los que quiero, ok,pero sino los dejo pasar, como especie de un filtro
es de un esquema raro,creo que trabaja a 38400 , pero eso son los pines que tengo que usar
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: Suky en 26 de Marzo de 2010, 16:22:00
Y que código estas utilizando?  :roll:
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: mtristan en 26 de Marzo de 2010, 19:27:00
.


Si estás usando el 16F628 y querés recibir y transmitir datos en forma serial, te recomiendo usar el módulo USART, simplifica muchísimo el programa (más aún si lo hacés en ASM)  ;-).
Aunque este utiliza el pin RB1 para recibir y RB2 para transmitir; no se si los estabas usando para otra cosa... ¿De dónde vienen los datos que querés filtrar?


Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: pacocable en 06 de Abril de 2010, 15:58:51
este el el codigo para recibir y si me lee bien los bytes que quiero y en perfecto oren
Lee_RB07 BTFSC   PORTB     , 00
            GOTO    Lee_RB07
            MOVLW   0x02
            CALL    RETARDO
            NOP
            MOVLW   0xFD
            TRIS    PORTB
            MOVLW   0x08
            MOVWF   0x7E
Loop_RB07  MOVLW   0x03
            CALL    RETARDO
            BSF     STATUS    , C
            BTFSC   PORTB     , 00
            BCF     STATUS    , C
            RLF     0x7D      , f
            MOVF    0x7D      , W
            MOVWF   0x76
            DECFSZ  0x7E      , f
            GOTO    Loop_RB07
            BTFSS   0x72      , 05
            GOTO    Label_0082
            MOVLW   0x15
            CALL    RETARDO
            MOVF    0x7D      , W
            RETURN
y est es el codigo para enviar, pero este es el que fallan los bytes enviados:
ENVIA_RB0
            BTFSS   PORTB     , 00
            GOTO    ENVIA_RB0
            clrf   0X7F
            MOVWF   0x7D
            COMF    0x7D      , f
            MOVLW   0x08
            MOVWF   0x7E
            MOVLW   0xFE
            TRIS    PORTB
            BCF     PORTB     , 00
            NOP
            MOVLW   0x01
            MOVWF   0x7F
Loop_RB00
            MOVLW   0x03
            CALL    RETARDO
            RLF     0x7D      , f
            RLF     0x7D      , W
            ANDLW   0x01
            XORWF   0x7F      , f
            XORWF   PORTB     , W
            XORWF   PORTB     , f
            DECFSZ  0x7E      , f
            GOTO    Loop_RB0
            NOP
            MOVLW   0x03
            CALL    RETARDO
            NOP
            MOVF    0x7F      , W
            XORWF   PORTB     , W
            XORWF   PORTB     , f
            MOVLW   0x05
            CALL    RETARDO
            MOVF    0x7F      , W
            XORWF   PORTB     , W
            XORWF   PORTB     , f
            MOVLW   0x0B
            CALL    RETARDO
            MOVLW   0xFF
            TRIS    PORTB
            GOTO    RETARDO_1A
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: pacocable en 09 de Abril de 2010, 04:09:11
aun no me funciona
Título: Re: ¿16f628 Como puedo lee datos por rb7 y enviar por rb0?
Publicado por: mtristan en 09 de Abril de 2010, 10:16:28
.


Sigo insistiendo en que pruebes con el módulo USART del 16F628  :azn:. Aquí (http://www.todopic.com.ar/foros/index.php?topic=24720.msg204914#msg204914) hay un ejemplo sencillo y un poco más arriba, en el mismo enlace, se explica el funcionamiento del módulo.
Saludos.