Autores:
Indice
1. Hacer titilar un LED.
2. Hacer titilar todos los LEDs a la vez.
{
PORTB.B3=1; //Enciende el LED.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B0=0; //Apaga el LED.
delay_ms(500);//Espera 500 mili segundos.
}
{
while(1)
/*
Aclaraciones: Las etiquetas se utilizan por si se debe utilizar ese puerto para otra aplicacin, solo
sea
necesario cambiar en la etiqueta la posicin del nuevo puerto
*/
int main(void)
{
Config_Pin_Leds = 0XFF;
Leds = 0;
//Ciclo Infinito
while(1)
_delay_ms(500);
Leds ^= 0XFF;
}3
void main() {
1
Robtica 0.1
DDRB= 1; //Configura el puerto B3 como salida.
while(1)
//Bucle infinito.
{
PORTB.B0=1; //Enciende el LED1.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B1=1; //Apaga el LED2.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B2=1; //Enciende el LED3.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B3=1; //Apaga el LED4.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B4=1; //Enciende el LED5.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B5=1; //Apaga el LED6.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B6=1; //Enciende el LED7.
delay_ms(500);//Espera 500 mili segundos.
PORTB.B7=1; //Apaga el LED8.
delay_ms(500);//Espera 500 mili segundos.
PORTB=0;
}
}
Correciones
# define F_CPU 1000000UL
//Librerias
#include <avr/io.h>
#include <util/delay.h>
#define
Config_Pin_Leds
del Puerto B
#define
Leds
#define
Led_3
Puerto B, es decir el PB3
/*
Aclaraciones: Las etiquetas se utilizan por si se debe utilizar ese puerto para otra aplicacin, solo
sea
necesario cambiar en la etiqueta la posicin del nuevo puerto
Robtica 0.1
*/
int main(void)
{
Config_Pin_Leds = 0XFF;
//Se configuran Todos los Bits del Puerto B Como Salida
Leds = 0;
//Se inicializa el Puerto B en Ceros
unsigned char i;
//Ciclo Infinito
while(1)
{
//Este For recorre todos los 8 bits del puerto
for (i=0;i<8;i++)
{
Leds |= 0X01;
//Se realiza una OR con y se enciende el primer Bit
_delay_ms(500);
//Retardo de 0.5 Segundos
Leds = Leds<<1;
//Se rota el puerto de 1 en 1
}
Leds = 0X00;
//Se apaga todo el puerto
}
}
//Enciende Rojo1
PORTB.B5=1;
//Enciende Verde2
Delay_ms(3000);//Retardo de 3 Segundos
PORTB.B5=0;
//Apaga Verde2
PORTB.B0=1;
//Enciende Amarillo2
Delay_ms(1000);//Retardo de 1 Segundos
PORTB.B4=0;
//Apaga Amarillo2
PORTB.B0=0;
//Apagar Rojo1
PORTB.B3=1;
//Enciende Rojo2
PORTB.B2=1;
//Enciende Verde1
Delay_ms(3000);//Retardo de 3 Segundos
PORTB.B2=0;
//Apaga Verde1
PORTB.B1=1;
//Enciende Amarillo1
Delay_ms(1000);//Retardo de 1 Segundo
PORTB.B1=0;
//Apaga Amarillo1
3
Robtica 0.1
PORTB.B3=0;
//Apaga Rojo2
}
}
Correcciones
# define F_CPU 1000000UL
//Librerias
#include <avr/io.h>
#include <util/delay.h>
#define
Puerto B
#define
#define
#define
#define
#define
#define
#define
Config_Pin_Sem
Semaforos
Sem_1_R
Sem_1_A
Sem_1_V
Sem_2_R
Sem_2_A
Sem_2_V
1
1
1
2
2
2
Bombillo
Bombillo
Bombillo
Bombillo
Bombillo
Bombillo
Rojo
Amarillo
Verde
Rojo
Amarillo
Verde
int main(void)
{
Config_Pin_Sem = 0XFF;//Se configuran Todos los Bits del Puerto B Como Salida
Semaforos |= (1<<Sem_1_R) | (1<<Sem_2_V);//Se inicializan los semaforos, el semaforo 1
en rojo y el 2 en verde
_delay_ms(1000);
//Ciclo Infinito
while(1)
//Proceso de semaforo 2
Semaforos |= (1<<Sem_2_V);
_delay_ms(3000);
Semaforos &= ~(1<<Sem_2_V);
Semaforos |= (1<<Sem_2_A);
_delay_ms(1000);
Semaforos &= ~(1<<Sem_2_A);
Semaforos |= (1<<Sem_2_R);
//
_delay_ms(1000);
//
//Proceso de semaforo 1
Semaforos &= ~(1<<Sem_1_R);
Semaforos |= (1<<Sem_1_A);
1
_delay_ms(1000);
Semaforos &= ~(1<<Sem_1_A);
Semaforos |= (1<<Sem_1_V);
_delay_ms(3000);
Semaforos &= ~(1<<Sem_1_V);
Semaforos |= (1<<Sem_1_A);
Robtica 0.1
_delay_ms(1000);
Semaforos &= ~(1<<Sem_1_A);
Semaforos |= (1<<Sem_1_R);
//
_delay_ms(1000);
//
_delay_ms(1000);
Semaforos &= ~(1<<Sem_2_A);
1.
2.
Encender un LED con un pulso del pulsador y apagarlo con un segundo pulso.
3.
4.
5.
Hacer 3 juegos de luces con tres pulsadores que se activaran con cada pulsador.
6.
7.
Robtica 0.1