Tak pro uplnost toto sem chtel:
#include <at89x52.h>
#define T0_M 0
#define T0_CNT 2
#define T0_G 3
#define HM 255
#define DM 128 //definice spodni meze
unsigned int i; // nezaporne cele cislo, ktere bude jakoby tancit po tom prubehu
void cas () interrupt 1 // definice aby to byl interupt prazdna zavorka nazev interupt vyvolava prerus jen kdyz dojde k preruseni je vyvolana
{
TR0=0; //vypnu timer
TL0=255; //definice sirky schodku
TH0=250; //definice sirky schodku
TR0=1; //zapnu timer
if (i==HM) // kdyz zjisti ze icko je nahore HM tak zapise nulu
{ i=DM;
}
else
{ P0=i;
++i;
}
}
void main ()
{
TMOD=0<<T0_G|0<<T0_CNT|1<<T0_M; //| - zaroven
TR0=1;
TL0=255; //zapisu prvni hodnoty
TH0=250;
ET0=1; //povoleni od timeru nula preruseni
EA=1;
i=DM; // kde ma zacit citat ... takze od nuly
while (1);