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.2 ESTRUCTURA DEL SISTEMA
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.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