/* преобразование результата в напряжение, лежащее в диапазоне от */
/* 0.00 до 5.00 В */
voltage = (avg_bin_voltage/256)*5;
/*приведение напряжения к диапазону от -10.00 до +10.00 В */
/*обращение процесса, выполняемого аналоговым интерфейсом */
abs_voltage = (fabs)((voltage - 2.5) * 4);
/*преобразование результата в целое число в диапазоне от -1000 */
/* до +1000 */
int_voltage = (100*voltage);
/*Выделение и преобразование наибольшей значащей цифры в */
/* ASCII код десятичного значения, прибавление 48, */
/* результат дает ASCII код */
tens_int = int_voltage/1000;
tens = (char)(tens_int + 48);
/*Выделение и преобразование следующей наибольшей значащей цифры в */
/* ASCII код десятичного значения, прибавление 48, */
/* результат дает ASCII код*/
ones_int = int_voltage/100;
ones = (char)(ones_int + 48);
/*Выделение и преобразование следующей наибольшей значащей цифры в */
/* ASCII код десятичного значения, прибавление 48, */
/* результат дает ASCII код */
tenths_int = (int_voltage - ones_int*100)/10;
tenths = (char)(tenths_int + 48);
/*Выделение и преобразование следующей наибольшей значащей цифры в */
/* ASCII код десятичного значения, прибавление 48, */
/* результат дает ASCII код */
hundredths_int = (int_voltage - ones_int*100 - tenths_int*10)/1;
hundredths = (char)(hundredths_int + 48);
/*Вывод результата на ЖКД */
if (voltage 0) putchars('-'); /*Вывести отрицательный знак*/
else putchars('+'); /*Вывести положительный знак*/
putchars(tens);
putchars(ones);
putchars('.');
putchars(tenths);
putchars(hundredths);
putchars(' ');
putchars('V');
}
/********************************************************************/
/********************************************************************/
/*задержка в 100 мкс, на базе таймера с частотой 8 МГц */
/********************************************************************/
void delay_100us(void) {
int i;
for (i=0; i50; i++) {
asm("nop");
}
}
/********************************************************************/
/*задержка в 5 мс, на базе таймера с частотой 8 МГц */
/********************************************************************/
void delay_5ms(void) {
int i;
for (i=0; i50; i++) {
delay_100us;
}
}
/********************************************************************/
/*Функции инициализации посылают на ЖКД необходимую стартовую */
/* последовательность. Формируется последовательность команд инициали-*/
/* зации соответствующих техническим данным производителя дисплея. */