ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Encendido De Leds Controlado Por Botones Con Microcontrolador


Enviado por   •  3 de Febrero de 2014  •  442 Palabras (2 Páginas)  •  285 Visitas

Página 1 de 2

INSTITUTO TECNOLÓGICO DE LÁZARO CÁRDENAS

INGENIERÍA ELECTRÓNICA

APLICACIONES DE MICROCONTROLADORES

Práctica 1:

Encendido de leds controlado por botones

ALUMNO: MARTÍNEZ ALATORRE MIGUEL ÁNGEL

NÚMERO DE CONTROL: 10560589

GALLO SÁNCHEZ JULIO CÉSAR

Cd. Lázaro Cárdenas, Michoacán a 03 de febrero de 2014

LISTA DE MATERIAL

• 1 Protoboard.

• 1 Entrenador PIC18F4550.

• 8 Leds.

• 8 Resistencias de 330 Ω.

• 2 Push botons.

• 2 Resistencias de 4.7 kΩ.

• Cable para conexiones.

EXPLICACIÓN

Se hará un programa en lenguaje C para el microcontrolador PIC18F4550, en el cual haya 8 leds, configurados como salidas, inicialmente apagados y dos botones “UP” y “DOWN”, configurados como entradas, como se muestra en la figura 1. Cuando se presione “UP”, deberá encenderse el led conectado al bit menos significativo del puerto B y conforme se siga presionando “UP” ir ascendiendo hacia el bit más significativo de dicho puerto. Cuando se presione “DOWN”, deberá apagarse el último led que se encendió, hasta quedar todos apagados.

Figura 1. Circuito empleado para obtener la salida deseada en los leds, controlada por los botones como entradas.

OBJETIVO

Aprender a usar los puertos digitales del microcontrolador PIC18F4550 como entradas y salidas, además de conocer algunos códigos usados especialmente para el mismo y recordar los usados en el lenguaje C.

DESARROLLO

Realizaremos 2 soluciones diferentes para esta práctica.

Solución 1:

/* Este programa sirve para probar las instrucciones de manejo de puertos digitales en C.

Realizó: Martínez Alatorre Miguel Ángel */

/*Configuración del PIC18F4550*/

#include"18f4550.h" // Incluye la librería del PIC18F4550 que contiene las

// definiciones de los periféricos.

#use delay(clock=48000000) // Ajusta la velocidad de la CPU a 48 MHz.

#build(reset=0x02000,interrupt=0x02008) // Se asigna la dirección de inicio del vector reset y de las interrupciones en general.

#org 0x0000, 0x1FFF { } // Se declara el área de FLASH para nuestro programa.

// Zona para la declaración de variables y constantes globales.

unsigned int c, cont = 0;

/* Programa principal */

void main(void){

set_tris_b(0x00);

output_b(0xff);

output_c(0xff);

for( ; ; ){ // Ciclo infinito con for.

c = input_c() & 0x03;

if(c == 0){

output_b(0xff);

cont=0;

delay_ms(300);

}

else if(c==1&&cont!=8){

cont++;

if(cont==1)

output_b(0xfe);

else if(cont==2)

output_b(0xfc);

else if(cont==3)

output_b(0xf8);

else

...

Descargar como (para miembros actualizados)  txt (4.5 Kb)  
Leer 1 página más »
Disponible sólo en Clubensayos.com