Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
GRUPO 6CM1
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 contexto del microprocesador. El nmero de notas a programas (establecer en el teclado) era de mnimo siete, que a pesar de no especificarse en el PDF de la prctica enviado por el docente, 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 de establecimiento del algoritmo, que vino a ilustrar la manera en que se deba codificar y depurar el cdigo mismo. Se puede observar el diagrama de flujo en la pgina siguiente.
Inicio
SI
SI
NO
NO
SI
NO
A continuacin, el cdigo en C correspondiente a la prctica. Solo se incluyen fragmentos 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); //******************************************************************************** ********
while (1) { // ***************************************Columna 1 PORTDbits.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); }
// ********************************************Columna 2 PORTDbits.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 3 PORTDbits.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) {
PORTBbits.RB7=1; reta(1220); PORTBbits.RB7=0; reta(1220); } } } void reta (int x)*****************************************Retardo de 1 microsegundo { int y; T0CON=0x00; for(y=0;y<=x;y++) { TMR0H=0xFF; TMR0L=0xF4; // Esta configuracin permite establecer la funcin "reta" en 1 microseg, lo que facilita su implementacin INTCONbits.TMR0IF=0; T0CONbits.TMR0ON=1; while (INTCONbits.TMR0IF==0) {} } } /********************************************************************************* /
DIAGRAMA ELCTRICO
DIAGRAMA A BLOQUES
Teclado Matricial
Bocina 0.25 W
18F4550 PORTD
18F4550 PORTB
Amplificador 2N222
CONCLUSIONES Y OBSERVACIONES
Esta prctica nos da la bienvenida a la programacin de microprocesadores (en este caso de la familia 18FXXXX) mediante lenguaje C, que siendo de alto nivel, permite un desarrollo ms fluido del proyecto, sacrificando cierta eficiencia del cdigo que afortunadamente no es notoria para esta demostracin. Adems, la programacin en C nos permiti una notoria reduccin lneas y una depuracin ms sencilla al momento del anlisis de cada funcin y condicin, por lo que todo deriva en un cdigo ms ameno y entendible. Por otro lado, es preciso mencionar que los retardos implementados para la nota de salida correspondiente a cada tecla, no son congruentes con alguna nota musical en particular, sino sirven como demostracin para ejecutar diferentes tonos para cada tecla.
Para finalizar, fue interesante todo lo elaborado para la adecuada realizacin de la prctica, el trabajar con elementos de diferentes asignaturas en un solo trabajo (Microprocesadores, Seales, Dispositivos, por mencionar algunas), as como los cuidados y el anlisis necesarios llevados a cabo para cumplir eficientemente con lo requerido por la prctica.