Hola soy nuevo en este foro, y por lo visto hasta el momento es más que interesante.
El problema que tengo es que estoy haciendo un proyecto inalámbrico utilizando el 89s51 y los transceivers rtx-mid. He utilizado código ensamblador, el código funciona bien hasta que cuando quiero volver a iniciar al ciclo mediante la interrupcion int0 esta no responde como si lo había hecho en el primer caso, vamos que el programa ya no salta a la dirección 03H. He probado dos simuladores distintos, y en ambos sucede lo mismo por lo que queda claro que es culpa del código, pero además le ha dado mil vueltas y sigo sin encontrar la causa del problema.
Pego el código a continuación y si alguien fuese tan amable de encontrar el fallo me haría un gran favor. Muchas gracias de antemano.
Muchas gracias, se que puede resultar incomodo el tema del ensamblador, pero a mi me han enseñado así y es lo que utilizo. La mayaoría de llamadas a rutinas son para ajustar los tiempos necearios para el paso de tx y rx del rtx-mid que setean ciertos bits segun mi esquemático.
El problema que tengo es que estoy haciendo un proyecto inalámbrico utilizando el 89s51 y los transceivers rtx-mid. He utilizado código ensamblador, el código funciona bien hasta que cuando quiero volver a iniciar al ciclo mediante la interrupcion int0 esta no responde como si lo había hecho en el primer caso, vamos que el programa ya no salta a la dirección 03H. He probado dos simuladores distintos, y en ambos sucede lo mismo por lo que queda claro que es culpa del código, pero además le ha dado mil vueltas y sigo sin encontrar la causa del problema.
Pego el código a continuación y si alguien fuese tan amable de encontrar el fallo me haría un gran favor. Muchas gracias de antemano.
;RELE
ORG 00H
JMP INICIO
ORG 03H
JMP INT0
ORG 100H
INICIO: MOV IE,#81H
MOV TCON,#01H
CLR P1.0
CLR P1.1
RX: SETB P1.1
ACALL DRX20
SETB P1.0
ACALL DRX200
CLR P1.0
ACALL DRX40
CLR P1.1
ACALL DRX20
SETB P1.1
ACALL DRX200 ;
BUCLE: JMP BUCLE
DRX20: MOV R0,#7
HRX20: DJNZ R0,HRX20
RET
DRX200: MOV R0,#90
HRX200: DJNZ R0,HRX200
RET
DRX40: MOV R0,#16
HRX40: DJNZ R0,HRX40
RET
INT0: MOV PCON,#00H
SETB P1.2
ACALL TX
LJMP RX
RETI
TX: SETB P1.0
ACALL DTX400
SETB P1.3
RET
DTX400: MOV R0,#182
HTX400: DJNZ R0,HTX400
CLR P1.3
RET
END
Muchas gracias, se que puede resultar incomodo el tema del ensamblador, pero a mi me han enseñado así y es lo que utilizo. La mayaoría de llamadas a rutinas son para ajustar los tiempos necearios para el paso de tx y rx del rtx-mid que setean ciertos bits segun mi esquemático.