Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
Шрифт:
unsigned int avg_bin_voltage;
unsigned int int_voltage;
unsigned int tens_int;
unsigned int ones_int;
unsigned int tenths_int;
unsigned int hundredths_int;
double voltage, abs_voltage;
char tens;
char ones;
char tenths;
char hundredths;
ATDCTL5 = 0x06; /*проводится 4
преобразования, канал 6 */
while((ATDSTAT & 0x8000)!= 0x8000) {
/*Подождите окончания преобразования */
}
/*усреднение по четырем результатам */
sumadr = ADR0H + ADR1H + ADR2H + ADR3H;
avg_bin_voltage = sumadr/4;
/* преобразование результата в напряжение, лежащее в диапазоне от */
/* 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; i<50; i++) {
asm("nop");
}
}
/********************************************************************/
/*задержка в 5 мс, на базе таймера с частотой 8 МГц */
/********************************************************************/
void delay_5ms(void) {
int i;
for (i=0; i<50; i++) {
delay_100us;
}
}
/********************************************************************/
/*Функции инициализации посылают на ЖКД необходимую стартовую */
/* последовательность. Формируется последовательность команд инициали-*/
/* зации соответствующих техническим данным производителя дисплея. */
/********************************************************************/
void initialize_lcd(void) {
delay_5ms;
delay_5ms;
delay_5ms; /*задержка на 15 мс перед включением ЖКД */
putcommands(0x38); /*установочный интерфейс */
delay_5ms;
putcommands(0x38);
delay_100us;
putcommands(0x38);
putcommands(0x38);
putcommands(0x0C);
putcommands(0x01); /*Очистить дисплей */
Поделиться:
Популярные книги
Свадьба по приказу, или Моя непокорная княжна
Любовные романы:
любовно-фантастические романы
5.57
рейтинг книги
Сборник коротких эротических рассказов
Любовные романы:
эро литература
love action
7.25
рейтинг книги
Отец моего жениха
Любовные романы:
современные любовные романы
7.79
рейтинг книги
Вадбольский
1. Вадбольский
Фантастика:
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 7
7. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Повелитель механического легиона. Том VIII
8. Повелитель механического легиона
Фантастика:
технофэнтези
аниме
фэнтези
5.00
рейтинг книги
В зоне особого внимания
12. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Таня Гроттер и магический контрабас
1. Таня Гроттер
Фантастика:
фэнтези
8.52
рейтинг книги
Бастард Императора. Том 2
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга ХI
11. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Третий
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Возвышение Меркурия. Книга 16
16. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 9
9. Лекарь
Фантастика:
боевая фантастика
юмористическое фэнтези
6.00
рейтинг книги
Потусторонний. Книга 1
1. Господин Артемьев
Фантастика:
фэнтези
попаданцы
5.00