Sie sind auf Seite 1von 4

Sistemas Mecatrnicos

Fecha:
9 de febrero del 2015

Practica 7

Introduccin:
La idea de la programacin surge con la evolucin de la electrnica y con ello

los primeros

transistores a micro controladores a causa de la complejidad de la electrnica, la tecnologa ha


hecho que los componentes

cada vez sean ms pequeos y con mayor capacidad

tanto en

almacenamiento y funcionamiento.
Material:
1. tabla protoboard

5. Pinzas

9. Resistencias de 330oh

2. atmega 8

6. Programa de AVR en la computadora

3. cable interfon

7. Programa proteus en la computadora

4. programador

8. Led

Objetivo general
Realizar un programar el cual encienda 6 leds de modo que sea la secuencia de dos semforos.

Objetivos especficos

Elaborar un programa en AVR el cual encienda dos semforos.


Elaborar en el programa proteus el diagrama de la conexin del atmega 8 con los leds y

simularlo.
Verificar que el programa

simulacin.
Entender la programacin del atmega 8.
Armar la prctica simulada en fsica guindose de la conexin hecha en proteus.

hecho en

AVR funciona en el programa proteus en la

Circuito armado en el programa proteus

Configuracin de los pines del atmega 8

Programa en AVR
#include <avr/io.h>
entrada y salida
#define F_CPU 4000000
#include <util/delay.h>
int main(void)
{

//llama a nuestro hoja todas las funciones, para manejar

los puertos de

// define la frecuencia a 4MHz


// Librera que contiene todas las funciones para manejar los retardos de tiempo.

// Funcin principal, es todo lo que ejecutar nuestro microcontrolador

while(1)
// El ciclo while, es un ciclo que ejecuta todas las instrucciones que se encuentran
dentro de sus corchetes, siempre y cuando lo que este dentro del parntesis se cumpla, en este caso el 1 es lo
mismo que TRUE(verdadero), por lo tanto, siempre se cumple y se ejecutaran cclicamente las instrucciones
dentro del while. Esto se hace con la intencin de que sea un ciclo continuo.
{
DDRC |=((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5));
PORTC&=~((1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5));
While(1)

{
PORTC|=((1<<0)|(1<<5)); //encendemos rojo y verde
_delay_ms(10000); //son los segundos que va estar encendido
PORTC&=~(1<<5); //desactivamos el verde
PORTC|=(1<<4); //encendemos amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~(1<<4); //desactivamos el amarillo
PORTC|=(1<<4); //encendemos amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~(1<<4); //desactivamos el amarillo
PORTC|=(1<<4); //encendemos amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~((1<<4)|(1<<0)); //desactivamos el amarillo y el rojo
PORTC|=((1<<2)|(1<<3)); //encendemos verde y rojo
_delay_ms(10000); //son los segundos que va estar encendido el verde y rojo
PORTC&=~(1<<2); //desactivamos el verde
PORTC|=(1<<1); //encendemos el amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~(1<<1); //desactivamos el amarillo
PORTC|=(1<<1); //encendemos el amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~(1<<1); //desactivamos el amarillo
PORTC|=(1<<1); //encendemos el amarillo
_delay_ms(1000); //son los segundos que va estar encendido el amarillo
PORTC&=~((1<<1)|(1<<3)); // desativamos el rojo y el amarillo

}
return 0;
}

Conclusiones
Se concluye que el la programacin de los dos semforos que se hiso en el programa AVR el
ciclo que debe llevar es un ciclo while ya que la secuencia tiene que ser repetitiva y por lo tanto el
cdigo no es extenso ya que solo lo repetimos de nuevo.