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

а) Схема подключения ЖК дисплея к МК
Номер вывода | Обозначение | Функция |
---|---|---|
1 | FGND | Вывод корпуса |
2 | GND | Общий вывод источника питания |
3 | VDD | Напряжение питания контроллера 5.0 В |
4 | VEE | Напряжение питания ЖК матрицы –14 В ± 3 В |
5 | WR | Линия управления «запись» |
6 | RD | Линия управления «чтение» |
7 | CE | Линия управления «разрешение обмена» |
8 | C/D | Выбор режима обмена: 0 — чтение/запись данных, 1 — чтение регистра состояния/запись команды |
9 | NC | Не подсоединен |
10 | RESET | Начальная установка контроллера |
11 | DB0 | Двунаправленная магистраль данных контроллера ЖК индикатора |
12 | DB1 | |
13 | DB2 | |
14 | DB3 | |
15 | DB4 | |
16 | DB5 | |
17 | DB6 | |
18 | DB7 | |
19 | FS | Выбор размера символа |
20 | NC | Не подсоединен |
б) Описание выводов контроллера графического ЖК дисплея
Рис. 5.16.Сопряжение графического ЖК дисплея с МК
Проанализировав записи в табл. 5.16, б, Вы увидите, что графический дисплей требует для своей работы двуполярного источника питания. Положительное напряжение питания обеспечивает работу контроллера управления, в то время как отрицательное напряжение необходимо для регулирования контрастности получаемого на дисплее изображения.
В нашем примере мы использовали линии портов PORTP и PORTDLC для обмена данными между МК и дисплеем. Двунаправленная магистраль данных контроллера дисплея D[7…0] подключена к линиям PORTP[7…0] двунаправленного порта PORTP (рис. 5.16, а). В отличие от предыдущего примера, обмен данными между МК и контроллером дисплея происходит в двух направлениях. Поэтому в процессе взаимодействия с дисплеем МК многократно перепрограммирует регистр направления передачи DDRP, изменяя режим работы линий порта PORTP (ввод или вывод).
Для управления режимами обмена информацией с контроллером используются четыре дополнительных сигнала, которые формируются МК на линиях PORTDLC[3…0] порта PORTDLC (рис. 5.16, а). Назначение и краткое описание сигналов управления дисплеем приведено в таблице рис. 5.16, б. Там же показаны комбинации управляющих сигналов, которые следует использовать при обмене с дисплеем различными типами данных.

Рис. 5.17.Временные диаграммы обмена контроллера графического ЖК дисплея
Временные диаграммы обмена.Временные диаграммы обмена с контроллером управления графическим ЖК дисплеем приведены на рис. 5.17. Они аналогичны рассмотренным ранее диаграммам обмена с контроллером цифро-буквенного индикатора. Так же, как и в предыдущем случае, мы будем генерировать сигналы управления в соответствие с приведенной временной диаграммой, последовательно переключая линии порта PORTDLC в программе управления дисплеем.
Набор функций управления графическим ЖК дисплеем.Мы предлагаем Вашему вниманию набор функций на Си, которые могут быть использованы в других программах для эффективного управления графическим ЖК дисплеем. Для каждой функции приведено описание и исходный текст программы на Си. На рис. 5.18 показана структура программного обеспечения для управления графическим дисплеем, в которой отражены полный набор функций управления и их взаимосвязь. В одном из самостоятельных заданий к этой главе мы попросим Вас разработать блок-схемы алгоритмов для реализации каждой из перечисленных функций управления.

Рис. 5.18.Структура программного обеспечения графического ЖК дисплея
//---------------------------------------------------------------------
//filename: 2D_LCD.c содержит программный код для 14 функций управления
//графическим ЖК дисплеем
//---------------------------------------------------------------------
//Схема подключения дисплея AND1391ST к МК 68HC12
// PORTDLC[3] C/D
// PORTDLC[2] CE
// PORTDLC[1] RD
// PORTDLC[0] WR
// PORTP[7…0] D[7…0]
// вывод RESET дисплея AND1391ST через резистор 4,7 кОм к источнику питания
// вывод FS дисплея AND1391ST к общему выводу источника питания
// ------------------------------------------------------------------------
// Функция initialize_lcd производит начальную установку режимов
//графического дисплея
// ------------------------------------------------------------------------
void initialize_lcd(void) {
char temp = 0x00;
PORTDLC = 0xFF; //установить 1 на всех выходах порта: запрет всех
//действий с дисплеем
PORTDLC = PORTDLC & 0xEF; //сброс экрана, RESET=0
delay(2000); //задержка 2 мс
PORTDLC = 0x7F; //установить вывод RESET в 1
write(); //установить WR=0
command(0x80); //установить режим работы текстовый
data(0x00); //слово управления
data(0х10); //слово управления
command(0х40); //установить адрес начала текста
data(0х10); // слово управления
data(0x00); // слово управления
command(0х41); // установить область текста: 16 знаков
command(0x94); //выключить дисплей, курсор мигает
command(0хА7); //установить курсор 8×8 точек
data(0x01); // слово управления
data(0х01); // слово управления
command(0х21) ; //установить позицию курсора
}
// ----------------------------------------------------------------------------
// Функция read конфигурирует линии порта PORTP для ввода данных от контроллера
// дисплея.
// ----------------------------------------------------------------------------
void read() {
DDRP = 0х00; //порт PORTP на ввод
}
// ------------------------------------------------------------------------
// Функция Clearscreen производит очистку экрана дисплея посредством записи
//во все ячейки памяти буфера экрана кода символа " "
// ------------------------------------------------------------------------
void Clearscreen() {
int i,j;
Reset_cursor();
// выполнить для каждой строки (i), для каждого знакоместа в строке (j)
for(i=0; i<16; i++) for(j=0; j<16; j++) LCD_char(' ');
Reset_cursor();
}
// -------------------------------------------------------------------------
// Функция newline производит запись во все знакоместа одной код символа " "
// -------------------------------------------------------------------------
void newline() {
Интервал:
Закладка: