//Connect FOUR 7-Segment Displays to 4 individual ports
/*
05 Display 0000 to 9999 in loop with delay.
06 Display 0.000 to 999.9 in loop with delay.
07 Display 0 to 9999 in loop with delay. Do not display the prefix 0.
08 Display 9999 to 0 in loop with delay. Do not display the prefix 0.
09 Display the two-digit prime numbers in loop.
10 Display a clock (Min & Sec only).
*/
/* MAIN CODE */
#include "seven_segment.h"
//macros
#define ZERO 0x3F
#define ONE 0X06
#define TWO 0X5B
#define THREE 0X4F
#define FOUR 0X66
#define FIVE 0X6D
#define SIX 0X7D
#define SEVEN 0X07
#define EIGHT 0X7F
#define NINE 0X6F
#define DECIMAL_POINT 0X80
#define DELAY_COUNT 100000
const char arr_num[]={ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE};
void setup() {
// put your setup code here, to run once:
seven_segment_init();
}
void loop() {
// put your main code here, to run repeatedly:
char c,a,k,f;
//basic check
//output_f(ONE);
//display_delay(DELAY_COUNT);
//output_k(TWO);
//display_delay(DELAY_COUNT);
//output_a(THREE);
//display_delay(DELAY_COUNT);
//output_c(FOUR);
//display_delay(DELAY_COUNT);
/*
//Task 05: Display 0000 to 9999 in loop with delay.
for(f=0;f<10;f++)
{
output_f(arr_num[f]);
display_delay(DELAY_COUNT);
for(k=0;k<10;k++)
{
output_k(arr_num[k]);
display_delay(DELAY_COUNT);
for(a=0;a<10;a++)
{
output_a(arr_num[a]);
display_delay(DELAY_COUNT);
for (c=0;c<10;c++)
{
output_c(arr_num[c]);
display_delay(DELAY_COUNT);
}
output_c(ZERO);
}
}
}
*/
/*
//Task 06: Display 0.000 to 999.9 in loop with delay
for(f=0;f<10;f++)
{
output_f((arr_num[f])| (DECIMAL_POINT));
display_delay(DELAY_COUNT);
for(k=0;k<10;k++)
{
output_k(arr_num[k]);
display_delay(DELAY_COUNT);
for(a=0;a<10;a++)
{
output_a(arr_num[a]);
display_delay(DELAY_COUNT);
for (c=0;c<10;c++)
{
output_c(arr_num[c]);
display_delay(DELAY_COUNT);
}
output_c(ZERO);
}
}
}
*/
/*
//Task 07: Display 0 to 9999 in loop with delay. Do not display the prefix 0
for(f=1;f<10;f++)
{
for(k=1;k<10;k++)
{
for(a=1;a<10;a++)
{
for (c=0;c<10;c++)
{
output_c(arr_num[c]);
display_delay(DELAY_COUNT);
}
output_c(ZERO);
output_a(arr_num[a]);
display_delay(DELAY_COUNT);
}
output_a(ZERO);
output_k(arr_num[k]);
display_delay(DELAY_COUNT);
}
output_k(ZERO);
output_f(arr_num[f]);
display_delay(DELAY_COUNT);
}
*/
/*
//Task 08: Display 9999 to 0 in loop with delay. Do not display the prefix 0
for(f=9;f>=0;f--)
{
output_f(arr_num[f]);
display_delay(DELAY_COUNT);
for(k=9;k>=0;k--)
{
output_k(arr_num[k]);
display_delay(DELAY_COUNT);
for(a=9;a>=0;a--)
{
output_a(arr_num[a]);
display_delay(DELAY_COUNT);
for(c=9;c>=0;c--)
{
output_c(arr_num[c]);
display_delay(DELAY_COUNT);
}
}
}
}
*/
// Task 09: Display the two-digit prime numbers in loop.
/* */
//Task 10: Display a clock (Min & Sec only).
for(f=0;f<6;f++)
{
output_f(arr_num[f]);
display_delay(DELAY_COUNT);
for(k=0;k<10;k++)
{
output_k(arr_num[k]);
display_delay(DELAY_COUNT);
for(a=0;a<6;a++)
{
output_a(arr_num[a]);
display_delay(DELAY_COUNT);
for (c=0;c<10;c++)
{
output_c(arr_num[c]);
display_delay(DELAY_COUNT);
}
}
}
}
}