TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado 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?
-
:shock: Más detalles sino no se puede ayudar! Como lo haces? Que datos erróneos salen?
-
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
-
Y que código estas utilizando? :roll:
-
.
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?
-
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
-
aun no me funciona
-
.
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.