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

Тут можно читать онлайн Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом «ДМК-пресс», год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом «ДМК-пресс»
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-9706-0034-2
  • Рейтинг:
    4/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - описание и краткое содержание, автор Стивен Барретт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.

Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.

Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать онлайн бесплатно полную версию (весь текст целиком)

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С - читать книгу онлайн бесплатно, автор Стивен Барретт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

}

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

/* void ADC_convert(void): функция, осуществляющая одно преообразо- */

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

/* преобразует текущий результат в цифровое значение. Таким образом */

/* каждое отдельное число может быть выделено, преобразовано в ASCII*/

/* код и выведено на ЖКД */

void ADC_convert() {

unsigned int sumadr;

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); /*Очистить дисплей */

putcommands(0x06); /*Установить режим увеличения адреса на единицу*/

putcommands(0x0E); /*Включить дисплей,вывести мигающий курсор */

putcommands(0x02); /*Возврат */

}

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

/* Функция вывода инициализирует порт данных, создает сигналы RS и */

/* разрешения и посылает их на соответствующий порт */

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

void putchars(unsigned char c) {

DDRP = 0xFF; /*установить Port P как выходной */

DDRDLC = DDRDLC | 0x0C; * установить PORTDLC[3:2] как выходной */

PORTP = c; /* присвоить знак С порту данных */

PORTDLC= PORTDLC|0x08 /* установить RS в 1 для данных */

PORTDLC= PORTDLC|0x04 /* установить E в 1 ( PORTDLC[5] = 1) */

PORTDLC = 0; /* установить E и RS в 0 */

delay_5ms(); /* подождать 5мс */

}

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

/*Функция putcommand пересылает данные в контроллер на ЖК дисплея */

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

void putcommands(unsigned char d) {

DDRP = 0xFF; /*установить порт PORTP в качестве выходного */

DDRDLC = DDRDLC|0x0C; /*установить выводы PORTDLC[3:2] */

/* в качестве выходных */

PORTDLC = PORTDLC & 0xF7; /* команда RS = 0 */

PORTP = d; /*передача команды на на ЖКД */

PORTDLC = PORTDLC|0x04; /*E = 1 */

PORTDLC =0; /*E = 0 */

delay_5ms(); /*пауза 5 мс */

}

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

/*Функция lcd_print посылает строку на ЖК дисплей */

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

void lcd_print(char *string) {

putcommands(0x02); /*установка курсора на первую строку */

/*putcommand для выделения строки */

while(*(string) != '\0') {

putchars(*string);

string++;

}

}

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

/*задержка в 5 мс, на базе таймера с частотой 8 МГц */

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

void delay_5ms(void) {

int i;

for (i=0; i<50; i++) {

delay_100us();

}

}

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

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

/*задержка в 100 мкс, на базе таймера с частотой 8 МГц */

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

void delay_100us(void) {

int i;

for(i=0; i<50; i++) {

asm("nop");

}

}

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

7.3.6. Измерение неэлектрических величин

В представляемых примерах функция вольтметра состоит просто в измерении напряжения с выхода датчика некоторого внешнего физического параметра.

Датчик температуры. Например, мы можем подключить к МК 68HC12 градуированный по шкале Фаренгейта прецизионный датчик температуры LM34, выпускаемый компанией National Semiconductor. Этот датчик имеет постоянный коэффициент преобразования в +10 мВ на градус Фаренгейта, в диапазоне от –50 до +300 Ф. Схема подключения LM34 приведена на рис. 7.14. Она состоит из собственно датчика LM34 и цепи фильтра, образованной резистором и конденсатором. Такая схема обеспечивает прямое преобразование измеряемой температуры. Например, при 70 Ф, LM34 создает выходной сигнал в 700 мВ. Это напряжение умножается на 100, чтобы обеспечить прямое преобразование напряжения в вольтах в температуру, выраженную в градусах Фаренгейта для вывода на дисплей. Это значение должно затем быть преобразовано в ASCII код для вывода на ЖК дисплей.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стивен Барретт читать все книги автора по порядку

Стивен Барретт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С, автор: Стивен Барретт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x