domingo, 3 de septiembre de 2017

AÑADIENDO LUCES, SONIDO, MOTORES Y DISPLAY 7 SEGMENTOS

1. EJERCICIOS REALIZADOS EN LABORATORIO
1.1Realice un programa para manejar led´s conectados al puerto C.
 1.1.1 Código C Compiler


1.1.2 Simulación en Proteus



1.2 Realice un programa utilizando el DISPLAY DE 7 SEGMENTOS.
Código en C Compiler

Simulación en Proteus



2. PROYECTO 01: MÁQUINA EXPENDEDORA DE ALGUNOS PRODUCTOS
2.1 FLUJOGRAMA DEL SISTEMA

2.2 ESTRUCTURA DEL SISTEMA


2.3 PROGRAMA Y SIMULACIÓN
Código en C Compiler


#include <16f877a.h>
#use delay (clock=20M)
#fuses HS, NOPROTECT, NOWDT

#define LCD_ENABLE_PIN        PIN_D3
#define LCD_RS_PIN            PIN_D2
#define LCD_RW_PIN            PIN_A0
#define LCD_DATA4             PIN_D4
#define LCD_DATA5             PIN_D5
#define LCD_DATA6             PIN_D6
#define LCD_DATA7             PIN_D7  
#include <lcd.c>
#define use_portb_kbd TRUE
#include <kbd.c>
void main()

{
   char k;
   int x;
   int j;
   lcd_init ();
   kbd_init ();
   port_b_pullups (TRUE);
   
       for(j = 1;j<16;j++)
            {
               printf(lcd_putc,"\f");
               lcd_gotoxy(4,1);
               printf(lcd_putc,"Bienvenido");
               delay_ms(100);
               printf(lcd_putc,"\n");
               lcd_gotoxy(j,2);
               printf(lcd_putc,"temperatura 28°C");
               delay_ms(300);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"temperatura 28°C");
            }
      while(true)
      {
      if(input(pin_a1)==1)
      {
         k=kbd_getc();
         x=k-48;
         if(k!=0)
         {
            lcd_gotoxy(1,1);
             if(x>=1 && x<=9)
                  { printf(lcd_putc,"\fpro:%i",x);
            if(x>0 && x<2)
            {
               printf(lcd_putc, "\fPro:galleta"); 
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"despachando...");
               output_high(pin_c0);
               delay_ms(2000);
               output_low(pin_c0);
               printf(lcd_putc,"\fvuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>1 && x<3)
            {
               printf(lcd_putc, "\fPro:gaseosa");
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"falta credito");
               delay_ms(550);
               printf(lcd_putc,"\ninserte$: 2.00");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>2 && x<4)
            {
               printf(lcd_putc, "\fPro:cerveza"); 
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"falta credito");
               delay_ms(550);
               printf(lcd_putc,"\ninserte$: 4.00");
               delay_ms(500);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
                
            }
             if(x>=4 && x<=9)
            {
               printf(lcd_putc, "\f   Elija Otro"); 
               delay_ms(200);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"    Producto");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
            }
            }
            
           
         }
      }
      
      
      if(input(pin_a2)==1)
      {
         k=kbd_getc();
         x=k-48;
         if(k!=0)
         {
            lcd_gotoxy(1,1);
             if(x>=1 && x<=9)
                  { printf(lcd_putc,"\fpro:%i",x);
            if(x>0 && x<2)
            {
               printf(lcd_putc, "\fPro:galleta"); 
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc," despachando....");
               output_high(pin_c0);
               delay_ms(2000);
               output_low(pin_c0);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"vuelto $: 2.00");
               output_high(pin_c3);
               delay_ms(2000);
               output_low(pin_c3);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"vuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>1 && x<3)
            {
               printf(lcd_putc, "\fPro:gaseosa");
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"despachando...");
               output_high(pin_c1);
               delay_ms(2000);
               output_low(pin_c1);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"vuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>2 && x<4)
            {
               printf(lcd_putc, "\fPro:cerveza"); 
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"falta credito");
               delay_ms(550);
               printf(lcd_putc,"\ninserte$: 2.00");
               delay_ms(500);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
                
            }
             if(x>=4 && x<=9)
            {
               printf(lcd_putc, "\f   Elija Otro"); 
               delay_ms(200);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"     Producto");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
            }
            }
            
           
         }
      }
      
        if(input(pin_a3)==1)
      {
         k=kbd_getc();
         x=k-48;
         if(k!=0)
         {
            lcd_gotoxy(1,1);
             if(x>=1 && x<=9)
                  { printf(lcd_putc,"\fpro:%i",x);
            if(x>0 && x<2)
            {
               printf(lcd_putc, "\fPro:galleta"); 
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc," despachando....");
               output_high(pin_c0);
               delay_ms(2000);
               output_low(pin_c0);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"vuelto $: 4.00");
               output_high(pin_c3);
               delay_ms(2000);
               output_low(pin_c3);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"vuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>1 && x<3)
            {
               printf(lcd_putc, "\fPro:gaseosa");
               delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc," despachando....");
               output_high(pin_c1);
               delay_ms(2000);
               output_low(pin_c1);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"vuelto $: 2.00");
               output_high(pin_c3);
               delay_ms(2000);
               output_low(pin_c3);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"vuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
              
            }
             if(x>2 && x<4)
            {
               printf(lcd_putc, "\fPro:cerveza"); 
                delay_ms(550);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"despachando...");
               output_high(pin_c2);
               delay_ms(2000);
               output_low(pin_c2);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"\fvuelva pronto...");
               delay_ms(1000);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
                
            }
             if(x>=4 && x<=9)
            {
               printf(lcd_putc, "\f   Elija Otro"); 
               delay_ms(200);
               printf(lcd_putc,"\n");
               printf(lcd_putc,"    Producto");
               delay_ms(100);
               printf(lcd_putc,"\f");
               printf(lcd_putc,"  Bienvenidos");
               printf(lcd_putc,"\n");
               printf(lcd_putc,"Temperatura 28°C");
            }
            }
            
           
         }
      }
}

}
Simulación en Proteus


3. OBSERVACIONES Y CONCLUSIONES
3.1 OBSERVACIONES

  • Es necesario habilitar los display para poder mostrar el contador. En las cadenas de caracteres la primera variable siempre se la llamara con la posición de 0.
  • Podemos trabajar con valores enteros, hexadecimales, binarios para hacer nuestros programas en C Compiler.
  • Nuestro proyecto sirve de gran utilidad por su versátil control y reprogramación que se puede ajustar a diferentes necesidades

3.2 CONCLUSIONES

  • En este laboratorio aprendimos a usar la función for el cual funciona como un contador ya que posee de tres partes inicialización, condición e incremento, donde es necesario que se cumpla la condición para poder desarrollar dicho proceso. Pudimos desarrollar un programa con el bucle for que nos permitió diseñar un contador ascendente de 0 a 9 y también mostrarlo en el display del entrenador. También aprendimos a usar cadenas de caracteres, están toman y almacenan varias variables enteras. 
  • Para la creación de nuestra maquina expendedora tuvimos que emplear todos los conocimientos adquiridos en el transcurso del mes, al principio se nos dificulto pero con paciencia y esfuerzo se nos fue posible crear el programa.
  • Está de más resaltar la gran importancia y avance tecnológico que tiene hoy en día el lenguaje C al igual que los pic que salen al mercado y las grandes e interesantes cosas que podemos hacer con ellos.

4. INTEGRANTES

  • Cruz Diaz, Jesus Andrée
  • Chara Velazco, Juan Carlos
  • Granda Alvarez, Waldir Andrée

No hay comentarios.:

Publicar un comentario

PROYECTO FINAL

1. ARDUINO UNO: Arduino se enfoca en acercar y facilitar el uso de la electrónica y programación de sistemas embebidos en proyectos multid...