char buf[20];
void setup() {
DDRD |= B11111111; PORTD = 0;
DDRB |= B00111111; PORTB = B00111111;
DDRC |= B00011111; PORTC = B00011111;
sprintf(buf, "HELLO WORLD");
}
void loop() {
unsigned long timer = millis();
static unsigned long elapse = timer;
static bool init = true;
static long i = 2147483630;
if (init)
{
if (timer - elapse > 3000)
{
elapse = timer; init = false;
}
}
else
{
sprintf(buf, "%11ld", i);
if (timer - elapse > 200)
{
elapse = timer; i++;
}
}
digitalWrite( 8, LOW); PORTD = Test(buf[10]); digitalWrite( 8, HIGH); PORTD = 0;
digitalWrite( 9, LOW); PORTD = Test(buf[ 9]); digitalWrite( 9, HIGH); PORTD = 0;
digitalWrite(10, LOW); PORTD = Test(buf[ 8]); digitalWrite(10, HIGH); PORTD = 0;
digitalWrite(11, LOW); PORTD = Test(buf[ 7]); digitalWrite(11, HIGH); PORTD = 0;
digitalWrite(12, LOW); PORTD = Test(buf[ 6]); digitalWrite(12, HIGH); PORTD = 0;
digitalWrite(13, LOW); PORTD = Test(buf[ 5]); digitalWrite(13, HIGH); PORTD = 0;
digitalWrite(A0, LOW); PORTD = Test(buf[ 4]); digitalWrite(A0, HIGH); PORTD = 0;
digitalWrite(A1, LOW); PORTD = Test(buf[ 3]); digitalWrite(A1, HIGH); PORTD = 0;
digitalWrite(A2, LOW); PORTD = Test(buf[ 2]); digitalWrite(A2, HIGH); PORTD = 0;
digitalWrite(A3, LOW); PORTD = Test(buf[ 1]); digitalWrite(A3, HIGH); PORTD = 0;
digitalWrite(A4, LOW); PORTD = Test(buf[ 0]); digitalWrite(A4, HIGH); PORTD = 0;
}
uint8_t Test(uint8_t i)
{
// AAA
// F B
// F B
// GGG
// E C
// E C
// DDD .
//
switch (i)
{ //ASCII .GFEDCBA
case 48: return 0b00111111; // '0'
case 49: return 0b00000110; // '1'
case 50: return 0b01011011; // '2'
case 51: return 0b01001111; // '3'
case 52: return 0b01100110; // '4'
case 53: return 0b01101101; // '5'
case 54: return 0b01111101; // '6'
case 55: return 0b00000111; // '7'
case 56: return 0b01111111; // '8'
case 57: return 0b01101111; // '9'
case 32: return 0b00000000; // ' ' BLANK
case 42: return 0b01100011; // '*'
case 45: return 0b01000000; // '-'
case 46: return 0b10000000; // '.'
case 65: return 0b01110111; // 'A'
case 66: return 0b01111100; // 'B' (b)
case 67: return 0b00111001; // 'C'
case 68: return 0b01011110; // 'D' (d)
case 69: return 0b01111001; // 'E'
case 70: return 0b01110001; // 'F'
case 71: return 0b00111101; // 'G'
case 72: return 0b01110110; // 'H'
case 73: return 0b00110000; // 'I'
case 74: return 0b00001110; // 'J'
case 75: return 0b01110110; // 'K' Same as 'H'
case 76: return 0b00111000; // 'L'
case 77: return 0b00000000; // 'M' NO DISPLAY
case 78: return 0b01010100; // 'N' (n)
case 79: return 0b00111111; // 'O'
case 80: return 0b01110011; // 'P' (p)
case 81: return 0b01100111; // 'Q' (q)
case 82: return 0b01010000; // 'R' (r)
case 83: return 0b01101101; // 'S'
case 84: return 0b01111000; // 'T' (t)
case 85: return 0b00111110; // 'U'
case 86: return 0b00111110; // 'V' Same as 'U'
case 87: return 0b01111110; // 'W'
case 88: return 0b01110110; // 'X' Same as 'H'
case 89: return 0b01101110; // 'Y' (y)
case 90: return 0b01011011; // 'Z' Same as '2'
case 95: return 0b00001000; // '_' UNDERSCORE
default: return 0b00000000;
}
}