Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессоры.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
5 Мб
Скачать
☆

Программирование микроконтроллеров мк 8051 ( к1816ве51 и к1830ве51)

Программирование микроконтроллеров рекомендуется вести на Ассемблере и Си.

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

Характеристики наиболее популярных пакетов средств разработки программ приведены в ПРИЛОЖЕНИИ 3.1.

Система команд микроконтроллеров МК 8051 приведена в ПРИЛОЖЕНИИ 3.2.

Литература

1. Клочков Г. Л. Цифровые устройства и микропроцессоры: Учебник. – Воронеж:

ВИРЭ, 2005. – 320 с.

2. Фрунзе А. В. Микроконтроллеры фирмы «Филипс» семейства х51. Т.1 – М.: ООО

«ИД СКИМЕН», 2004. – 336 с. (с. 105)

3. Юров В. И. Assembler. Учебник для вузов. 2-е изд. – СПб.: Питер, 2011. – 637 с.

4. Белов А.В. Разработка устройств на микроконтроллерах AVR: Шагаем от «чайника» до профи. Книга + видеокурс. – СПб.: Наука и техника, 2013.

78

Тема 3.2 Микроконтроллеры серии avr фирмы Atmel.

3.2.1 Общая характеристика микроконтроллеров avr

Восьмиразрядные микроконтроллеры серии AVR строятся по единому принципу, выполнены на одном кристалле, имеют единую систему команд, изготавливаются по КМОП-технологии, имеют быстродействие до 1 миллиона операций в секунду при тактовой частоте 1 МГц, малые ток и мощность потребления. МК AVR имеют восьмиразрядные шину и память данных и 16-разряднкю память программ. В пределах серии имеются семейства «Tiny» с минимальными возможностями и минимальной стоимостью и семейство «Mega» с развитой архитектурой и большими возможностями. МК AVR выполняются в разных корпусах – PDIP, SOIC, TQFP, MLF (см. рисунок ) с числом выводов от 8 до 64.

Микроконтроллеры AVR содержат арифметико-логическое устройство АЛУ (процессор), память, порты ввода-вывода, периферийные устройства ПУ, 8-регистры общего назначения РОН, регистры ввода-вывода РВВ, интерфейсы последовательного ввода-вывода, счётчик команд РС и указатель стека SP. Регистры РОН могут объединяться попарно для обработки 16-разрядных чисел.

Счётчик команд – специальный внутренний регистр, в котором хранится адрес выполняемой команды. Указатель стека – это регистр, обычно 8-разрядный, предназначенный для организации стековой памяти. Стек – это часть ОЗУ, имеющих вход, одновременно являющийся и выходом.

79

3.2.2 Состав и организация микроконтроллеров avr

Память МК AVR.

1. Оперативная память данных, ОЗУ (SRAM) объёмом от 0 до 2 Кбайт. Некоторые МК AVR допускают подключение внешних ИМС ОЗУ объёмом до 64 Кбайт.

2. Flach-память программ объёмом до 64 Кбайт допускает до 10000 циклов записи/стирания при помощи программатора.

3. EEPROM - энергонезависимая память данных объёмом от 64 байт до 2 Кбайт, предназначена для долговременного хранения, например, настроек и режимов приёмопередатчика, которые восстанавливаются после включения.

EEPROM допускает до 100000 циклов записи/стирания при помощи программатора, такого же, как для записи управляющей программы. К этой памяти МК обращается при помощи регистров ввода-вывода. При её объёме меньше 256 байт таких регистров – три: данных EEDR, адреса EEAR и управления EECR. Если объём памяти больше 256 байт, МК имеет два регистра адреса: EEARH и EEARL

ОЗУ и Flach-память программ имеют своё адресное пространство с независимым доступом к ним, что соответствует Гарвардской архитектуре.

Порты ввода-вывода. Их число – от одного до семи. Каждый разряд порта соединён с одним выводом ИМС. Порты нумеруются буквами от А до G.

Для управления каждым портом используется три регистра ввода-вывода. Например, для управления портом В: PORT B – регистр вывода данных порта В; DDR B – регистр переключения направлений передачи порта В; PIN B – регистр ввода данных порта В. Для вывода данных с одного из разрядов порта РВ, в соответствующий разряд регистра DDR В записывается «1», затем байт данных записывается в регистр PORT, пос-

ле чего содержимое этого разряда появится на выводе ИМС. Для ввода данных, в соот-

ветствуюие разряды DDR В заносятся «0», в регистр PIN В записывается байт от внеш-него устройства, после чего МК читает нужные биты из байта, записанного в PIN В.

На рисунке 3.1.3 приведена упрощённая схема одного разряда порта ввода-вывода.

Отдельные разряды портов могут не использоваться, тогда процессор вместо них пишет нули. В таблице параметров МК AVR, в графе «Кол-во выв. И/О указано общее количество линий ввода-вывода. Порты ввода-вывода могут подключать к выводу ИМС внутренний резистор. Их включением или отключением управляет регистр PORT.

Регистры общего назначения РОН – предназначены для хранения промежуточных результатов вычислений. Каждый МК AVR имеет их 32, с именами (номерами) R0-R31 или (r0-r31, различия между строчными и прописными буквами не делаются). Все команды МК преобразования и перемещения данных используют РОН. Операндами являются: либо содержимое двух РОН, либо содержимое одного РОН и константа. Результат – также помещается в РОН. Регистры R0-R15 не могут использоваться командами обмена информацией с регистрами ввода вывода РВВ.

Регистры R0-R25 – восьмиразрядные, регистры R26-R31 – могут объединяться в 16-разрядные пары, названия которых: R26-R27 –Х; R28-R29 –Y; R30 - R31 – Z.

Регистры ввода-вывода РВВ – служат для связи АЛУ со встроенными периферийными устройствами микроконтроллера. Максимальное число РВВ – 64, реально – всегда меньше. У каждого МК – свой набор РВВ. РВВ нумеруются и имеют свой адрес в адресном пространстве от 0 до 3F, а также для удобства программиста

80

имеют имя. Например, имя регистра 1Е, предназначенного для управления ЕЕРPROM - EEAR.

Периферийные устройства – это устройства, периферийные к процессору (АЛУ), но находящиеся на кристалле – это встроенные таймеры-счётчики, генераторы ШИМ,

аналоговый компаратор, АЦП, ЦАП, последовательные интерфейсы.

Другие устройства: система прерываний, охранный таймер, система начального сброса, система контроля питающего напряжения.

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

Последовательный канал UART/USART. (UART – встроенный универсальный последовательный асинхронный приёмопередатчик; USART – универсальный синхрон-

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

Для обмена информацией используется две линии: RxD (для приёма) и TxD (для передачи. Посылки, которыми передаются данные, имеют длину до 9 бит и могут содержать разряд чётности. Скорость передачи задаётся внутренним программируемым делителем и может составлять: 2400, 4800, 9600, 14400, 19200, 28800 бит/с.

Последовательный периферийный интерфейс SPI предназначен для связи МК с периферийными устройствами, имеющими такой интерфейс (например ЦАП/АЦП) и для внутрисхемного программирования МК, то есть не вынимая МК из отлаживаемого устройства. При этом необходимо отключить другие сигналы на выводах SPI. Канал SPI использует три линии: MISO (ведущий вход/ведомый выход); MOSI (ведущий выход/ведомый вход) и SCK (тактовый сигнал).

Последовательный двухпроводный интерфейс TWI.

Интерфейс TWI - аналог шины I2С - позволяет объединить до 128 устройств и обмениваться с ними данными по одной двухпроводной шине. Он содержит линию тактового сигнала SCL и линию передачи данных SDA. Интерфейс TWI позволяет применять МК в системах управления телевизоров, радиоприёмников, дисплеев, памятью.

Дополнительные устройства.

Конфигурационные ячейки ёмкостью 1 – 3 байта – это настроечные элементы, используемые как программируемые переключатели режимов. Их называют Fuse Bits, «Фусами», Fuse-ячейками. При программировании фусов в них записывают «0».

Ячейки защиты информации МК AVR содержат от двух (LB1, LB2) до шести (дополнительно BLB02, BLB01, BLB12, BLB11) таких ячеек. При записи «0» в LB1 блокируется запись в РПЗУ и в фусы, при записи «0» и в LB2 невозможно узнать содержимое программы. Дополнительные ячейки ограничивают доступ к различным областям памяти программ.

Ячейки идентификации доступны только для чтения и содержат данные о производителе и модели МК.

Параметры микроконтроллеров AVR приведены в ПРИЛОЖЕНИИ 3.4

81