420 likes | 684 Views
Лекция 8. Проектирование устройств на универсальных микроконтроллерах. Лектор: Люличева И.А. Рассматриваются вопросы. Система команд и примеры программ МК фирмы ATMEL Интерфейс пользователя – типы клавиатур, примеры подключения. Интерфейс пользователя – типы индикаторов
E N D
Лекция 8 Проектирование устройств на универсальных микроконтроллерах Лектор: Люличева И.А.
Рассматриваются вопросы • Система команд и примеры программ МК фирмы ATMEL • Интерфейс пользователя – типы клавиатур, примеры подключения. • Интерфейс пользователя – типы индикаторов • Подключение к МК системе через стандартные интерфейсы.
Стандартные семейства AVR: • tinyAVR • Флеш-память 8 Кб, SRAM 512 б, EEPROM 512 б • Число линий В/В 6-18 (общее количество выводов 8-32) • Ограниченный набор периферийных устройств • megaAVR • Флеш-память 256 Кб, SRAM 8 Кб, EEPROM 4 Кб • Число линий В/В 23-86 (общее количество выводов 28-100) • Аппаратный умножитель • Расширенная система команд и периферийных устройств • XMEGA AVR • Флеш-память 384 Кб, SRAM 32 Кб, EEPROM 4 Кб • 4-ех канальный DMA-контроллер • Инновационная система обработки событий
Семейства AVR: • Микроконтроллеры адаптированные под конкретные приложения: • со встроенными интерфейсами USB, CAN, контроллером LCD; • со встроенным радио приёмо-передатчиком – серии ATAхxxx, ATAMxxx; • для управления электродвигателями – серия AT90PWMxxxx; • для автомобильной электроники; • для осветительной техники.
С или ассемблер? • Это вопрос в отношении программирования МК имеет совершенно иной оттенок, т.к инженер, работающий с МК, всегда в большей степени электронщик, чем программист: для него программа не самоцель, а средство заставить систему работать. • Особенности программирования МК делают, в общем, не слишком актуальным вопрос о том, как программист добивается своих целей. Правда, память программ в МК исчисляется килобайтами, а скорость работы их не очень-то велика, и потому тут на первый план нередко выходят соображения компактности кода или скорости выполнения процедур: нередко специально составляются библиотеки подпрограмм, оптимизированные либо по количеству команд, либо по времени выполнения - смотря, что важнее. • В общем случае, разумеется, программы, написанные на С, дают менее компактный код (даже для AVR, система команд которой специально оптимизирована для программирования на С), и это стоит учитывать.
Система команд микроконтроллеров AVR • весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает 16 бит. Большинство команд выполняется за 1 такт. Всё множество команд микроконтроллеров AVR можно разбить на несколько групп: • команды пересылки данных • команды арифметических операций • команды логических операций и команды сдвига • команды операции с битами • команды передачи управления • команды управления системой
Особенности АЛУ • Выполнять арифметико-логические операции и операции сдвига непосредственно над содержимым ячеек памяти нельзя. • Нельзя также записать константу или очистить содержимое ячейки памяти. • Система команд AVR позволяет лишь выполнять операции обмена данными между ячейками SRAM и оперативными регистрами. • Достоинством системы команд можно считать разнообразные режимы адресации ячеек памяти. Как видно из Таблицы 1 (см. группу команд передачи данных), • кроме прямой адресации имеются следующие режимы: косвенная, косвенная с пост-инкрементом, косвенная с пре-декрементом и косвенная со смещением.
команды пересылки данных • Основных мнемоник немного, однако допустимы различные очетания операндов • Mov reg, reg – прямая адресация • Ld, Ldi, Ldd – команды загрузки • St, Sti, Std - команды сохранения • Push, Pop – сохр/извлечь из стека • In, Out – ввод/вывод из портов
команды безусловной передачи управления
Регистр флагов • Бит С (carry) устанавливается, если во время выполнения операции был перенос из старшего разряда результата; • Бит Z (zero) устанавливается, если результат операции равен 0; • Бит N устанавливается, если MSB (Most Significant Bit - старший бит) результата равен 1 (правильно показывает знак результата, если не было переполнения разрядной сетки знакового числа); • Бит V устанавливается, если во время выполнения операции было переполнение разрядной сетки знакового результата; • Бит S = N + V (правильно показывает знак результата и при переполнении разрядной сетки знакового числа); • Бит H устанавливается, если во время выполнения операции был перенос из 3-го разряда результата. • Признаки результата операции могут быть затем использованы в программе для выполнения дальнейших арифметико-логических операций или команд условных переходов.
команды ветвления (условные переходы)
Примеры программ • del: ldi r18,50 ;задержка ~40 мкс при кварце 4 МГц • l4: dec r18 ; • brne l4 ; • ret • delay: ldi r17,9 ;задержка ~1,8 ms при кварце 4 МГц • l: ldi r18,255 ; • l1: dec r18 ; • brne l1 ; • dec r17 ; • brne l ; • ret
Примеры программ • initlcd_8515: ldi r16, (1<<sre)+(1<<srw) ;разрешение работы с внешней памятью • out mcucr, r16 ;и разрешение такта ожидания • ldi r25,$30 ;8-битный интерфейс, 1-строка, шрифт-5х7 точек • rcall icom_8515 • rcall del • ldi r25,12 ;включить дисплей, выключить курсор • rcall icom_8515 • rcall del • ldi r25,$30 ;8-битный интерфейс, 1-строка, шрифт-5х7 точек • rcall icom_8515 • rcall del ldi r25,$1 ;очистить дисплей и установить курсор в • rcall icom_8515 ; начальную позицию • rcall delay ; • ret
МК Dallas Semiconductor • Контроллеры, производимые этой компанией, очень быстрые, но дорогие. Продаются, как ни удивительно, довольно хорошо. Их приобретают большей частью те, кто занимается системами разграничения доступа — им очень нравится, что у этих МК два независимых последовательных порта. К тому же, у некоторых из этих контроллеров 1 кбайт ОЗУ на кристалле, что тоже очень нравится разработчикам. • Но Dallas — это не массовый контроллер, как PIC, перед ним не ставится задача завалить им весь рынок, контроллеры ценой от 8 до 30 долларов — это не ширпотреб, а эксклюзив. Идут они только в специальные разработки, где разработчикам не хочется уходить от х51, но нужна повышенная скорость, два последовательных порта и т. д.
Типы клавиатур • Отдельные кнопки (как в пейджере) • Цифровая клавиатура 3х4 (простой телефон или калькулятор) • Цифро-буквенная клавиатура (мобильный телефон) • Кодирующие типы клавиатур (в ПК – на базе МК)
Пример подключения – одна кнопка
Типы индикаторов • Промышленно выпускается огромное количество моделей индикаторов, начиная от светодиодов и оканчивая матричными дисплеями, наиболее часто встречаются: • Светодиод – отображает 1 бит • 7-сегментный индикатор – отображает 1 цифру • Линейка из нескольких 7-сегм. индикаторов • Одно- и дву-строчные матричные индикаторы со встроенным контроллером • Многострочный дисплей, управляемый видеокартой.
Пример таймера на 4 7-сегментных индикаторах
Кодовая таблица контроллера Hitachi соответствует ASCII (Латиница и специальные символы). Есть возможность запрограммировать свои собственные 8 символов. При отладке пригодились светодиоды на порту B, оставшиеся от светодиодной мигалки. AT90S2313 имеет маленькие EEPROM и RAM, и портов ввода/вывода явно маловато, поэтому подключать его будем к порту D по параллельному 4-х битному интерфейсу. Пример подключения двустрочного индикатора
Кодовые таблицы • Буфер данных имеет больше ячеек, чем число знакомест дисплея. Смещая окно индикатора относительно буфера данных (см. систему команд), можно отображать на дисплее различные области буфера. У двустрочных индикаторов первые 40 ячеек буфера данных, обычно, отображаются на верхней строке дисплея, а вторые 40 ячеек - на нижней строке. Сдвиг окна дисплея относительно буфера данных для верхней и нижней строк происходит синхронно. Курсор будет виден на индикаторе только в том случае, если он попал в зону видимости дисплея (и если предварительно была подана команда отображать курсор).
Кодовые таблицы • Кроме DDRAM, контроллер ЖКИ содержит еще один блок памяти - знакогенератор. Его "прошивка", то есть соответствие ASCII-кодов начертанию символов, обычно имеется в описании индикатора. • Знакогенератор состоит из двух частей. Основная его часть представляет собой ПЗУ (CGROM) и ее, следовательно, нельзя изменить. Вторая часть, в которой задаются начертания символов для первых 16-ти кодов таблицы знакогенератора, представляет собой перепрограммируемое ОЗУ(CGRAM). Имеется возможность задать начертание 8 символов.
Пример подключения Порядок инициализации дисплея: • включить питание (ждать 30 мкс) • 0b00000011 (ждать 40 мкс) • 0b00000011(ждать 40 мкс) • 0b00000011(ждать 40 мкс) • здесь происходит переход в четырехбитный режим(0b00000010)(ждать 40 мкс) • 0b00000010,0b00001000 (ждать 40 мкс) • выключить дисплей (0b00000000,0b00001000)(ждать 40 мкс) • установить направление сдвига курсора и разрешить сдвиг дисплея (0b00000000,0b00000110)(ждать 40 мкс) • включить индикатор и разрешить курсор, установить его тип* (0b00000000,0b00001111)(ждать 40 мкс) • очистить индикатор, курсор домой (0b00000000,0b00000001)(ждать 1500 мкс)
Пример просмотра состояния регистров
Цифровой осциллограф В наше время портативным цифровым осциллографом с экраном на ЖКИ никого не удивишь. Фирмы Fluke, Velleman, Metrix, Hameg, и др. предлагают разные моделиА ведь сделать самодельный осциллограф не сложно. Из крупных деталей потребуются МК, ЖКИ, 3 переменных резистора и кнопка (рис.8).Параметры осциллографа:диапазон входных напряжений 0…5 В;диапазон входных частот 0…33 кГц;количество отображаемых на ЖКИ аналоговых уровней - 8;максимальная частота дискретизации - 66 кГц;
LCD-дисплеи с контроллером HD44780 • LCD-дисплеи с контроллером HD44780 являются пожалуй одними из самых популярных символьных дисплеев для встраиваемых систем. Единственным их недостатком можно считать необходимость задействования для управления дисплеем шести I/O-линий микроконтроллера в 4-разрядном режиме либо одиннадцати I/O-линий в 8-разрядном режиме. Для сокращения числа управляющих линий можно использовать преобразователи последовательного кода в параллельный на основе стандартной логики.
LCD-дисплеи с контроллером HD44780 • Однако, управлять HD44780-совместимыми LCD-дисплеями можно даже по одной линии. Такую функцию гораздо удобнее возложить не на микросхемы жёсткой логики, а на программируемый микроконтроллер, сократив, таким образом, стоимость и занимаемую схемой на печатной плате площадь. • Этим целям в полной мере удовлетворяют микроконтроллеры Microchip серии PIC10F в миниатюрном корпусе SOT23–6.
Вопросы для самоконтроля • Перечислите типы клавиатур, приведите пример подключения матричной клавиатуры. • Перечислите типы индикаторов, приведите пример подключения матричного индикатора.