¿Cómo controlar un Display de 7 segmentos con microcontrolador MC9S08SE8 (contador)?

Buen día,

Estoy haciendo un proyecto donde requiero un contador de 0 a 99 que se muestre por medio de displays de 7 segmentos, he buscado en otros temas y en otras redes pero no encuentro lo que ocupo. Me dijeron que usara el puerto A para hacer el contador (se me hace extraño por que leía que éste puerto es el que tiene el convertidor ADC) luego que en el puerto B lo usara como conversor, también me pasaron un código que dijeron serviría como conversor:

Codigo para "convertir":

Código:
CLR   ADCSC2
                 MOV  #$21, ADCSC1
                 MOV  #$02, APCTL1
CHECANDO:  LDA  ADCSC1
                 CMP  #$80
                 BLO CHECANDO
............
Código mío:

Código:
INCLUDE 'derivative.inc'
;
; export symbols
;
            XDEF _Startup
            ABSENTRY _Startup

;
; variable/data section
;
            ORG    RAMStart         ; Insert your data definition here
ExampleVar: DS.B   1
VAR1:       EQU    $0081
VAR2:       EQU    $0082
;
; code section
;
            ORG    ROMStart
; Include device initialization code
            INCLUDE 'MCUInit.inc'

_Startup:
            LDHX   #RAMEnd+1        ; initialize the stack pointer
            TXS
            ; Call generated Device Initialization function
            JSR    MCU_init

mainLoop:
            MOV    #$FF, PTBDD  ;LIMPIA PUERTO B
LIMPIA:     MOV    #$FF, PTADD  ;LIMPIA PUERTO A
            
CONTADOR:   INC    PTAD         ;INCREMENTO DEL CONTADOR
            BSR    DELAY
            LDA    PTAD         ;CARGA A ACUMULADOR CON CONTADOR
            BRA    CONVERSOR    ;SE VA AL CONVERSOR (PUEDE SER QUE SE QUITE 'BRA')
                    
CONVERSOR:  CLR    ($83)            
            INC    ($83)
            CMP    #$63
            BNE    CONTADOR
            BRA    LIMPIA
            
DELAY:      MOV    #$01, VAR1
LOOP2:      MOV    #$01, VAR2
LOOP1:      DBNZ   VAR2, LOOP1
            DBNZ   VAR1, LOOP2
            RTS
                        
            NOP
            feed_watchdog    
            

            BRA    mainLoop

Lo que sucede con mi código es que para empezar no limpia el puerto A, estoy pensando en usar mejor el puerto B como contador, también estaba revisando un código que encontré que venía un código para el D7S:

FCB $A0, $BE, $62, $2A, $3C, $29, $21, $BA, $20, $28

¿Ese es como una tabla que viene los valores para codificar como si fuera una "tabla de verdad" para el display de 7 segmentos?

Mil gracias
 
Última edición por un moderador:
Atrás
Arriba