You are on page 1of 11

MECATRONICA: AREA DE MANUFACTURA FLEXIBLE

SISTEMAS
INTEGRADOS
EMBEBIDOS
Reportes de las practicas realizadas
en pic 16f887
Alumnos:
Jesica Montelongo quintero, Ricardo Vzquez Crdova, Jos
Alejandro vila Reyes
PRPFESOR:
Ing. JURADO MARRUFO ADRIAN

PRACTICA #1 pic 16f887 blink:

Objetivo:
Conocer el funcionamiento del pic 16f887 as como sus componentes
principales y aprender la programacin bsica.
Contenido de la prctica:
Programa:
void main() {
ANSEL=0; // TODAS LAS ENTRADAS DEL UESTO A SON DIGITALES.
ANSELH=0;
C1ON_bit= 0; //Deshabilita la comparacin
C2ON_bit=0; // "

"

TRISA=0b00000001; // configura RA1_bit como salida y los dems 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 accin se ejecutaran
}

// se cierra el ciclo while

// fin del programa

Diagrama elctrico:
Conclusin:
En esta prctica se aprendi mucho acerca
de los pic ya que nunca habamos
trabajado con ninguno de ellos y mucho
menos programarlos y de esta manera se
tiene una opcin ms para poder realizar
nuestros proyectos econmicamente y de
una manera ms viable.
Practica 2 # pasword

Objetivo:
Realizar un programa capaz de hacer que por medio de un teclado de 4x4 y
una pantalla de cristal lquido poder abrir una puerta automticamente
ingresando un cdigo
Contenido de la prctica:
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;
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;
como entradas y solo RA1 como salida

// configura

los pines del port a

C1ON_bit= 0;

//Deshabilita la comparacin

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,"Contrasea:"); //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

switch(tecla)

{ //inicio switch

case 1:
tecla = '1'; valor=1;
break; // 1

//se asignan los valores ASCI y numricos 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
{
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,"contrasea:");
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

Diagrama elctrico:

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.

Firmas de las prcticas:

You might also like