Electgpl

8051 - ECO UART

Jun 12th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-------------------------------------------------------------------------------------
  2. ;Programa que realiza el ECO del puerto serie con 8051 @ 8952.
  3. ;El dato que es recibido por la UART es re envidado por la misma.
  4. ;Se requiere de un cristal de 11.059MHz para el baudrate de 9600bps.
  5. ;Utilización de UART en Modo 1 y Timer 1 en Modo 2.
  6. ;Fecha de realización: 12/06/2017
  7. ;Autor: Sebastian Caccavallo - electgpl.blogspot.com.ar
  8. ;Modificación:
  9. ;-------------------------------------------------------------------------------------
  10.             ORG 0000H               ;Dirección del origen del programa
  11.             JMP INICIO              ;Salta al Inicio del programa
  12. ;
  13.             ORG 0023H               ;Dirección de interrupción
  14.             JMP UARTINT             ;Salta a la interrupción
  15. ;        
  16. INICIO:     MOV     SCON, #50h      ;UART en MODO 1 (8BIT), REN=1
  17.             ORL     TMOD, #20h      ;TIMER 1 en MODO 2
  18.             MOV     TH1, #0FDh      ;9600bps @ 11.059MHz
  19.             MOV     TL1, #0FDh      ;9600bps @ 11.059MHz
  20.             SETB    ES              ;Habilitación de Interrupción Serial
  21.             SETB    EA              ;Habilitación de Interrupciones Globales
  22.             SETB    TR1             ;Activa TIMER 1
  23.             JMP     $               ;Loop cerrado de espera para interrupción
  24. ;
  25. UARTINT:    JNB     RI,DELTI        ;Pregunta si hay Recepción
  26.             CLR     RI              ;Borra el flag de recepción para la siguiente
  27.             MOV     A,SBUF          ;Lee el dato desde la UART
  28.             MOV     SBUF,A          ;Escribe el dato en la UART
  29.             LJMP    ENDINT          ;Fin de subrutina de interrupción
  30. DELTI:      CLR     TI              ;Borra el flag de transmisión para la siguiente
  31. ;
  32. ENDINT:     RETI                    ;Retorno de Interrupción
  33. ;
  34.             END                     ;Fin del programa
Advertisement
Add Comment
Please, Sign In to add comment