42
Лекция 8 Проектирование устройств на универсальных микроконтроллерах 1 Лектор: Люличева И.А.

Лекция 8

  • Upload
    aquene

  • View
    46

  • Download
    0

Embed Size (px)

DESCRIPTION

Лекция 8. Проектирование устройств на универсальных микроконтроллерах. Лектор: Люличева И.А. Рассматриваются вопросы. Система команд и примеры программ МК фирмы ATMEL Интерфейс пользователя – типы клавиатур, примеры подключения. Интерфейс пользователя – типы индикаторов - PowerPoint PPT Presentation

Citation preview

Page 1: Лекция 8

Лекция 8Проектирование устройств на

универсальных микроконтроллерах

1

Лектор: Люличева И.А.

Page 2: Лекция 8

Рассматриваются вопросы

Система команд и примеры программ МК фирмы ATMEL

Интерфейс пользователя – типы клавиатур, примеры подключения.

Интерфейс пользователя – типы индикаторов

Подключение к МК системе через стандартные интерфейсы.

2

Page 3: Лекция 8

Рекомендуемая литература

Page 4: Лекция 8

Стандартные семейства 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-контроллер Инновационная система обработки событий

Page 5: Лекция 8
Page 6: Лекция 8

Семейства AVR: Микроконтроллеры адаптированные

под конкретные приложения: со встроенными интерфейсами USB,

CAN, контроллером LCD; со встроенным радио приёмо-

передатчиком – серии ATAхxxx, ATAMxxx;

для управления электродвигателями – серия AT90PWMxxxx;

для автомобильной электроники; для осветительной техники.

Page 7: Лекция 8

С или ассемблер?

Это вопрос в отношении программирования МК имеет совершенно иной оттенок, т.к инженер, работающий с МК, всегда в большей степени электронщик, чем программист: для него программа не самоцель, а средство заставить систему работать.

Особенности программирования МК делают, в общем, не слишком актуальным вопрос о том, как программист добивается своих целей. Правда, память программ в МК исчисляется килобайтами, а скорость работы их не очень-то велика, и потому тут на первый план нередко выходят соображения компактности кода или скорости выполнения процедур: нередко специально составляются библиотеки подпрограмм, оптимизированные либо по количеству команд, либо по времени выполнения - смотря, что важнее.

В общем случае, разумеется, программы, написанные на С, дают менее компактный код (даже для AVR, система команд которой специально оптимизирована для программирования на С), и это стоит учитывать.

Page 8: Лекция 8

Система команд микроконтроллеров AVR

весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций. Большинство команд занимает 16 бит. Большинство команд выполняется за 1 такт. Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:

команды пересылки данных команды арифметических операций команды логических операций и команды

сдвига команды операции с битами команды передачи управления команды управления системой

Page 9: Лекция 8

Особенности АЛУ Выполнять арифметико-логические операции и

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

Нельзя также записать константу или очистить содержимое ячейки памяти.

Система команд AVR позволяет лишь выполнять операции обмена данными между ячейками SRAM и оперативными регистрами.

Достоинством системы команд можно считать разнообразные режимы адресации ячеек памяти. Как видно из Таблицы 1 (см. группу команд передачи данных),

кроме прямой адресации имеются следующие режимы: косвенная, косвенная с пост-инкрементом, косвенная с пре-декрементом и косвенная со смещением.

Page 10: Лекция 8

команды пересылки данных Основных мнемоник немного,

однако допустимы различные очетания операндов

Mov reg, reg – прямая адресация Ld, Ldi, Ldd – команды загрузки St, Sti, Std - команды сохранения Push, Pop – сохр/извлечь из стека In, Out – ввод/вывод из портов

Page 11: Лекция 8

команды пересылки данных

Page 12: Лекция 8

команды безусловной передачи управления

Page 13: Лекция 8

Регистр флагов Бит С (carry) устанавливается, если во время выполнения

операции был перенос из старшего разряда результата; Бит Z (zero) устанавливается, если результат операции

равен 0; Бит N устанавливается, если MSB (Most Significant Bit -

старший бит) результата равен 1 (правильно показывает знак результата, если не было переполнения разрядной сетки знакового числа);

Бит V устанавливается, если во время выполнения операции было переполнение разрядной сетки знакового результата;

Бит S = N + V (правильно показывает знак результата и при переполнении разрядной сетки знакового числа);

Бит H устанавливается, если во время выполнения операции был перенос из 3-го разряда результата.

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

Page 14: Лекция 8

команды ветвления (условные переходы)

Page 15: Лекция 8

операции с битами

Page 16: Лекция 8

Примеры программ 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

Page 17: Лекция 8

Примеры программ 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

Page 18: Лекция 8

Программатор AVR

Page 19: Лекция 8

МК Dallas Semiconductor Контроллеры, производимые этой компанией,

очень быстрые, но дорогие. Продаются, как ни удивительно, довольно хорошо. Их приобретают большей частью те, кто занимается системами разграничения доступа — им очень нравится, что у этих МК два независимых последовательных порта. К тому же, у некоторых из этих контроллеров 1 кбайт ОЗУ на кристалле, что тоже очень нравится разработчикам.

Но Dallas — это не массовый контроллер, как PIC, перед ним не ставится задача завалить им весь рынок, контроллеры ценой от 8 до 30 долларов — это не ширпотреб, а эксклюзив. Идут они только в специальные разработки, где разработчикам не хочется уходить от х51, но нужна повышенная скорость, два последовательных порта и т. д.

Page 20: Лекция 8

Типы клавиатур

Отдельные кнопки (как в пейджере)

Цифровая клавиатура 3х4 (простой телефон или калькулятор)

Цифро-буквенная клавиатура (мобильный телефон)

Кодирующие типы клавиатур (в ПК – на базе МК)

Page 21: Лекция 8

Пример подключения – одна кнопка

Page 22: Лекция 8

Пример подключения – три кнопки

Page 23: Лекция 8

Пример подключения клавиатуры к PIC24

Page 24: Лекция 8

Пример подключения клаиатуры к МК 51

Page 25: Лекция 8

Типы индикаторов Промышленно выпускается огромное количество

моделей индикаторов, начиная от светодиодов и оканчивая матричными дисплеями, наиболее часто встречаются:

Светодиод – отображает 1 бит 7-сегментный индикатор – отображает 1 цифру Линейка из нескольких 7-сегм. индикаторов Одно- и дву-строчные матричные индикаторы со

встроенным контроллером Многострочный дисплей, управляемый

видеокартой.

Page 26: Лекция 8

Выбор индикаторов в среде Proteus

Page 27: Лекция 8

8-разрядный АЦП на РIС12

Page 28: Лекция 8

Пример таймера на 4 7-сегментных индикаторах

Page 29: Лекция 8

Измеритель напряжения на МК

Page 30: Лекция 8

Цифровые часы

Page 31: Лекция 8

Пример подключения двустрочного индикатора

Кодовая таблица контроллера Hitachi соответствует ASCII (Латиница и специальные символы). Есть возможность запрограммировать свои собственные 8 символов.

При отладке пригодились светодиоды на порту B, оставшиеся от светодиодной мигалки.

AT90S2313 имеет маленькие EEPROM и RAM, и портов ввода/вывода явно маловато, поэтому подключать его будем к порту D по параллельному 4-х битному интерфейсу.

Page 32: Лекция 8

Кодовые таблицы Буфер данных имеет больше ячеек, чем число

знакомест дисплея. Смещая окно индикатора относительно буфера данных (см. систему команд), можно отображать на дисплее различные области буфера. У двустрочных индикаторов первые 40 ячеек буфера данных, обычно, отображаются на верхней строке дисплея, а вторые 40 ячеек - на нижней строке. Сдвиг окна дисплея относительно буфера данных для верхней и нижней строк происходит синхронно. Курсор будет виден на индикаторе только в том случае, если он попал в зону видимости дисплея (и если предварительно была подана команда отображать курсор).

Page 33: Лекция 8

Кодовые таблицы Кроме DDRAM, контроллер ЖКИ содержит

еще один блок памяти - знакогенератор. Его "прошивка", то есть соответствие ASCII-кодов начертанию символов, обычно имеется в описании индикатора.

Знакогенератор состоит из двух частей. Основная его часть представляет собой ПЗУ (CGROM) и ее, следовательно, нельзя изменить. Вторая часть, в которой задаются начертания символов для первых 16-ти кодов таблицы знакогенератора, представляет собой перепрограммируемое ОЗУ(CGRAM). Имеется возможность задать начертание 8 символов.

Page 34: Лекция 8

Электрическая схема

Page 35: Лекция 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 мкс)

Page 36: Лекция 8

Пример подключения

Page 37: Лекция 8

Пример просмотра состояния регистров

Page 38: Лекция 8

Цифровой осциллограф

В наше время портативным цифровым осциллографом с экраном на ЖКИ никого не удивишь. Фирмы Fluke, Velleman, Metrix, Hameg, и др. предлагают разные моделиА ведь сделать самодельный осциллограф не сложно. Из крупных деталей потребуются МК, ЖКИ, 3 переменных резистора и кнопка (рис.8).

Параметры осциллографа:диапазон входных напряжений 0…5 В;диапазон входных частот 0…33 кГц;количество отображаемых на ЖКИ аналоговых уровней - 8;максимальная частота дискретизации - 66 кГц;

Page 39: Лекция 8
Page 40: Лекция 8

LCD-дисплеи с контроллером HD44780

LCD-дисплеи с контроллером HD44780 являются пожалуй одними из самых популярных символьных дисплеев для встраиваемых систем. Единственным их недостатком можно считать необходимость задействования для управления дисплеем шести I/O-линий микроконтроллера в 4-разрядном режиме либо одиннадцати I/O-линий в 8-разрядном режиме. Для сокращения числа управляющих линий можно использовать преобразователи последовательного кода в параллельный на основе стандартной логики.

Page 41: Лекция 8

LCD-дисплеи с контроллером HD44780

Однако, управлять HD44780-совместимыми LCD-дисплеями можно даже по одной линии. Такую функцию гораздо удобнее возложить не на микросхемы жёсткой логики, а на программируемый микроконтроллер, сократив, таким образом, стоимость и занимаемую схемой на печатной плате площадь.

Этим целям в полной мере удовлетворяют микроконтроллеры Microchip серии PIC10F в миниатюрном корпусе SOT23–6.

Page 42: Лекция 8

Вопросы для самоконтроля Вопросы для самоконтроля

Перечислите типы клавиатур, приведите пример подключения матричной клавиатуры.

Перечислите типы индикаторов, приведите пример подключения матричного индикатора.