Microprocesadores ESIME ICE

download Microprocesadores  ESIME ICE

of 7

Transcript of Microprocesadores ESIME ICE

  • 7/31/2019 Microprocesadores ESIME ICE

    1/7

    INSTITUTO POLITCNICONACIONALESCUELA SUPERIOR DE INGENIERA MECNICA Y ELCTRICA

    Ingeniera en Comunicaciones y Electrnica

    LABORATORIO DE MICROPROCESADORES

    PRCTICA 8: TECLADO MATRICIAL

    GRUPO 6CM1

    ALUMNO

    Hernndez Lpez Audomaro

    Profesor: M. en C. Armando Martnez Ros

    Fecha de realizacin de la prctica: lunes 23 de mayo de MMXII

  • 7/31/2019 Microprocesadores ESIME ICE

    2/7

    OBJETIVO

    Desarrollar un programa para leer un teclado matricial

    MATERIAL Y DISPOSITIVOS USADOS

    Protoboard PIC 18F4550 Tablilla de desarrollo LEDs y resistores Dip-switch Teclado matricial 4x4 Cable USB y conector tipo B Software MPLab y HID Bootloader

    DESARROLLO DE LA PRCTICA

    La prctica requiri la implementacin de notas musicales (escogidas libremente por el

    estudiante) que involucraran la utilizacin de retardos, ciclos, y ms dentro del contextodel microprocesador. El nmero de notas a programas (establecer en el teclado) era demnimo siete, que a pesar de no especificarse en el PDF de la prctica enviado por eldocente, este ltimo coment lo del mnimo durante las sesiones de clase.

    Para lo anterior, fue fundamental y definitorio para el cdigo a construir, el proceso deestablecimiento del algoritmo, que vino a ilustrar la manera en que se deba codificar ydepurar el cdigo mismo.

    Se puede observar el diagrama de flujo en la pgina siguiente.

  • 7/31/2019 Microprocesadores ESIME ICE

    3/7

    ALGORITMO / DIAGRAMA DE FLUJO

    Inicio

    PuertoD-->Entrada/Salida

    Puerto B-->Salida

    Anlisis 1era columna

    PortD-->0110

    Tecla oprimida en columna

    Anlisis 2a col

    PortD-->0101

    Retardo de nota

    correspondiente

    Tecla oprimida en columnaRetardo de nota

    correspondiente

    Anlisis 3ra col

    PortD-->0011

    Tecla oprimida en columnaRetardo de nota

    correspondiente

    NONO

    NONO

    NONO

    SISI

    SISI

    SISI

  • 7/31/2019 Microprocesadores ESIME ICE

    4/7

    A continuacin, el cdigo en C correspondiente a la prctica. Solo se incluyenfragmentos representativos del programa (prototipos, funciones, etc)

    /************* DECLARACION DE LOS PROTOTIPOS *******************************/void YourHighPriorityISRCode(void);void YourLowPriorityISRCode(void);void reta(int);

    void EEPROM_Write(unsigned char address,unsigned char databyte);//********************************************************************************

    ********

    void main (void){

    ADCON1 |= 0x0F; // Default all pins to digitalTRISB=0x00;TRISD=0xF0;

    mInitAllSwitches();

    while (1){

    // ***************************************Columna 1PORTDbits.RD0=0;PORTDbits.RD1=1;PORTDbits.RD2=1;PORTDbits.RD3=0;if (PORTD==0xE6)

    {PORTBbits.RB7=1;reta(3620);PORTBbits.RB7=0;

    reta(3620);}else if (PORTD==0xD6)

    {PORTBbits.RB7=1;reta(2560);PORTBbits.RB7=0;reta(2560);}

    else if (PORTD==0xB6){

    PORTBbits.RB7=1;reta(2000);PORTBbits.RB7=0;reta(2000);

    }else if (PORTD==0x76)

    {PORTBbits.RB7=1;reta(110);PORTBbits.RB7=0;reta(1105);}

  • 7/31/2019 Microprocesadores ESIME ICE

    5/7

    // ********************************************Columna 2PORTDbits.RD0=0;PORTDbits.RD1=1;PORTDbits.RD2=0;PORTDbits.RD3=1;if (PORTD==0xEA)

    {

    PORTBbits.RB7=1;reta(3200);PORTBbits.RB7=0;reta(3200);

    }else if (PORTD==0xDA)

    {PORTBbits.RB7=1;reta(2500);PORTBbits.RB7=0;reta(2500);}

    else if (PORTD==0xBA){

    PORTBbits.RB7=1;

    reta(1810);PORTBbits.RB7=0;reta(1815);}

    else if (PORTD==0x7A){

    PORTBbits.RB7=1;reta(1270);PORTBbits.RB7=0;reta(1270);}

    // ************************************************Columna 3PORTDbits.RD0=0;PORTDbits.RD1=0;

    PORTDbits.RD2=1;PORTDbits.RD3=1;if (PORTD==0xEC)

    {PORTBbits.RB7=1;reta(2940);PORTBbits.RB7=0;reta(2940);

    }else if (PORTD==0xDC)

    {PORTBbits.RB7=1;reta(2150);PORTBbits.RB7=0;reta(2150);

    }else if (PORTD==0xBC)

    {PORTBbits.RB7=1;reta(1430);PORTBbits.RB7=0;reta(1430);}

    else if (PORTD==0x7C){

  • 7/31/2019 Microprocesadores ESIME ICE

    6/7

    PORTBbits.RB7=1;reta(1220);PORTBbits.RB7=0;reta(1220);}

    }}

    void reta (int x)*****************************************Retardo de 1microsegundo

    {int y;T0CON=0x00;for(y=0;y

  • 7/31/2019 Microprocesadores ESIME ICE

    7/7

    DIAGRAMA A BLOQUES

    CONCLUSIONES Y OBSERVACIONES

    Esta prctica nos da la bienvenida a la programacin de microprocesadores (en este casode la familia 18FXXXX) mediante lenguaje C, que siendo de alto nivel, permite undesarrollo ms fluido del proyecto, sacrificando cierta eficiencia del cdigo queafortunadamente no es notoria para esta demostracin.

    Adems, la programacin en C nos permiti una notoria reduccin lneas y unadepuracin ms sencilla al momento del anlisis de cada funcin y condicin, por lo quetodo deriva en un cdigo ms ameno y entendible.

    Por otro lado, es preciso mencionar que los retardos implementados para la nota desalida correspondiente a cada tecla, no son congruentes con alguna nota musical enparticular, sino sirven como demostracin para ejecutar diferentes tonos para cada tecla.

    Para finalizar, fue interesante todo lo elaborado para la adecuada realizacin de laprctica, el trabajar con elementos de diferentes asignaturas en un solo trabajo(Microprocesadores, Seales, Dispositivos, por mencionar algunas), as como los cuidadosy el anlisis necesarios llevados a cabo para cumplir eficientemente con lo requerido porla prctica.

    TecladoMatricial

    18F4550 -PORTD

    18F4550 -PORTB

    Amplificador2N222

    Bocina 0.25 W