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

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Описание и краткое содержание "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать бесплатно онлайн.
В книге последовательно рассматриваются все этапы создания встраиваемых систем на микроконтроллерах с применением современных технологий проектирования. Задумав эту книгу, авторы поставили перед собой задачу научить читателя искусству создания реальных устройств управления на однокристальных микроконтроллерах.
Издание содержит материал, охватывающий все вопросы проектирования, включает множество заданий для самостоятельной работы, примеры программирования, примеры аппаратных решений и эксперименты по исследованию работы различных подсистем микроконтроллеров.
Данная книга является прекрасным учебным пособием для студентов старших курсов технических университетов, которые предполагают связать свою профессиональную деятельность с проектированием и внедрением встраиваемых микропроцессорных систем. Книга также будет полезна разработчикам радиоэлектронной аппаратуры на микроконтроллерах.
/*----------------------------------------------------------------------*/
/*filename: debounced_swith.c */
/*осуществляет опрос 8 переключателей с программной защитой от дребезга */
/*выполняет специальные действия для каждого нажатого переключателя */
/*зажигает зеленый светодиод в разряде активизированного переключателя */
/*----------------------------------------------------------------------*/
/*подключаемые файлы*/
#include <912b32.h>
/*используемые функции*/
int process_valid_input(unsigned char input_value); //управление
//процессом опроса в реальном времени
void initialize_ports(void); //инициализация портов
void timer_init(void); //инициализация таймера
//глобальные переменные
int keep_going=1; //переменная цикла
unsigned char old_PORTB= 0xff; //предыдущее значение порта PORTB
unsigned char new_PORTB; //новое значение порта PORTB
void main{void) {
initialize_ports();
timer_init();
while(keep_going) {
new_PORTB=PORTB; //читать порт PORTB
if (new_PORTB != old_PORTB) {
//выполнять, если значение порта изменилось
swith(new_PORTB) {
case 0xFE: //переключатель PB0
if (process_valid_input(new_PORTB)) //процедура
//антидребезга
{ //выполнять действия, связанные
: //с нажатием клавиши PB0
:
PORTC = 0х01;//зажечь зеленый в разряде PB0
keep_going = 1;
}
break;
case 0xFD: // переключатель PB01
if (process_valid_input(new_PORTB)) // процедура
// антидребезга
{ //выполнять действия, связанные
: //с нажатием клавиши PB1
PORTC = 0х02; //зажечь зеленый в разряде PB1
keep_going = 1;
}
break;
case 0x7F: // переключатель PB7
if (process_valid_input(new_PORTB)) // процедура
//антидребезга
{ //выполнять действия, связанные
: //с нажатием клавиши PB7
PORTC = 0х80; //зажечь зеленый в разряде PB7
keep_going = 1;
}
break;
default:
; //аll other cases
} //окончание распозвания, какая клавиша нажата (switch(new_PORTB))
} //окончание обработки нажатой клавиши (if new_PORTB)
old_PORTB = new_PORTB; //обновить PORTB
} //окончание (while(keep_going))
} //окончание (main)
/*-----------------------------------------------------------------*/
/* Функция void initialize_ports устанавливает режим работы портов */
/*-----------------------------------------------------------------*/
void initialize_ports(void) {
DDRC=0xff; //порт PORTC на вывод
PORTC=0x00; //выходы порта PORTC в 0, зажгутся красные светодиоды
DDRB=0x00; //порт PORTB на ввод
}
/*--------------------------------------------------------------------*/
/* process_valid_input: проверка стабильности PORTB в течение периода */
/* переполнения таймера */
/*--------------------------------------------------------------------*/
int process_valid_input(unsigned char portx) {
int valid_input; //флаг результата опроса порта
int int_value; //время входа в процедуру
valid_input = TRUE; //установить флаг
int_value = TCNT; //читать текущий момент времени
while (int_value != TCNT) //повторять пока значения времени снова не
//сравняются
{
if (portx==PORTB) //порт PORTB остается стабильным
valid_input = TRUE;
else //порт PORTB изменил состояние
valid_input = FALSE;
if (!valid_input) //если порт изменил состояние, то выйти
//из цикла
break;
}
return valid_input;
}
/*------------------------------------------------------------------------*/
/* Функция timer_init инициализирует таймер. Частота системной шины равна */
/*8*МГц */
/*------------------------------------------------------------------------*/
void timer_init(void) {
TMSK1 = 0х00; //запретить прерывания
TMSK2 = 0х02; //частота тактировании 2 МГц
TSCR = 0х80; //разрешить работу модуля таймера
}
/*-------------------------------------------------------------------------*/
5.6. Жидкокристаллические индикаторы
В этом разделе мы подробно рассмотрим, как подключить жидкокристаллический индикатор к МК 68HC12. Мы начнем с краткого обзора принципа действия ЖК индикаторов. Далее изучим реальный однострочный символьный индикатор на 16 знакомест со встроенным контроллером управления. Рассмотрим, как выполнить аппаратное подключение этого индикатора к МК, а затем приведем пример программы управления.
5.6.1. Краткие сведения о жидкокристаллических индикаторах
Жидкокристаллический индикатор — почти идеальное устройство отображения информации. Этот тип индикаторов использует для своей работы те же напряжения, что и микроконтроллеры, но при этом потребляет энергию на несколько порядков меньшую, чем светодиодные индикаторы. Именно поэтому жидкокристаллические (далее ЖК) индикаторы нашли чрезвычайно широкое применение в переносных устройствах с автономным питанием. В электронных часах, калькуляторах и стационарных телефонах принято использовать монохромные ЖК индикаторы, в то время как современные мобильные телефоны, фотоаппараты и видеокамеры немыслимы без малогабаритного цветного ЖК-дисплея. По способу отображения информации ЖК индикаторы также подразделяются на цифро-буквенные и графические.
Для понимания технологических особенностей создания современных ЖК индикаторов и дисплеев следует коротко остановиться на основных свойствах жидких кристаллов. Жидкие кристаллы представляют собой почти прозрачные субстанции, проявляющие одновременно свойства кристалла и жидкости. Есть две главные особенности жидких кристаллов, благодаря которым возможно создание на их основе устройств отображения информации: способность молекул жидких кристаллов переориентироваться во внешнем электрическом поле и изменять поляризацию светового потока, проходящего через их слои.
Основой ЖК индикатора являются две параллельные стеклянные пластины с нанесенными на них поляризационными пленками. Различают верхний и нижний поляризаторы, сориентированные перпендикулярно друг другу. На стеклянные пластины в тех местах, где в дальнейшем будет формироваться изображение, наносится прозрачная металлическая окисная пленка, которая в дальнейшем служит электродами. На внутреннюю поверхность стекол и электроды наносятся полимерные выравнивающие слои, которые затем полируются, что способствует появлению на их поверхности, соприкасающейся с жидкими кристаллами, микроскопических продольных канавок. Пространство между выравнивающими слоями заполняют жидкокристаллическим веществом. В результате молекулы жидких кристаллов выстраиваются в направлении полировки полимерного слоя. Направления полировки верхнего и нижнего слоев полимера перпендикулярны (подобно ориентации поляризаторов). Это нужно для предварительного "скручивания" слоев молекул жидких кристаллов между стеклами на 90°. Когда напряжение на управляющие электроды не подано, поток света, пройдя через нижний поляризатор, двигается через слои жидких кристаллов, которые плавно меняют его поляризацию, поворачивая её на угол 90°. В результате поток света после выхода из ЖК материала беспрепятственно проходит через верхний поляризатор (сориентированный перпендикулярно нижнему) и попадает к наблюдателю. Никакого формирования изображения не происходит. При подаче напряжения на электроды между ними создается электрическое поле, что вызывает переориентацию молекул жидких кристаллов. Молекулы стремятся выстроиться вдоль силовых линий поля в направлении от одного электрода к другому. Вследствие этого пропадает эффект «скручивания» поляризованного света, под электродом возникает область тени, повторяющая его контуры. Создается изображение, формируемое светлой фоновой областью и темной областью под включенным электродом. Путем варьирования контуров площади, занимаемой электродом, можно формировать самые различные изображения: буквы, цифры, иконки и пр. Так создаются символьные ЖКИ. А при создании массива электродов (ортогональной матрицы) можно получить графический ЖКИ с разрешением, определяемым количеством задействованных электродов
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Книги похожие на "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Стивен Барретт - Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С"
Отзывы читателей о книге "Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С", комментарии и мнения людей о произведении.