PRACTICA # 2

 

CONTADOR CICLICO DE 00 a 99,

DISPLAY DINAMICO DE DOS DÍGITOS

 Plano del circuito  

Nota: Esta práctica ha sido pensada para ensamblarse sobre la tarjeta de desarrollo del kit JK3 y por eso en el Plano del circuito puede que sean omitidos algunos componentes

 La segunda práctica demuestra el remplazo de circuitería digital discreta como lo son contadores ascendentes de decadas y también los famosos decodificadores de BCD (Binary Coded Decimal) a siete segmentos ahorrando de esta manera espacio valioso y realizando por otro lado ahorro de energía y número de pines con el método de visualización dinámica.

  

Objetivos:

 

·      Realizar la edición, ensamble, simulación y depuración del programa

·      Comprobar el correcto funcionamiento del programa y el Hardware de la tarjeta

·      Conteo decimal ascendente por programa de dos dígitos BCD.

·      Decodificación de BCD a 7 segmentos por programa

 

 

Procedimiento:

 ·      Realizar la edición y ensamble del programa tal como se describió en la sección anterior

·      Ensamblar y verificar el Hardware de acuerdo al plano de la práctica

·      Interpretar de acuerdo al diagrama de flujo el listado del programa fuente

·      Realizar la simulación en circuito modificando las constantes de los retardos para evitar demoras inherentes a la simulación (recordar que no es simulación en tiempo real) observar.

·      Programar el microcontrolador con el correspondiente archivo de extensión .S19 (practica#2.s19) devolviendo a su valor original las constantes de los retardos.

 

 

Propuesta:

 Se propone modificar el programa de tal manera que el conteo se pueda realizar ascendente o descendente en forma continua dependiendo de una señal generada desde el exterior (pulsador). También se puede modificar el programa haciendo que el conteo sea hexadecimal (00 a FF) alterando los límites superiores de comparación en la rutina "ACTUALIZA CONTADOR".


 

 

 


 

LISTADO DE LA PRÁCTICA # 2

 

*********************************************************

*       PRÁCTICA # 2 MANEJO DE DISPLAY DINÁMICO         *

*               PRACTICA#2B.ASM                         *

*                                                       *

*       "Curso Microcontroladores Motorola"             *

*       Danilo Andrés García Hansen                     *

*       dagh_2001@007mundo.com                          *

*********************************************************

$include 'JL3REGS.INC'

RAM      EQU $0080      ;inicio de la RAM

FLASH    EQU $EC00      ;inicio de la FLASH

RESETVEC EQU $FFFE      ;Vector de RESET

 

COPD    EQU     0

 

K1      EQU     255T    ;CONSTANTES PARA RETARDO DE 10mS

K2      EQU     10T

NUMREPETICIONES EQU     50T ;CONSTANTE DE RETARDO ENTRE CUENTAS

 

        ORG     RAM

REG1    RMB     1       ;CONTADOR DEL DELAY1

REG2    RMB     1       ;CONTADOR DEL DELAY2

DIG1    RMB     1       ;CONTADOR DECIMAL MENOS SIG.

DIG2    RMB     1       ;CONTADOR DECIMAL MAS SIG.

CONTADORCICLOS RMB 1    ;CONTADOR PARA RETARDO ENTRE ...

                        ;ACTUALIZACIONES DEL CONTADOR

;*********************************************************

;       PROGRAMA PRINCIPAL

        ORG    FLASH    ;DEFINE DIRECCIÓN PARA UBICACION DEL CODIGO SGTE.

$INCLUDE  'DISPLAY.INC' ;AQUI SE INCLUYEN LAS RUTINAS DE DISPLAY

;*********************************************************

INICIO:

        RSP

        CLRA

        BSET    COPD,CONFIG1

        MOV     #$FF,PORTD      ;INICIA APAGADOS LOS DIGITOS

        MOV     #$F8,DDRD       ;SENTIDO DEL PUERTO D

        MOV     #$F8,DDRB       ;SENTIDO DEL PUERTO B

 

        CLR     DIG2            ;INICIALIZA CONTADOR DECIMAL

        CLR     DIG1

LOOPM:

        MOV     #NUMREPETICIONES,CONTADORCICLOS

LOOPM2:

        BSR     VISUALIZA       ;VISUALIZACION DINAMICA

        DBNZ    CONTADORCICLOS,LOOPM2

       

        BSR     ACTUCONTA

        BRA     LOOPM

;*********************************************************

DELAY1:         ;RETARDO TOTAL DE K1*5+12

 

        MOV     #K1,REG1        ;4 CICLOS

LOOP1:  DBNZ    REG1,LOOP1      ;5*K1 CICLOS

        RTS                     ;4 CICLOS

;*********************************************************

DELAY2:         ;RETARDO TOTAL DE 5*K2*K1+17*K2+12

 

        MOV     #K2,REG2        ;4 CICLOS

LOOP2:  BSR     DELAY1          ;K2*DELAY1

        DBNZ    REG2,LOOP2      ;5*K2 CICLOS

        RTS                     ;4 CICLOS

;*********************************************************

ACTUCONTA:

        INC     DIG1

        LDA     DIG1

        CMP     #10T

        BEQ     AJ1

        RTS

AJ1

        CLR     DIG1

        INC     DIG2

        LDA     DIG2

        CMP     #10T

        BEQ     AJ2

        RTS

AJ2

        CLR     DIG2

        RTS

;*********************************************************

        ORG    RESETVEC         ; AQUI SE UBICA EN EL VECTOR DE RESET

        DW     INICIO           ; LA DIRECCION DE INICIO DEL PROGRAMA

 

 


ARCHIVO PARA INCLUIR "DISPLAY.INC"

;       DISPLAY.INC     OCT-2000

;ARCHIVO DE SUBRUTINAS Y MACROS PARA DOS DISPLAY 7 SEGMENTOS ANODO COMUN

************  DEFINICION DE MACROS   ********************

$MACRO  DIG2ON

        BCLR    4,PORTD

$MACROEND

;-----------------------

$MACRO  DIG1ON

        BCLR    3,PORTD

$MACROEND

;-----------------------

$MACRO  DIG2OFF

        BSET    4,PORTD

$MACROEND

;-----------------------

$MACRO  DIG1OFF

        BSET    3,PORTD

$MACROEND

************  FIN DEFINICION DE MACROS   *****************

VISUALIZA

        LDA     DIG2

        TAX

        LDA     TABLA7SEG,X

        BSR     SIETE_SEG

        DIG2ON

        BSR     DELAY2

        DIG2OFF

       

        LDA     DIG1

        TAX

        LDA     TABLA7SEG,X

        BSR     SIETE_SEG

        DIG1ON

        BSR     DELAY2

        DIG1OFF

        RTS

;*********************************************************

;COLOCA EN EL BUS DE DATOS DEL DISPLAY LOS BITS DEL DIGITO A ENCENDER

SIETE_SEG

        STA     PORTB

        NSA             ;INTERCAMBIO DE NIBBLES

        ORA     #$1F    ;ENMASCARA CON 1's LOS BITS 4 AL 0

        STA     PORTD

        RTS

;*********************************************************

TABLA7SEG            ;TABLA PARA DISPLAY ANODO COMUN

        DB      %10000000       ;0

        DB      %11110010       ;1

        DB      %01001000       ;2

        DB      %01100000       ;3

        DB      %00110010       ;4

        DB      %00100100       ;5

        DB      %00000100       ;6

        DB      %11110000       ;7

        DB      %00000000       ;8

        DB      %00100000       ;9

;*********************************************************

 


Archivo fuente práctica2

Archivos para Incluir


HOME

 

1