#define DELAY 500000
void init_port();
void LED_EXERCISE_13();
void LED_EXERCISE_14();
void LED_EXERCISE_15();
void LED_EXERCISE_16();
void LED_EXERCISE_17();
void LED_EXERCISE_18();
void LED_EXERCISE_19();
void LED_EXERCISE_20();
void LED_EXERCISE_21();
void LED_EXERCISE_22();
void setup()
{
init_port();
//LED_EXERCISE_13(); // Glow 5 to 0 LEDS (DESCENDING ORDER)
//LED_EXERCISE_14(); // Glow 0 TO 2 LEDS ND 2 TO 0 LEDS
//LED_EXERCISE_15(); // Glow 3 TO 0 LEDS AND 5 TO 3 LEDS
//LED_EXERCISE_16(); // ON THE 0,2,4 LEDS ONE BY ONE, OFF THEM
// ON THE 4,2,0 LEDS ONE BY ONE, OFF THEM
//LED_EXERCISE_17(); // ON THE 1,3,5 LEDS ONE BY ONE, OFF THEM
// ON THE 5,3,1 LEDS ONE BY ONE, OFF THEM
//LED_EXERCISE_18(); // GLOW THE CONSECUTIVE 2 LEDS (0,1 THEN DELAY 2,3 THEN DELAY)
//LED_EXERCISE_19(); // Glow THE CONSECUTIVE 2 LEDS IN REVERSE ORDER (4,5 THEN DELAY 2,3 THEN DELAY)
//LED_EXERCISE_20(); // GLOW THE LEDS IN FOLLOWING ORDER (0,5 DELAY 1,4 DELAY 2,3 DELAY)
//LED_EXERCISE_21(); // Glow THE LEDS IN FOLLOWING ORDER (2,3 DELAY 1,4 DELAY 0,5 DELAY)
LED_EXERCISE_22(); // GLOW THE LEDS IN FOLLOWING ORDER (0,3 DELAY 1,4 DELAY 2,5 DELAY)
}
void init_port()
{
volatile char *direction_f;
direction_f = 0x30;
*direction_f = 0x3F;
}
void delay_for()
{
volatile unsigned long i;
for(i=0;i<DELAY;i++);
}
void LED_EXERCISE_1() // Glow Only one LED
{
volatile char *out_f;
out_f = 0x31;
*out_f = 0x01;
}
void LED_EXERCISE_13() // Glow 5 to 0 LEDS (DESCENDING ORDER)
{
volatile char *outf;
outf=0x31;
char i,x=0x20;
while(1)
{
for(i=0;i<6;i++)
{
*outf = x>>i;
delay_for();
}
}
}
void LED_EXERCISE_14() // Glow 0 TO 2 LEDS AND 2 TO 0 LEDS
{
volatile char *outf;
outf = 0x31;
char i,x;
while(1)
{
x = 0x01;
for(i=0;i<3;i++)
{
*outf=(x<<i);
delay_for();
}
x = 0x04;
for(i=0;i<3;i++)
{
*outf=(x>>i);
delay_for();
}
}
}
void LED_EXERCISE_15() // Glow 3 TO 0 LEDS AND 5 TO 3 LEDS
{
volatile char *outf;
outf = 0x31;
char i,x;
while(1)
{
x = 0x08;
for(i=0;i<4;i++)
{
*outf=(x>>i);
delay_for();
}
x = 0x20;
for(i=0;i<3;i++)
{
*outf = x>>i;
delay_for();
}
}
}
void LED_EXERCISE_16() // ON THE 0,2,4 LEDS ONE BY ONE, OFF THEM; ON THE 4,2,0 LEDS ONE BY ONE, OFF THEM
{
volatile char *outf;
outf = 0x31;
char i,x;
while(1)
{
x = 0x01;
for(i=0;i<5;i+=2)
{
*outf = (x<<i);
delay_for();
}
*outf = 0x00;
delay_for();
x = 0x10;
for(i=0;i<5;i+=2)
{
*outf = (x>>i);
delay_for();
}
*outf = 0x00; delay_for();
}
}
void LED_EXERCISE_17() // ON THE 1,3,5 LEDS ONE BY ONE, OFF THEM ON THE 5,3,1 LEDS ONE BY ONE, OFF THEM
{
volatile char *outf;
outf = 0x31;
char i,x;
while(1)
{
x = 0x02;
for(i=0;i<5;i+=2)
{
*outf = (x<<i);
delay_for();
}
*outf = 0x00;
delay_for();
x = 0x20;
for(i=0;i<5;i+=2)
{
*outf = (x>>i);
delay_for();
}
*outf = 0x00; delay_for();
}
}
void LED_EXERCISE_18() // GLOW THE CONSECUTIVE 2 LEDS (0,1 THEN DELAY 2,3 THEN DELAY)
{
volatile char *outf; outf = 0x31;
char i, x=0x03;
while(1)
{
for(i=0;i<3;i+=2)
{
*outf = (x<<i);
delay_for();
}
}
}
void LED_EXERCISE_19()// Glow THE CONSECUTIVE 2 LEDS IN REVERSE ORDER (4,5 THEN DELAY 2,3 THEN DELAY)
{
volatile char *outf; outf = 0x31;
char i, x=0x30;
while(1)
{
for(i=0;i<3;i+=2)
{
*outf = (x>>i);
delay_for();
}
}
}
void LED_EXERCISE_20() // GLOW THE LEDS IN FOLLOWING ORDER (0,5 DELAY 1,4 DELAY 2,3 DELAY)
{
volatile char *outf; outf = 0x31;
while(1)
{
*outf = 0x21;
delay_for();
*outf = 0x12;
delay_for();
*outf = 0x0C;
delay_for();
}
}
void LED_EXERCISE_21() // Glow THE LEDS IN FOLLOWING ORDER (2,3 DELAY 1,4 DELAY 0,5 DELAY)
{
volatile char *outf; outf = 0x31;
while(1)
{
*outf = 0x0C;
delay_for();
*outf = 0x12;
delay_for();
*outf = 0x21;
delay_for();
}
}
void LED_EXERCISE_22() // GLOW THE LEDS IN FOLLOWING ORDER (0,3 DELAY 1,4 DELAY 2,5 DELAY)
{
volatile char *outf; outf = 0x31;
char i,x=0x09;
while(1)
{
for(i=0;i<3;i++)
{
*outf = x<<i;
delay_for();
}
}
}
void loop()
{
}