Microprocesadores ESIME ICE
-
Upload
audo-hernandez -
Category
Documents
-
view
320 -
download
3
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