Académique Documents
Professionnel Documents
Culture Documents
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
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; // "
"
{
RA1_bit=0; // se le asigna un valor a la salida durante un tiempo
delay_ms(1000);
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
}
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;
int valor=0;
//inicia programa
void main()
{
ANSEL = 0;
//todo es digital
ANSELH = 0;
TRISA=0b00000001;
como entradas y solo RA1 como salida
// configura
C1ON_bit= 0;
//Deshabilita la comparacin
C2ON_bit=0;
// "
"
num=0;
enter=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
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.