14
MECATRONICA: AREA DE MANUFACTURA FLEXIBLE SISTEMAS INTEGRADOS EMBEBIDOS Reportes de las practicas realizadas en pic 16f887 Alumnos: Jesica Montelongo quintero, Ricardo Vázquez Córdova, José Alejandro Ávila Reyes PRPFESOR: Ing. JURADO MARRUFO ADRIAN

Reportes Pic 16f887

Embed Size (px)

DESCRIPTION

reportes sobre practicas echas en pic 16f887

Citation preview

Page 1: Reportes Pic 16f887

SISTEMAS INTEGRADOS EMBEBIDOS

Reportes de las practicas realizadas en pic 16f887

Alumnos:

Jesica Montelongo quintero, Ricardo Vázquez Córdova, José Alejandro Ávila Reyes

PRPFESOR:

Ing. JURADO MARRUFO ADRIAN

Page 2: Reportes Pic 16f887

PRACTICA #1 pic 16f887 blink:

Objetivo:

Conocer el funcionamiento del pic 16f887 así como sus componentes principales y aprender la programación básica.

Contenido de la práctica:

Programa:

void main() {

ANSEL=0; // TODAS LAS ENTRADAS DEL UESTO A SON DIGITALES.

ANSELH=0;

C1ON_bit= 0; //Deshabilita la comparación

C2ON_bit=0; // " "

TRISA=0b00000001; // configura RA1_bit como salida y los demás del puerto a como entrada

while(1) // se inicia un ciclo repetitivo

{

RA1_bit=0; // se le asigna un valor a la salida durante un tiempo

delay_ms(1000); // se ajusta el tiempo de lo que se ejecutara

RA1_bit=1; // se le asigna un valor a RA1_bit en este caso para que mande 5v en el bit y active el led

delay_ms(1000); // se ajusta el tiempo en el que la acción se ejecutaran

} // se cierra el ciclo while

} // fin del programa

Diagrama eléctrico:

Conclusión:

En esta práctica se aprendió mucho acerca de los pic ya que nunca habíamos trabajado con ninguno de ellos y mucho menos programarlos y de esta manera se tiene una opción más para poder realizar nuestros proyectos económicamente y de una manera más viable.

Page 3: Reportes Pic 16f887

Practica 2 # pasword

Objetivo:

Realizar un programa capaz de hacer que por medio de un teclado de 4x4 y una pantalla de cristal líquido poder abrir una puerta automáticamente ingresando un código

Contenido de la práctica:

Programa:

//////////////////// definir variables y tipo de dato que usaran///////

unsigned short tecla;

int num=0;

int enter=0; // iniciar todas las variables en 0

int valor=0;

// conexiones del keypad

char keypadPort at PORTD; // el keypad se conectara en el puerto D

//////////////////// conexiones del LCD///////////////////////////////////

sbit LCD_RS at RB4_bit;

sbit LCD_EN at RB5_bit;

sbit LCD_D4 at RB0_bit;

sbit LCD_D5 at RB1_bit;

sbit LCD_D6 at RB2_bit;

sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;

sbit LCD_EN_Direction at TRISB5_bit;

sbit LCD_D4_Direction at TRISB0_bit;

sbit LCD_D5_Direction at TRISB1_bit;

Page 4: Reportes Pic 16f887

sbit LCD_D6_Direction at TRISB2_bit;

sbit LCD_D7_Direction at TRISB3_bit;

//inicia programa

void main()

{

ANSEL = 0; //todo es digital

ANSELH = 0;

TRISA=0b00000001; // configura los pines del port a como entradas y solo RA1 como salida

C1ON_bit= 0; //Deshabilita la comparación

C2ON_bit=0; // " "

num=0;

enter=0; // Las variables se inician en 0

valor=0;

Keypad_Init(); // Inicializa el Keypad

Lcd_Init(); // Inicializa el LCD

Lcd_Cmd(_LCD_CLEAR); // limpia el display

Lcd_Cmd(_LCD_CURSOR_OFF); //deshabilita el cursos

Lcd_Out(1,1,"Contraseña:"); //introduce texto de inicio

do

{ //inicio do

tecla=0; //se asigna un valor a la variable tecla

do

tecla = Keypad_Key_Click(); //leer estado del teclado si se presionó alguna tecla

while (!tecla); //mientras que la variable sea diferente de 0

Page 5: Reportes Pic 16f887

switch(tecla)

{ //inicio switch

case 1:

tecla = '1'; valor=1;

break; // 1 //se asignan los valores ASCI y numéricos a cada tecla

case 2:

tecla = 50; valor=2; break; // 2

case 3: tecla = 51; valor=3;break;// 3

case 5: tecla = 52; valor=4;break; // 4

case 6: tecla = 53; valor=5; break;// 5

case 7: tecla = 54; valor=6; break; // 6

case 9: tecla = 55; valor=7; break; // 7

case 10: tecla = 56; valor=8; break; // 8

case 11: tecla = 57; valor=9; break;// 9

case 14: tecla = 48; valor=0; break; // 0

case 15: tecla = 35 ; //#

Lcd_Cmd(_LCD_CLEAR); //limpiar pantalla

if (num==1407) //clave correcta

{

Lcd_Out(1,1,"Bienvenido");

RA1_bit=1;

delay_ms(5000);

RA1_bit=0;

}

else

{

Page 6: Reportes Pic 16f887

Lcd_Out(1,1,"Codigo invalido");

RA1_bit=0;

delay_ms(1000);

}

num=0;

Keypad_Init();

Lcd_Init();

Lcd_Cmd(_LCD_CLEAR);

Lcd_Cmd(_LCD_CURSOR_OFF);

Lcd_Out(1,1,"contraseña:");

enter=1;

valor=0;

break;

} //fin switch

num=(num*10)+valor; //acumular el numero

if (tecla!='#')

Lcd_Chr_Cp(tecla); //imprimir la tecla presionada

delay_ms(20);

} //fin del do

while (1);

} //fin de programa

Page 7: Reportes Pic 16f887

Diagrama eléctrico:

Conclusion:

En esta practica se demostro la abilidad que se ha adquirido durante el curso para realizar programas complejos, utilizar librerias y diferentes variables asi como tambien los ciclos repetitivos para aplicar los programas a una situacion real como lo es en una puerta.

Page 8: Reportes Pic 16f887

Firmas de las prácticas:

Page 9: Reportes Pic 16f887
Page 10: Reportes Pic 16f887
Page 11: Reportes Pic 16f887