Цитата(Pyku_He_oTTyda @ Sep 21 2006, 13:00)

А устройсто простое (тестер):
некий привод для запорного механизма на трубе (для крана), у которого на борту 8 или 10 битный АЦП.
Коробочка связана по двум линяям по 485, по одной линии в привод идут СИ, по другой возвращаются данные.
Задача вывести на трехэлементный семисегментник значение кода, получаемого от устройства.
Создаешь кодовую таблицу от своих сегментов. Типа как:
Код
const uchar KodePage[] = {0x7E, 0x06, 0xDA, 0x9E, 0xA6, 0xBC, 0xFC, 0x0E,
0xFE, 0xBE, 0xEE, 0xF4, 0x78, 0xD6, 0xF8, 0xE8,
0x10, 0xE6, 0x80, 0x16, 0x70, 0xC4, 0xD4, 0xEA,
0xC0, 0xAA, 0xF0, 0x76, 0x54, 0xB6, 0x6E, 0x00};
Создаешь переменную для буфера, типа: uchar LcdBuff[]={0,0,0};
Можешь вместо 0 инициальные значения написать (на загрузку покажет

)
А затем по таймеру выкидываешь по одному разряду. Только частоту прерывания таймера подбери чтоб не мигала.
Вот кусок от драйвера ЖКИ, у тебя почти тоже самое будет:
Код
#pragma interrupt_handler timer0_ovf_isr:10
void timer0_ovf_isr(void)
{
TimeX++; //Для анализа времени вывода по SPI
switch(TimeX&0xF)
{
///---------------Группа операций вывода на LCD
case 0:{ //Out LCD Data - main Out
wPB.o_LCD = 0;//800us
PORTB = *(uchar *) &wPB;
break;};// end case 2
case 4:{//Out LCD Data - main Out
SPDR = LcdBuff[--LCD_PTR];
if (!LCD_PTR) {LCD_PTR = 24;};
break;};// end case 2
case 14:{//Out LCD - Formirovanie signala LOAD
wPB.o_LCD = (LCD_PTR&0x07)?0:1;
PORTB = *(uchar *) &wPB;
break;};//end case 34
};//end switch
PORTB ^=0x02;
TCNT0 = 0xD7; //reload counter value
}