Advertisement
Electgpl

8051 - ENVIA TABLA UART 1S

Jun 13th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-------------------------------------------------------------------------------------
  2. ;Programa que envía una cadena de caracteres por UART cada 1s. con 8051 @ 8952.
  3. ;El dato es envidado por la UART cada 1s bloqueante.
  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. ;Archivo: EnviaUART.s03
  7. ;Fecha de realización: 13/06/2017
  8. ;Autor: Sebastian Caccavallo - electgpl.blogspot.com.ar
  9. ;Modificación:
  10. ;-------------------------------------------------------------------------------------
  11.             ORG     0000H           ;Dirección del origen del programa
  12.             JMP     SETUP           ;Salta al Inicio del programa
  13. ;        
  14. SETUP:      MOV     SCON, #50h      ;UART en MODO 1 (8BIT), REN=1
  15.             ORL     TMOD, #20h      ;TIMER 1 en MODO 2
  16.             MOV     TH1, #0FDh      ;9600bps @ 11.059MHz
  17.             MOV     TL1, #0FDh      ;9600bps @ 11.059MHz
  18.             SETB    TR1             ;Activa TIMER 1  
  19. ;                        
  20. LOOP:       ACALL   SEND            ;Rutina de envió UART
  21.             SJMP    LOOP            ;Loop principal
  22. ;
  23. SEND:       MOV     DPTR,#TABLA     ;Puntero a tabla de datos  
  24. SIGUE:      CLR     A               ;Limpiamos el acumulador A
  25.             MOVC    A,@A+DPTR       ;Obtiene el Caracter
  26.             JZ      SALE            ;Si es el último caracter, sale  
  27.             MOV     SBUF,A          ;Cargo el dato en Buffer de salida Serie
  28. EOB:        JNB     TI,EOB          ;Envía hasta el ultimo bit    
  29.             CLR     TI              ;Borra el flag de transmisión
  30.             INC     DPTR            ;Incrementa el indice del puntero  
  31.             ACALL   DELAY           ;Rutina de Delay de 1s  
  32.             CPL     P1.0            ;Toggle LED en P1.0
  33.             SJMP    SIGUE           ;Sigue recorriendo la cadena
  34. SALE:       RET                     ;Retorno de Interrupción
  35. ;      
  36. DELAY:      MOV     R7,#6D          ;[2]Cargamos R7 con 6
  37. WAIT1:      MOV     R6,#185D        ;[2]Cargamos R6 con 185  
  38. WAIT2:      MOV     R5,#200D        ;[2]Cargamos R5 con 200
  39. WAIT3:      DJNZ    R5,WAIT3        ;[2]Decrementamos R5 y Salta a WAIT3
  40.             DJNZ    R6,WAIT2        ;[2]Decrementamos R6 y Salta a WAIT2        
  41.             DJNZ    R7,WAIT1        ;[2]Decrementamos R7 y Salta a WAIT1
  42.             RET                     ;[2]Retorno de Subrutina  
  43. ;
  44. TABLA:      DB      "UTN INSPT ",0  ;Tabla de 10 datos a enviar por UART
  45. ;
  46.             END                     ;Fin del programa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement