Лекция №8

Download Report

Transcript Лекция №8

Лекция 8
Проектирование устройств на
универсальных микроконтроллерах
Лектор: Люличева И.А.
1
Рассматриваются вопросы




Система команд и примеры программ
МК фирмы ATMEL
Интерфейс пользователя – типы
клавиатур, примеры подключения.
Интерфейс пользователя – типы
индикаторов
Подключение к МК системе через
стандартные интерфейсы.
2
Рекомендуемая литература
Стандартные семейства AVR:

tinyAVR




megaAVR





Флеш-память 8 Кб, SRAM 512 б, EEPROM 512 б
Число линий В/В 6-18 (общее количество выводов 8-32)
Ограниченный набор периферийных устройств
Флеш-память 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
Программатор AVR
МК Dallas Semiconductor


Контроллеры, производимые этой компанией, очень
быстрые, но дорогие. Продаются, как ни удивительно,
довольно хорошо. Их приобретают большей частью те,
кто занимается системами разграничения доступа
— им очень нравится, что у этих МК два независимых
последовательных порта. К тому же, у некоторых из
этих контроллеров 1 кбайт ОЗУ на кристалле, что
тоже очень нравится разработчикам.
Но Dallas — это не массовый контроллер, как PIC,
перед ним не ставится задача завалить им весь рынок,
контроллеры ценой от 8 до 30 долларов — это не
ширпотреб, а эксклюзив. Идут они только в
специальные разработки, где разработчикам не
хочется уходить от х51, но нужна повышенная
скорость, два последовательных порта и т. д.
Типы клавиатур




Отдельные кнопки (как в пейджере)
Цифровая клавиатура 3х4 (простой
телефон или калькулятор)
Цифро-буквенная клавиатура
(мобильный телефон)
Кодирующие типы клавиатур (в ПК –
на базе МК)
Пример подключения – одна
кнопка
Пример подключения – три
кнопки
Пример подключения
клавиатуры к PIC24
Пример подключения
клаиатуры к МК 51
Типы индикаторов






Промышленно выпускается огромное количество
моделей индикаторов, начиная от светодиодов и
оканчивая матричными дисплеями, наиболее часто
встречаются:
Светодиод – отображает 1 бит
7-сегментный индикатор – отображает 1 цифру
Линейка из нескольких 7-сегм. индикаторов
Одно- и дву-строчные матричные индикаторы со
встроенным контроллером
Многострочный дисплей, управляемый видеокартой.
Выбор индикаторов в среде
Proteus
8-разрядный АЦП на РIС12
Пример таймера на 4 7сегментных индикаторах
Измеритель напряжения на
МК
Цифровые часы
Пример подключения
двустрочного индикатора



AT90S2313 имеет маленькие EEPROM и RAM, и портов
ввода/вывода явно маловато, поэтому подключать его будем к
порту D по параллельному 4-х битному интерфейсу.
Кодовая таблица
контроллера Hitachi
соответствует ASCII
(Латиница и
специальные символы).
Есть возможность
запрограммировать
свои собственные 8
символов.
При отладке
пригодились
светодиоды на порту B,
оставшиеся от
светодиодной мигалки.
Кодовые таблицы

Буфер данных имеет больше ячеек, чем число
знакомест дисплея. Смещая окно индикатора
относительно буфера данных (см. систему команд),
можно отображать на дисплее различные области
буфера. У двустрочных индикаторов первые 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.
Вопросы для самоконтроля


Перечислите типы клавиатур, приведите пример
подключения матричной клавиатуры.
Перечислите типы индикаторов, приведите
пример подключения матричного индикатора.