unidad 2 lenguaje de interfaces

35
Unidad 2: Programación básica. Gabriela Abilene Ayala Salazar Tania Indira Campos de Hoyos María Guadalupe Montañez de la Rosa Stefani Guadalupe Zavala García Integrantes del Grupo

Upload: abilene-ayala

Post on 07-Nov-2014

164 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Unidad 2 Lenguaje de Interfaces

Unidad 2: Programación básica.

Gabriela Abilene Ayala Salazar

Tania Indira Campos de Hoyos

María Guadalupe Montañez de la Rosa

Stefani Guadalupe Zavala García

Integrantes del Grupo

Page 2: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 2 de 35

Tabla de contenido

Práctica 1: Parpadeo de un led. ........................................................................................................ 5

Práctica 2: Secuencia de led intermitente: ....................................................................................... 7

Práctica 3: Ida y vuelta en una secuencia de Leds: ....................................................................... 11

Práctica 4: Encendido de un led mediante un botón de presión. ................................................. 15

Práctica 5: Botón de presión de cuatro estados. ........................................................................... 19

Práctica 6: Interruptor en escalera: ................................................................................................ 23

Práctica 7: Contador de 0 a 9 con display de 7 segmentos: ......................................................... 25

Práctica 8: contador de pulsaciones de 00 a 99............................................................................. 28

Page 3: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 3 de 35

Page 4: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 4 de 35

Unidad 2: Programación Básica.

Programación de pic 16f887:

Durante esta unidad, la materia se enfoca en la introducción a la programación de microcircuitos que

permitan el diseño y la implementación de interfaces que favorezcan la relación hombre-máquina, para la

optimización de un sistema. En esta la unidad número 2 se nos dio a conocer las principales instrucciones

y funciones de un lenguaje ensamblador, la forma en que un programa debe de estar estructurado y los

parámetros que se deben de tomar en cuenta, con el desarrollo de 10 prácticas sencillas pero básicas.

A continuación se presentará un reporte detallado de estas 10 prácticas, que se realizaron en la

segunda unidad de lenguajes de interfaces, especificando los objetivos de las mismas, así como la lista de

materiales, la solución en código y la demostración de resultados en forma de fotografías, anexo a este

documento podrán encontrar la simulación de cada circuito, hecha en el software proteus, y los videos que

evidencian su realización.

Page 5: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 5 de 35

Práctica 1: Parpadeo de un led.

Objetivo:

Crear un programa que haga encender y apagar un led ininterrumpidamente.

Lista de material:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Led

- Pic 16f887

- Resistencia de por lo menos 330 ohms

- Batería de 9 volts

- Regulador a 5 volts

Solución mediante programa:

#include<16F887.h>

#use delay(clock=40000)

Void main()

{

Set_tris_a(0);

while(true)

{

Output_high(pin_a0);

delay_ms(5000);

Output_low(pia_a0);

delay_ms(5000);

}

Page 6: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 6 de 35

Demostración de resultados:

Page 7: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 7 de 35

Práctica 2: Secuencia de led intermitente:

Objetivo:

Crear un programa que al tener 8 leds, enciendan 4, se apaguen y enciendan los otros cuatro,

colocados intercaladamente, usando el pic 16f887.

Lista de material:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Leds

- Pic 16f887

- Resistencia de por lo menos 330 ohms

- Batería de 9 volts

- Regulador a 5 volts

Solución mediante programa:

#include<16F887.h>

#use delay(clock=40000000)

Void main()

{

Set_tris_a(0);

set_tris_b(0);

while(true)

{

Output_high(pin_a0);

Page 8: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 8 de 35

output_high(pin_a2);

output_high(pin_a4);

output_high(pin_b0);

delay_ms(50000);

Output_low(pin_a0);

output_low(pin_a2);

output_low(pin_a4);

output_low(pin_b0);

delay_ms(50000);

Output_high(pin_a1);

output_high(pin_a3);

output_high(pin_a5);

output_high(pin_b1);

delay_ms(50000);

Output_low(pin_a1);

output_low(pin_a3);

output_low(pin_a5);

output_low(pin_b1);

delay_ms(50000);

}

}

Page 9: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 9 de 35

Demostración de resultados:

Page 10: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 10 de 35

Page 11: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 11 de 35

Práctica 3: Ida y vuelta en una secuencia de Leds:

Objetivo:

Escribir un programa que realice una secuencia de ida y vuelta con 8 leds utilizando el pic 16f887. El

primer led se enciende, se apaga y enciende el siguiente, se apaga el segundo y enciende el tercero, y así

hasta llegar al último led, y del último led hacer lo mismo de reversa.

Lista de material:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Leds

- Pic 16f887

- Resistencia de por lo menos 330 ohms

- Batería de 9 volts

- Regulador a 5 volts

Solución mediante programa:

#include<16f887.h>

#byte pb=0x6

#use delay(clock=4000000)

void moverizq()

{

long x;

for(x=1;x<=128;x*=2)

{

pb=x;

delay_ms(1000);

Page 12: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 12 de 35

}

}

void moverder()

{

long x;

for(x=64;x>=2;x/=2)

{

pb=x;

delay_ms(1000);

}

}

void main()

{

set_tris_b(0);

while(true)

{

moverizq();

moverder();

}

}

Page 13: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 13 de 35

Demostración de resultados:

Page 14: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 14 de 35

Page 15: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 15 de 35

Práctica 4: Encendido de un led mediante un botón de presión.

Objetivo:

Crear un programa que permita el encendido de un solo led mediante un botón de presión.

Lista de materiales:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Led

- Pic 16f887

- Batería de 9 volts

- Regulador a 5 volts

- Botón de presión.

Solución mediante programa en C:

#include<16f887.h>

#use delay(clock=40000)

void main()

{

set_tris_b(1);

while (true)

{

if(input(pin_b0)==1)

Page 16: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 16 de 35

{

output_low(pin_b1);

}

else

{

output_high(pin_b1);

}

}

}

Demostración de Resultados:

Page 17: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 17 de 35

Page 18: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 18 de 35

Page 19: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 19 de 35

Práctica 5: Botón de presión de cuatro estados.

Objetivo:

Crear un programa que permita el encendido de una serie de leds de la siguiente manera:

Cuando oprimamos 1 vez se prende el primer led, la segunda vez se apaga el primero y enciende el segundo, la tercera vez apaga el segundo enciende el tercero, la cuarta vez se apagan todos y comienza de nuevo el ciclo.

Lista de materiales:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Leds

- Pic 16f887

- Batería de 9 volts

- Regulador a 5 volts

- Botón de presión.

Solución mediante programa en C:

#include<16f887.h>

#byte pb=0x6

void main()

{set_tris_b(1);

pb=0;

int x= 0;

while(true)

Page 20: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 20 de 35

{

if(input(pin_b0)==1)

{

x++;

switch(x)

{

case 1: pb=1;x=0; break;

case 2: pb=3; break;

case 3: pb=5; break;

case 4: pb=9;x=0; break;

}

while(input(pin_b0)==1);

}

}

}

Page 21: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 21 de 35

Demostración de Resultados:

Page 22: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 22 de 35

Page 23: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 23 de 35

Práctica 6: Interruptor en escalera:

Objetivo:

Crear un programa que permita el encendido de un led usando dos switches, de manera que al activar uno el led encienda, pero al estar los dos activados el led permanezca apagado.

Lista de materiales:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Led

- Pic 16f887

- Batería de 9 volts

- Regulador a 5 volts

- Switch

Solución mediante programa en C:

#include<16f887.h>

#use delay(clock=4000000)

//#byte pa=0x01

void main()

{

set_tris_a(0x01);

while(true)

{

if((input(pin_a0) && !input(pin_a1)) || (!input(pin_a0) && input(pin_a1)))

{

Page 24: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 24 de 35

output_high(pin_a2);

}

else if (input(pin_a0)&& input (pin_a1))

{

output_low(pin_a2);

}

else

{ output_low(pin_a2);}

}

}

Demostración de Resultados:

Page 25: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 25 de 35

Práctica 7: Contador de 0 a 9 con display de 7 segmentos:

Objetivo:

Crear un programa que cuente de 0 a 9 en intervalos de un segundo y muestre los números en un display de 7 segmentos. Y como extra que cada medio segundo encienda el punto del display.

Lista de materiales:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Pic 16f887

- Batería de 9 volts

- Regulador a 5 volts

- Display de 7 segmentos

Solución mediante programa en C:

#include<16f887.h>

#use delay(clock=4000000)

void main()

{

int mostrar2[]=

{0b10111111,0b10000110,0b11011011,0b11001111,0b11100110,0b11101101,0b11111101,0b10000111,

0b11111111,0b11101111};

int numero2=0;

int i = 0;

Page 26: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 26 de 35

set_tris_d(0x00);

do

{

i=0;

numero2=0;

while(i <= 9)

{

output_d(mostrar[numero2]);

delay_ms(500);

output_d(mostrar2[numero2]);

delay_ms(500);

i++;

numero2++;

}

}

while(true);

}

Demostración de Resultados:

Page 27: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 27 de 35

Page 28: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 28 de 35

Práctica 8: contador de pulsaciones de 00 a 99.

Objetivo:

Crear un programa que cuente de 00 a 99 con la pulsación de un botón de presión. Una pulsación por cada número.

Lista de materiales:

- Protoboard

- Cables de cobre para puentes y demás conexiones

- Pic 16f887

- Batería de 9 volts

- Regulador a 5 volts

- Dos display de 7 segmentos

- Botón de presión

Solución mediante programa en C:

#include<16f887.h>

#use delay(clock=4000000)

void main()

{

int

mostrar[]={0b00111111,0b00000110,0b01011011,0b01001111,0b01100110,0b01101101,0b01111101,0

b00000111,0b01111111,0b01101111};

int numero1 = 0;

int numero2 =0;

Page 29: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 29 de 35

int i = 0;

set_tris_c(0x00);

set_tris_d(0x00);

set_tris_b(0x01);

//output_b(0x00);

while(true)

{

i=0;

numero1=0;

numero2=0;

while(i <= 99)

{

if (input(pin_b0)==1)

{

if(i == 10)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

Page 30: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 30 de 35

}

else if(i == 20)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 30)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 40)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 50)

{

numero1++;

Page 31: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 31 de 35

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 60)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 70)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else if(i == 80)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

Page 32: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 32 de 35

else if(i == 90)

{

numero1++;

numero2=0;

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

else

{

output_c(mostrar[numero1]);

output_d(mostrar[numero2]);

}

delay_ms(500);

i++;

numero2++;

}

}

while(input(pin_b0)==1);

}

}

Page 33: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 33 de 35

Demostración de Resultados:

Page 34: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 34 de 35

Page 35: Unidad 2 Lenguaje de Interfaces

ITESRC

UNIDAD 2 LENGUAJE DE INTERFACES

ITESRC Página 35 de 35

Ingeniería en Sistemas Computacionales; Lenguaje de

interfaces, Grupo 6.1 G Ing. Héctor Padilla.