Advertisement
Electgpl

8051 - Demos 4 Display Bloqueante con Tabla

Jul 24th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;-------------------------------------------------------------------------------------
  2. ;Programa de demostración de multiplexado de 4 displays mediante delay bloqueante y
  3. ;valores estáticos predefinidos por el usuario utilizando tabla de datos. con 8051 @ 8952.                    
  4. ;Archivo: Demo4DispTab.s03
  5. ;Fecha de realización: 24/07/2017
  6. ;Autor: Sebastian Caccavallo - electgpl.blogspot.com.ar
  7. ;Modificación:
  8. ;-------------------------------------------------------------------------------------
  9.             ORG     0000H           ;Dirección del origen del programa
  10.             JMP     SETUP           ;Salta al Inicio del programa
  11. ;        
  12. SETUP:      CLR     P1              ;Inicializa P1
  13.             CLR     P3              ;Inicializa P3
  14.             MOV     DPTR,#TABLE
  15. ;                        
  16. LOOP:       MOV     P3,#00000001B   ;Enciende Display x1
  17.             MOV     A,#01H          ;Carga el numero 1 a traer de la tabla
  18.             MOVC    A,@A+DPTR       ;Trae el valor cargado en acum desde la tabla
  19.             MOV     P1,A            ;Muestra el valor del acum en el puerto
  20.             CALL    DELAY           ;Llama a la demora
  21.             MOV     P3,#00000010B   ;Enciende Display x10
  22.             MOV     A,#02H          ;Carga el numero 1 a traer de la tabla
  23.             MOVC    A,@A+DPTR       ;Trae el valor cargado en acum desde la tabla
  24.             MOV     P1,A            ;Muestra el valor del acum en el puerto
  25.             CALL    DELAY           ;Llama a la demora
  26.             MOV     P3,#00000100B   ;Enciende Display x100  
  27.             MOV     A,#03H          ;Carga el numero 1 a traer de la tabla
  28.             MOVC    A,@A+DPTR       ;Trae el valor cargado en acum desde la tabla
  29.             MOV     P1,A            ;Muestra el valor del acum en el puerto
  30.             CALL    DELAY           ;Llama a la demora  
  31.             MOV     P3,#00001000B   ;Enciende Display x100  
  32.             MOV     A,#04H          ;Carga el numero 1 a traer de la tabla
  33.             MOVC    A,@A+DPTR       ;Trae el valor cargado en acum desde la tabla
  34.             MOV     P1,A            ;Muestra el valor del acum en el puerto
  35.             CALL    DELAY           ;Llama a la demora                
  36.             JMP     LOOP            ;Vuelve a comenzar el ciclo
  37. ;
  38. DELAY:      MOV     R0,#255         ;Carga R0 con 255
  39.             DJNZ    R0,$            ;Decremento R0
  40.             RET                     ;Retorna subrutina
  41. ;
  42. TABLE:      DB      00111111B       ;Numero 0 en Display de 7 segmentos  
  43.             DB      00000110B       ;Numero 1 en Display de 7 segmentos
  44.             DB      01011011B       ;Numero 2 en Display de 7 segmentos
  45.             DB      01001111B       ;Numero 3 en Display de 7 segmentos
  46.             DB      01100110B       ;Numero 4 en Display de 7 segmentos
  47.             DB      01101101B       ;Numero 5 en Display de 7 segmentos
  48.             DB      01111101B       ;Numero 6 en Display de 7 segmentos
  49.             DB      00000111B       ;Numero 7 en Display de 7 segmentos
  50.             DB      01111111B       ;Numero 8 en Display de 7 segmentos
  51.             DB      01101111B       ;Numero 9 en Display de 7 segmentos        
  52. ;
  53.             END                     ;Fin del programa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement