Смекни!
smekni.com

Разработка программной и аппаратной поддержки к методическим указаниям Программирование микроконтроллеров (стр. 6 из 18)

1.4.2. Световая индикация.

Очень часто вывод данных реализуются с помощью светодиодов LED (Light Emitting Diode), которые достаточно дешевы и легко подключаются к МК. Обычно для свечения светодиода требуется ток более 16 мА, что для большинства МК находится в диапазоне допустимых значений выходных токов. Следует помнить, что светодиод является диодом, пропуская ток только в одном направлении.

Типичная схема подключения светодиода к выводу МК показана на рис. 1.8. В этой схеме светодиоды будут светиться когда МК выдает сигнал «0» (низкое напряжение). Когда вывод работает в качестве входа данных или на него выводится «1», то светодиод будет выключен.

Резистор сопротивлением 220 Ом используется для ограничения тока, т.к. слишком большой ток может вывести из строя МК и светодиод. Некоторые МК содержат ограничители тока на выходных линиях, что устраняет потребность в ограничивающем резисторе. Но все же целесообразно, на всякий случай, включить этот резистор, чтобы гарантировать, что короткое замыкание на «землю» или напряжение питания Vcc, не выведет из строя МК.


Рис. 1.8. Подключение светодиода к микроконтроллеру.

Семи сегментный индикатор.

Вероятно самый простой вывод числовых десятичных и шестнадцатеричных данных – это использование семи сегментного индикатора (ССИ). Такие индикаторы были очень популярны в 70х годах, но в последствии их место заняли жидкокристаллические индикаторы (ЖКИ). Но светодиодные индикаторы до сих пор являются полезными приборами, которые могут быть включены в схему без больших усилий для создания программного обеспечения. Включая определенные светодиоды (зажигая сегменты), можно выводить десятичные числа (см. рис. 1.9).

Каждый светодиод в индикаторе имеет свой буквенный идентификатор (A, B, C, D, E, F, G), и одна из ножек светодиода подключена к соответствующему внешнему выводу. Вторые ножки всех светодиодов соединены вместе и подключены к общему выводу. Этот общий вывод определяет тип индикатора: с общим катодом или с общим анодом.

Подключение индикатора к МК осуществляется весьма просто: обычно индикатор подключают как семь или восемь (если используется десятичная точка) независимых светодиодов. Наиболее важной частью работы при подключении к МК нескольких ССИ является назначения линий вводе вывода для каждого светодиода. Решение этой задачи в начале выполнения проекта упростит вам монтаж разводки и отладку устройств в дальнейшем. Типичный способ подключения нескольких индикаторов состоит в том, чтобы включить их параллельно и затем управлять протеканием тока через общие выводы отдельных индикаторов. Так как величина этого тока обычно превышает допустимое значение выходного тока МК, то для управления оком включается дополнительные транзисторы, которые выбирают, какой из индикаторов будет находиться в активном состоянии.


Рис. 1.9. Семи сегментный индикатор.

На рис. 1.10 показано подключение к МК четырех ССИ. В этой схеме МК выдает данные для индикации, последовательно переходя от одного индикатора к другому. Каждая цифра будет высвечиваться в течении очень короткого интервала времени. Это обычно выполняется с помощью подпрограммы обслуживания прерываний таймера. Чтобы избежать мерцания изображения, подпрограмма должна выполняться со скоростью, обеспечивающий включение индикатора, по крайней мере, 50 раз в секунду. Чем больше цифр, тем чаще должны следовать прерывания от таймера. Например, при использовании восьми ССИ цифры должны выводиться со скоростью 400 раз в секунду.


Рис. 1.10. Подключение к МК четырех ССИ.

1.4.3. Ввод с матричной клавиатуры.

Во многих приложениях требуется производить ввод данных с клавиатуры. Это может быть реализовано при помощи отдельных кнопок, но такой подход слишком расточителен с точки зрения использования линий ввода/вывода МК. Лучшим решением является использование матричной клавиатуры, которая представляет собой набор ключей, объединенных в ряды и столбцы (см. рис. 1.11).


Рис. 1.11. Подключение к МК матричной клавиатуры.

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

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


2. ОСОБЕННОСТИ ПОСТРОЕНИЯ И ФУНКЦИОНИРОВАНИЯ МИКРОКОНТРОЛЛЕРОВ ФИРМЫ ATMEL СЕМЕЙСТВА AVR

2.1. Архитектура микропроцессорного ядра AVR-микроконтроллеров

Архитектура AVR была оптимизирована так, чтобы соединить достоинства Гарвардской и Принстонской (Фон Неймана) архитектуры для достижения очень быстрого и эффективного выполнения программ. Такая организация обеспечивает высокую эффективность процессора при обработке данных.

Основной идеей всех RISC (Reduced Instruction Set Computer), как известно, является увеличение быстродействия за счет сокращения количества операций обмена с памятью программ. Для этого каждую команду стремятся уместить в одну ячейку памяти программ. При ограниченной разрядности ячейки памяти это неизбежно приводит к сокращению набора команд микропроцессора.

У AVR-микроконтроллеров в соответствии с этим принципом практически все команды (исключая те, у которых одним из операндов является 16-разрядный адрес) также упакованы в одну ячейку памяти программ. Но сделать это удалось не за счет сокращения количества команд процессора, а путем расширения ячейки памяти программ до 16 разрядов. Такое решение является причиной богатства системы команд AVR по сравнению с другими RISC-микроконтроллерами.

Организация памяти AVR выполнена по схеме Гарвардского типа, в которой разделены не только адресные пространства памяти программ и памяти данных, но также и шины доступа к ним. Для более углубленного понимания архитектуры приведем две схемы (см. рис. 2.1 и 2.2).

Вся программная память AVR-микроконтроллеров выполнена по технологии FLASH и размещена на кристалле. Она представляет собой последовательность 16-разрядных ячеек и имеет емкость от 512 слов до 64K слов в зависимости от типа кристалла.

Разделение шин доступа (рис. 2.2.) к FLASH памяти и SRAM памяти дает возможность иметь шины данных для памяти данных и памяти программ различной разрядности, а также использовать технологию конвейеризации. Конвейеризация заключается в том, что во время исполнения текущей команды программный код следующей уже выбирается из памяти и дешифрируется.


Рис. 2.1. Архитектура AVR-микроконтроллеров.


Рис. 2.2. Структурная схема архитектуры процессора семейства AVR.

Для сравнения вспомним, что у микроконтроллеров семейства MCS-51 выборка кода команды и ее исполнение осуществляются последовательно, что занимает один машинный цикл, который длится 12 периодов кварцевого резонатора.

В случае использования конвейера приведенную длительность машинного цикла можно сократить. Например, у PIC-микроконтроллеров фирмы Microchip за счет использования конвейера удалось уменьшить длительность машинного цикла до 4 периодов кварцевого резонатора. Длительность же машинного цикла AVR составляет один период кварцевого резонатора. Таким образом, AVR способны обеспечить заданную производительность при более низкой тактовой частоте. Именно эта особенность архитектуры и позволяет AVR-микроконтроллерам иметь наилучшее соотношение энергопотребление/производительность, так как потребление КМОП микросхем, как известно, определяется их рабочей частотой [9,11].

Программная модель AVR и система команд.

На рисунке 2.3 изображена программная модель AVR-микроконтроллеров, которая представляет собой диаграмму программно доступных ресурсов AVR. Центральным блоком на этой диаграмме является регистровый файл из 32 оперативных регистров (R0-R31) или как их обычно называют регистры общего назначения (РОН). Все РОН непосредственно доступны АЛУ. Старшие регистры (см. рис. 2.4.) объединены парами и образуют три 16-разрядных регистра, предназначенных для косвенной адресации ячеек памяти (AVR без SRAM имеют только один 16-битный регистр Z).