informe-2

11
LABORATORIO 2 MANEJO DE LOS PUERTOS DE E/S ESTÁNDAR RELOJ DIGITAL ANÁLISIS Y DISEÑO DE MICRO-CONTROLADORES PROFESOR INGENIERO JULIÁN R. CAMARGO César Prieto Suárez 20112005067 Jaime Arturo Hurtado 20121005073 UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS INGENIERÍA ELECTRÓNICA BOGOTÁ 2015

description

informe 2 de un proyecto

Transcript of informe-2

  • LABORATORIO 2

    MANEJO DE LOS PUERTOS DE E/S ESTNDAR

    RELOJ DIGITAL

    ANLISIS Y DISEO DE MICRO-CONTROLADORES

    PROFESOR

    INGENIERO JULIN R. CAMARGO

    Csar Prieto Surez 20112005067

    Jaime Arturo Hurtado 20121005073

    UNIVERSIDAD DISTRITAL FRANCISCO JOS DE CALDAS

    INGENIERA ELECTRNICA

    BOGOT

    2015

  • PLANTEAMIENTO DEL PROBLEMA Disear e implementar con el micro controlador un reloj digital, el cual debe ser visualizado en matrices de LEDs en formato HH: MM. Deber tenerse la opcin de ajustar la hora por medio de pulsadores, adems los dos puntos que separan la hora de los minutos servirn como tic tac del reloj, esto quiere decir que cada vez que pase un segundo cambiara su estado de encendido a apagado y viceversa. ANLISIS DE PROBLEMA Se realizaron dos rutinas, una principal la cual evaluaba si las banderas de modificar estn en 1, lo cual significa que los pulsadores se encuentran en 1 y que aumentara los contadores de segundo, minuto y hora y una segunda rutina, una subrutina encargada de visualizar el la matriz de leds la hora, para esta segunda subrutina se utilizaron las subturinas tiempo y BCD para realizar esta tarea. DISEO

    Para este proyecto se utilizaron los siguientes materiales:

    Matriz de leds (25x7)

    23 transistores bc548

    Jumpers

    Microcontrolador

    2 pulsadores

    Para solucionar el problema de la intensidad de la matriz de leds se utilizaron los transistores que

    actuaban como una compuerta not, si les ingresaba un 1 lgico por la base retornaba un 0 lgico

    por el colector y viceversa si ingresaba un 0 lgico por la base retornaba un 1 lgico por el colector,

    pero la corriente no se la pedira al micro controlador sino a la fuente que polariza los transistores.

    Los puertos del micro controlador se utilizaron de la siguiente manera:

    PUERTOS DE SALIDA:

    PTD (3 al 7) filas.

    PTB (0 al 7) unidades y decenas de hora.

    PTA (0 al 7) unidades y decenas minutos.

    PTC (7) dos puntos de segundos.

    PUERTOS DE ENTRADA:

    PTC (4 y 5) para los pulsadores

    MATRIZ DE LEDS

    La lgica para poder encender la matriz de leds es la siguiente, se necesita que a la matriz de led

    llegue en las filas un cero lgico y en las columnas un 1 lgico para poder encender un led en

    especfico de la siguiente forma:

  • Pero para que la corriente que le exija la matriz de leds no salga del micro controlador se usaran

    transistores que actuaran como compuerta lgica NOT. Haciendo que para que encienda un led se

    deba de mandar un 1 lgico por las filas y un 0 lgico por las columnas.

    VISUALIZACION DINAMICA

    El tipo de visualizacin implementado fue la visualizacin dinmica, que permite que se encienda

    una columna a la vez y se vuelva a apagar encendiendo la siguiente columna, as hasta recorrer

    completamente la matriz de leds, entonces el puerto que nos dira que leds de la columna se

    encender ser el de la filas

    El tiempo de la demora debe ser tal que permita una visualizacin correcta, sin molestos

    parpadeos y con los leds brillantes. Hay que tener en cuenta que si utilizamos tiempos mayores

    para el encendido de cada fila, el brillo de los leds ser mayor, pero tambin aumentara el

    parpadeo.

    CIRCUITO

    El diagrama de los nmeros que se van a visualizar es el siguiente:

    en donde:

    es el bombillo prendido y es el bombillo apagado

    El diagrama del circuito con el que se va a implementar es el siguiente:

  • y una vista del circuito implementado:

  • DIAGRAMA DE FLUJO

  • Teniendo en cuenta el diagrama de flujo, el cual es una gua para poder realizar el cdigo con la

    mayor eficiencia posible, diseamos la parte se software en FREESCALE CODEWARRIOR

    (cdigo aadido en anexos).

    CONCLUSIONES

    El entendimiento del problema que se desea resolver, antes de empezar a realizar alguna

    tarea de anlisis y modelamiento, para esto se hace uso de herramientas como los

    diagramas de flujo y pruebas de escritorio las cuales permiten organizar el algoritmo del

    diseo y comprobarlo.

    Se realiza el reconocimiento de los puertos I/O (de entrada y salida) comprendiendo el

    manejo de los mismos, en el desarrollo de aplicaciones con un micro controlador, lo que

    ser muy importante en futuros proyectos

  • Page: 1C:\Documents and Settings\prietosuarez\Mis documentos\Descargas\INTENTOV5\INTENTO\Sources\main.asmdomingo, 19 de abril de 2015 / 12:01 p.m.

    INCLUDE 'MC68HC908AP16.INC' COPD EQU 0

    ORG 60HDECENAS RMB 1 ;DECENAS (BCD)UNIDADES RMB 1 ;UNIDADES (BCD)SEG RMB 1 ;contador de segundosMIN RMB 1 ;contador de minutosHOR RMB 1 ;contador de horasBHOR RMB 1 ;BANDERA HORABMIN RMB 1 ;BANDERA MINUTODECENA_MIN RMB 1UNIDAD_MIN RMB 1 ;minutos en bcdDECENA_HOR RMB 1UNIDAD_HOR RMB 1 ;horas en bcdPOSICION RMB 1 AJSEG RMB 1DOSPUNTO RMB 1 ORG 860HSTART LDHX #$450

    TXS CLRH BSET COPD,CONFIG1 ;DESHABILITAR COP MOV #0FFH,DDRA ;CONFIGURAR PTA COMO SALIDA PARA HORA MOV #0FFH,DDRB ;CONFIGURAR PTB COMO SALIDA PARA MUNITOS MOV #0FFH,DDRD ;CONFIGURAR PTD COMO SALIDA PARA COLUMNAS DE LA MATRIZ MOV #10000000B,DDRC ;CONFIGURAR PTC COMO ENTRADA PARA LOS PULSADORES Y EL TIC-TAC

    MOV #00H,SEG MOV #00D,MIN MOV #12D,HOR MOV #01H,BHOR MOV #01H,BMIN MOV #00H,AJSEG MOV #01H,DOSPUNTO

    SEGUNDOS BRSET 0,BMIN,AUM_M;PREGUNTA DE LA BANDERA DE MINUTOSBHORA BRSET 0,BHOR,AUM_H;PREGUNTA DE LA BANDERA DE HORA JMP AJUSTEAUM_M BRSET 4,PTC, AUMENTA_MIN;PREGUNTA DEL PULSADOR DE MINUTO JMP BHORAAUMENTA_MIN LDA MIN CBEQA #59D,RSTMIN INC MIN MOV #1D,BMIN JMP AUM_HRSTMIN MOV #0D,MIN JMP AUM_HAUM_H BRSET 5,PTC, AUMENTA_HOR;PREGUNTA DEL PULSADOR DE HORA JMP AJUSTEAUMENTA_HOR LDA HOR CBEQA #23D,RSTHOR INC HOR MOV #1D,BHOR JMP AJUSTERSTHOR MOV #0D,HOR MOV #1D,BHOR JMP AJUSTEAJUSTE JMP IMPRIMIRCONTINUAR LDHX AJSEG CPHX #6000D BLS PUNTOFF PUNTON MOV #00000000B,DOSPUNTO JMP SEGUIRPUNTOFF MOV #10000000B,DOSPUNTOSEGUIR CPHX #12000D INC AJSEG BLS AJUSTE MOV #0H,AJSEG LDX SEG CPX #59D INC SEG BLS SEGUNDOSMINUTOS LDX MIN CPX #59D MOV #00H,SEG INC MIN ;MIN = MIN + 1 BLS SEGUNDOSHORAS LDX HOR CPX #23D MOV #00H,MIN

  • Page: 2C:\Documents and Settings\prietosuarez\Mis documentos\Descargas\INTENTOV5\INTENTO\Sources\main.asmdomingo, 19 de abril de 2015 / 12:01 p.m.

    INC HOR ;HOR = HOR + 1 BLS SEGUNDOS

    MOV #00H,SEG MOV #00H,MIN MOV #00H,HOR

    JMP SEGUNDOSIMPRIMIR ;SE REALIZARALA CONVERSION DEL NUMERO A IMPRIMIR;___________BCD MINUTOS LDHX #0D LDX MIN JSR BCD MOV UNIDADES,UNIDAD_MIN MOV DECENAS,DECENA_MIN;___________BCD HORAS LDHX #0D LDX HOR JSR BCD MOV UNIDADES,UNIDAD_HOR MOV DECENAS,DECENA_HOR CLRA CLRH CLRX;___________NECESARIO PARA IMPRIMIR EL NUMERO BIEN EN EL PRIMER LDA #11111111B STA PTA LDA #11111111B STA PTC;___________;PRIMER PEDAZO DE 1 DIGITO MOV #0D,POSICION LDA #01111111B STA PTB LDX DECENA_HOR JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD ;SEGUNDO PEDAZO DE 1 DIGITO MOV #1D,POSICION ;(2) PERO ES (3) SI CARGAMOS DESDE LA MEMORIA LDA #10111111B ;(2) PERO ES (3) SI CARGAMOS DESDE LA MEMORIA STA PTB ;(2) LDX DECENA_HOR JSR IMPRIME LDHX #100D ;VECES PARA COMPLETAR 5 ms Y CON ESO LOS 4 NUMEROS DA 25 ms Y 500 ms SE LOGRA REPITIENDO 25 VECES ESO JSR TIEMPO ;(10) CLR PTD ;TERCER PEDAZO DE 1 DIGITO MOV #2D,POSICION LDA #11011111B STA PTB LDX DECENA_HOR JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD ;CUARTO PEDAZO DE 1 DIGITO MOV #3D,POSICION LDA #11101111B STA PTB LDX DECENA_HOR JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD;___________;PRIMER PEDAZO DE 2 DIGITO MOV #0D,POSICION LDA #11110111B STA PTB LDX UNIDAD_HOR JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD ;SEGUNDO PEDAZO DE 2 DIGITO MOV #1D,POSICION LDA #11111011B STA PTB LDX UNIDAD_HOR

  • Page: 3C:\Documents and Settings\prietosuarez\Mis documentos\Descargas\INTENTOV5\INTENTO\Sources\main.asmdomingo, 19 de abril de 2015 / 12:01 p.m.

    JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD ;TERCER PEDAZO DE 2 DIGITO MOV #2D,POSICION LDA #11111101B STA PTB LDX UNIDAD_HOR JSR IMPRIME LDHX #100D ;espera 500mS JSR TIEMPO CLR PTD ;CUARTO PEDAZO DE 2 DIGITO MOV #3D,POSICION LDA #11111110B STA PTB LDX UNIDAD_HOR JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD;-----------;LOS PUNTOS TIC-TAC LDA #11111111B STA PTA LDA #11111111B STA PTB LDA DOSPUNTO STA PTC LDA #01010000B STA PTD LDHX #100D JSR TIEMPO CLR PTD;___________NECESARIO PARA IMPRIMIR EL NUMERO BIEN LDA #11111111B STA PTB LDA #11111111B STA PTC;___________;PRIMER PEDAZO DE 3 DIGITO MOV #0D,POSICION LDA #01111111B STA PTA LDX DECENA_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;SEGUNDO PEDAZO DE 3 DIGITO MOV #1D,POSICION LDA #10111111B STA PTA LDX DECENA_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;TERCER PEDAZO DE 3 DIGITO MOV #2D,POSICION LDA #11011111B STA PTA LDX DECENA_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;CUARTO PEDAZO DE 3 DIGITO MOV #3D,POSICION LDA #11101111B STA PTA LDX DECENA_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD;___________;PRIMER PEDAZO DE 4 DIGITO MOV #0D,POSICION LDA #11110111B

  • Page: 4C:\Documents and Settings\prietosuarez\Mis documentos\Descargas\INTENTOV5\INTENTO\Sources\main.asmdomingo, 19 de abril de 2015 / 12:01 p.m.

    STA PTA LDX UNIDAD_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;SEGUNDO PEDAZO DE 4 DIGITO MOV #1D,POSICION LDA #11111011B STA PTA LDX UNIDAD_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;TERCER PEDAZO DE 4 DIGITO MOV #2D,POSICION LDA #11111101B STA PTA LDX UNIDAD_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD ;CUARTO PEDAZO DE 4 DIGITO MOV #3D,POSICION LDA #11111110B STA PTA LDX UNIDAD_MIN JSR IMPRIME LDHX #100D JSR TIEMPO CLR PTD;___________;variable JMP CONTINUARTIEMPO AIX #-1

    NOP NOP NOP NOP CPHX #0 BNE TIEMPO RTS

    BCD ;el numero debe estar cargado en HX TXA ;cargo el registro A con el registro X LDX #0AH ;cargo el registro X con 10D DIV ;realizo la divisin STA DECENAS ;guardo el registro A en Decenas PSHH ;guardo el registro H en la PILA PULA ;saco de la PILA y guardo en el registro A STA UNIDADES ;guardo el registro A en Unidades RTS ;retorno de la sub-rutina

    IMPRIME ;debe de ingresar el numero en el registro x ;sp con el numero de la tabla a imprimir CPX #00D BEQ IMPRIME_0 CPX #01D BEQ IMPRIME_1 CPX #02D BEQ IMPRIME_2 CPX #03D BEQ IMPRIME_3 CPX #04D BEQ IMPRIME_4 CPX #05D BEQ IMPRIME_5 CPX #06D BEQ IMPRIME_6 CPX #07D BEQ IMPRIME_7 CPX #08D BEQ IMPRIME_8 CPX #09D BEQ IMPRIME_9IMPRIME_0 LDX POSICION LDA CERO,X STA PTD CLRA

  • Page: 5C:\Documents and Settings\prietosuarez\Mis documentos\Descargas\INTENTOV5\INTENTO\Sources\main.asmdomingo, 19 de abril de 2015 / 12:01 p.m.

    RTSIMPRIME_1 LDX POSICION LDA UNO,X STA PTD CLRA RTSIMPRIME_2 LDX POSICION LDA DOS,X STA PTD CLRA RTSIMPRIME_3 LDX POSICION LDA TRES,X STA PTD CLRA RTSIMPRIME_4 LDX POSICION LDA CUATRO,X STA PTD CLRA RTSIMPRIME_5 LDX POSICION LDA CINCO,X STA PTD CLRA RTSIMPRIME_6 LDX POSICION LDA SEIS,X STA PTD CLRA RTSIMPRIME_7 LDX POSICION LDA SIETE,X STA PTD CLRA RTSIMPRIME_8 LDX POSICION LDA OCHO,X STA PTD CLRA RTSIMPRIME_9 LDX POSICION LDA NUEVE,X STA PTD CLRA RTS;--------------------INICIO TABLAS-------------------------; CERO FCB 01110000B,10001000B,10001000B,01110000BUNO FCB 00000000B,01000000B,11111000B,00000000BDOS FCB 01001000B,10011000B,10101000B,01001000BTRES FCB 10001000B,10101000B,10101000B,01010000BCUATRO FCB 11100000B,00100000B,11111000B,00100000BCINCO FCB 11101000B,10101000B,10101000B,10110000BSEIS FCB 01111000B,10101000B,10101000B,10111000BSIETE FCB 11000000B,10000000B,10111000B,11000000BOCHO FCB 01010000B,10101000B,10101000B,01010000BNUEVE FCB 11100000B,10100000B,10100000B,11111000B;---------------------FIN TABLAS---------------------------; ORG 0FFFEH ;vector de reset FDB START