Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

 /* преобразование результата в напряжение, лежащее в диапазоне от */

 /* 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;

 }

}

/********************************************************************/

/*Функции инициализации посылают на ЖКД необходимую стартовую       */

/* последовательность. Формируется последовательность команд инициали-*/

/* зации соответствующих техническим данным производителя дисплея.  */

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже