Sunteți pe pagina 1din 21

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA - UNAD

ESCUELA DE CIENCIAS BSICAS, TECNOLOGA E INGENIERA

PASO 3

DISEAR LA PROPUESTA DEL PROYECTO DE IMPLEMENTACION.

Victor alfonso cardona cod: 14570994

MICROCONTROLADORES Y MICROPROCESADORES

Grupo 309696_16

Trabajo presentado a:
Tutor: Ing. Joan Sebastin Bustos M.

CEAD - Dosquebradas
Octubre de 2017
Ejrcicio 1 Debe sensar la temperatura ambiente y si est menor o igual de 30 grados el
led verde se encender y dar un solo sonido cada 2 segundos , si la temperatura esta
entre los 30 y 38 grados se encender un led amarillo , y si supera los 39 grados hasta
los 50 grados

El led rojo se prendera y debe dar una alarma constante y prenderse el ventilador hasta
que baje la temperatura menor o igual a 20 grados.

En el display se debe visualizar el valor de la temperatura y la activacin de motor


como MOTOR ON o MOTOR OFF.

#include <16F877a.h>

//#device=16

#device adc=10

#fuses hs,nowdt

#use delay(clock=4m)

#define lcd_rs_pin pin_b0

#define lcd_rw_pin pin_b1

#define lcd_enable_pin pin_b2

#define lcd_data4 pin_b4

#define lcd_data5 pin_b5

#define lcd_data6 pin_b6

#define lcd_data7 pin_b7

#include <lcd.c>

#byte trisb=0x88
#byte trisb=0x88

float temperatura;

void main ()

setup_adc_ports(RA0_analog);

setup_adc(ADC_CLOCK_INTERNAL);

setup_COUNTERS(RTCC_INTERNAL.rtcc_div_1);

set_adc_channel(0);

lcd_init();

lcd_gotoxy(1,1);

printf(lcd_putc,"victorcardona");

lcd_gotoxy(1,2);

printf(lcd_putc,"unad ejercicio1 temperatura");

delay_ms(2000);

lcd_putc("\f");

while(true)

temperatura=(float)read_adc()/2;

lcd_gotoxy(1,1);

printf(lcd_putc,"temp:%fgrados",temperatura);
delay_ms(200);

if(temperatura>=30&&temperatura<=38)

output_low(pin_a1);

output_low(pin_a3);

output_high(pin_a2);

output_high(pin_e0);

output_low(pin_a5);

lcd_gotoxy(5,2);

printf(lcd_putc,"motor:off");

delay_ms(200);

if(temperatura>=39)

output_low(pin_a1);

output_low(pin_a2);

output_high(pin_a3);

output_high(pin_e0);

output_high(pin_a5);

lcd_gotoxy(5,2);

printf(lcd_putc,"motor:on");

delay_ms(200);
}

if(temperatura<=30)

output_high(pin_a1);

output_high(pin_e0);

output_low(pin_a2);

output_low(pin_a3);

lcd_gotoxy(5,2);

printf(lcd_putc,"motor:off");

delay_ms(200);

}
Con la temperatura menor de 30 grados se enciende el led verde

con la temperatura mayor de 30 grados y menor de 39 grados se enciende el led amarillo y


el parlante por dos segundos

La temperatura mayor de 39 grados se enciende el led rojo el parlante y el ventilador


Programa 2:

El cual deber en un display 16X2 desplegar el nombre del curso, numero de grupo y los
nombres uno por uno de los integrantes del grupo seguido del nmero de cedula los
cuales cambiaran al presionar cada uno de los 5 pulsadores (1 al 5 igual nmero de
integrantes)

#INCLUDE <16F877A.H>

#FUSES HS, NOWDT

#USE DELAY (clock=8M)

#INCLUDE <LCD.C>

#USE FAST_IO(A) //USAR EL PUERTO A

#USE FAST_IO (B)

#USE FAST_IO(C)

#USE FAST_IO (E)


// DECLARACION DE LAS VARIABLES DEL PROGRAMA

INT VALOR, J;

//-------------------------------------------------//

//Programa principal

VOID MAIN ()

set_tris_a (0b11111000);

LCD_INIT (); //INICIALIZACION DE LA LCD

//LA SIGUIENTE RUTINA COLOCA EL MENSAJE DE ENTRADA

FOR (J=16; J>0; J--)

LCD_GOTOXY (J,1);

PRINTF (LCD_PUTC,"309696_16MICROCONTROLADORES ");

DELAY_MS (100);

DELAY_MS (2000);

//LA SIGUIENTE RUTINA BORRA EL MENSAJE DE ENTRADA

FOR (J=16; J>0; J--)

LCD_GOTOXY (J, 1);

PRINTF (LCD_PUTC," ");

DELAY_MS (100);

WHILE (true)
{

// PRESENTA EL DATO EN FORMATO DE ENTERO SIN SIGNO

If (input (pin_a5) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("CARLOSSALAZAR");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14570996");

DELAY_MS (300);

If(input(pin_a4)==1)///false para no poner cero y que no de warning

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("VICTOR CARDONA");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14570994");

DELAY_MS (300);

If (input (pin_a3) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("DIEGOPEREZ");
LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14574994");

DELAY_MS (300);

If (input (pin_a2) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("ALEXANDERMORALES");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14770994");

DELAY_MS (300);

If (input (pin_a1) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("HERNANFRANCO");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14570994");

DELAY_MS (300);

}
#INCLUDE <16F887.H>

#FUSES NOWDT, NOPUT, INTRC_IO, NOMCLR, NOPROTECT, NOBROWNOUT,


NOWRT

#USE DELAY (internal = 8MHZ)

#INCLUDE <LCD.C>

#USE FAST_IO(A) //USAR EL PUERTO A

#USE FAST_IO (B)

#USE FAST_IO(C)

#USE FAST_IO (E)

// DECLARACION DE LAS VARIABLES DEL PROGRAMA

INT VALOR,J;

//-------------------------------------------------//

//Programa principal

VOID MAIN ()

set_tris_a(0b11111000);

LCD_INIT (); //INICIALIZACION DE LA LCD

//LA SIGUIENTE RUTINA COLOCA EL MENSAJE DE ENTRADA

FOR (J=16;J>0;J--)

LCD_GOTOXY (J,1);

PRINTF (LCD_PUTC,"309696_16 MICROCONTROLADORS ");

DELAY_MS (100);

DELAY_MS (2000);
//LA SIGUIENTE RUTINA BORRA EL MENSAJE DE ENTRADA

FOR (J=16; J>0; J--)

LCD_GOTOXY (J, 1);

PRINTF (LCD_PUTC," ");

DELAY_MS (100);

WHILE (true)

// PRESENTA EL DATO EN FORMATO DE ENTERO SIN SIGNO

If (input (pin_a7) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("CARLOSHERNANDEZ");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14678543");

DELAY_MS (2000);

If (input (pin_a6) ==1) ///false para no poner cero y que no de warning

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("VICTOR CARDONA");


LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14570994");

DELAY_MS (2000);

If (input (pin_a5) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("FERNANDOPEREZ");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC,"14587643");

DELAY_MS (2000);

If (input (pin_a4) ==1)

LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("HERNANFRANCO");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC,"14890456");

DELAY_MS (2000);

If (input (pin_a3) ==1)

{
LCD_PUTC ("\f");

LCD_GOTOXY (1,1);

LCD_PUTC ("ALEXANDERMORALES");

LCD_GOTOXY (1,2);

PRINTF (LCD_PUTC," 14576996");

DELAY_MS (2000);

}
https://youtu.be/NARuzlC2ndU

https://youtu.be/yo2TaAzspJo

S-ar putea să vă placă și