Upload
aquene
View
46
Download
0
Embed Size (px)
DESCRIPTION
Лекция 8. Проектирование устройств на универсальных микроконтроллерах. Лектор: Люличева И.А. Рассматриваются вопросы. Система команд и примеры программ МК фирмы ATMEL Интерфейс пользователя – типы клавиатур, примеры подключения. Интерфейс пользователя – типы индикаторов - PowerPoint PPT Presentation
Citation preview
Лекция 8Проектирование устройств на
универсальных микроконтроллерах
1
Лектор: Люличева И.А.
Рассматриваются вопросы
Система команд и примеры программ МК фирмы ATMEL
Интерфейс пользователя – типы клавиатур, примеры подключения.
Интерфейс пользователя – типы индикаторов
Подключение к МК системе через стандартные интерфейсы.
2
Рекомендуемая литература
Стандартные семейства 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
Программатор AVR
МК Dallas Semiconductor Контроллеры, производимые этой компанией,
очень быстрые, но дорогие. Продаются, как ни удивительно, довольно хорошо. Их приобретают большей частью те, кто занимается системами разграничения доступа — им очень нравится, что у этих МК два независимых последовательных порта. К тому же, у некоторых из этих контроллеров 1 кбайт ОЗУ на кристалле, что тоже очень нравится разработчикам.
Но Dallas — это не массовый контроллер, как PIC, перед ним не ставится задача завалить им весь рынок, контроллеры ценой от 8 до 30 долларов — это не ширпотреб, а эксклюзив. Идут они только в специальные разработки, где разработчикам не хочется уходить от х51, но нужна повышенная скорость, два последовательных порта и т. д.
Типы клавиатур
Отдельные кнопки (как в пейджере)
Цифровая клавиатура 3х4 (простой телефон или калькулятор)
Цифро-буквенная клавиатура (мобильный телефон)
Кодирующие типы клавиатур (в ПК – на базе МК)
Пример подключения – одна кнопка
Пример подключения – три кнопки
Пример подключения клавиатуры к PIC24
Пример подключения клаиатуры к МК 51
Типы индикаторов Промышленно выпускается огромное количество
моделей индикаторов, начиная от светодиодов и оканчивая матричными дисплеями, наиболее часто встречаются:
Светодиод – отображает 1 бит 7-сегментный индикатор – отображает 1 цифру Линейка из нескольких 7-сегм. индикаторов Одно- и дву-строчные матричные индикаторы со
встроенным контроллером Многострочный дисплей, управляемый
видеокартой.
Выбор индикаторов в среде Proteus
8-разрядный АЦП на РIС12
Пример таймера на 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.
Вопросы для самоконтроля Вопросы для самоконтроля
Перечислите типы клавиатур, приведите пример подключения матричной клавиатуры.
Перечислите типы индикаторов, приведите пример подключения матричного индикатора.