/*
 * Soubor:  7-seg-pole.c
 * Datum:   06.01.2012 14:49
 * Autor:   Marek Nožka, nozka <@t> spseol <d.t> cz
 * Licence: GNU/GPL 
 * Úloha:   Na 7-segmentovém displayi cykluje čísla 0-9
 * Popis:   Práce s polem.
 ****************************************************/
#define _ISOC99_SOURCE
#define _GNU_SOURCE
#include <at89x52.h>

#include "delay12MHz.h"

/* ***************    Makra    ******************** */
#define PORT P2


/****************************************************
 *               Hlavní program.
 ****************************************************/
int main(void)
{
    /* pole uložené v paměti programu představuje čísla na displayi */
    __code char segment[] = { 0b11000000,       //0
        0b11111001,           // 1
        0b10100100,           // 2
        0b10110000,           // 3 
        0b10011001,           // 4
        0b10010010,           // 5
        0b10000010,           // 6
        0b11111000,           // 7
        0b10000000,           // 8
        0b10010000            // 9
    };
    /* zobrazované číslo */
    char cislo = 0;

    while (1) {
        PORT = segment[cislo];  // zobrazí
        delay_10m_x(80);        // čeká
        if (cislo < 9) {
            cislo++;
        } else {
            cislo = 0;
        }
        
    }

    return 0;
}

