Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
228.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
1.41 Mб
Скачать

Память данных

Память данных функционально можно разделить на регистровую память и ОЗУ (основной массив ячеек памяти данных).

Память данных микроконтроллеров семейств Tiny, Classic и Mega разделена на три части: регистровая память, оперативная память (статическое ОЗУ) и энергонезависимое ЭСППЗУ (EEPROM) – см. рис. 14.2. Память данных младших моделей МК семейства Tiny состоит только из регистровой памяти и EEPROM (для констант) – см. рис. 16.1. В среде Algorithm Builder значения F_END, S_END, E_END устанавливаются автоматически (из встроенных таблиц) при выборе типа кристалла.

Регистровую память составляют регистры общего назначения (РОН), предназначенные для кратковременного хранения с минимальным временем доступа, и регистры ввода/вывода (РВВ), в число которых входят различные слу­жебные регистры (регистр управления микроконтроллером, регистр состоя­ния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера (включая порты ввода/вы­вода). Размер регистровой памяти фиксирован (хотя в разный моделях МК физически присутствует различное количество РВВ) и для большинства моделей составляет 96 байт – до адреса $005F. Модели ATmega162, ATmega64х, ATmega128х имеют дополнительные регистры ввода/вывода, поэтому пространство регистровой памяти у них расширено на 160 байт до адреса $00FF.

Учитывая наличие в адресном пространстве регистровой памяти, отсчет адресов СОЗУ начинается не с $0000, а с $0060 или $0100. В этом можно убедиться, открыв во время симуляции окно SRAM\map.

Шесть последних РОН объединены в пары так, как было показано на рис. 16.4. Они используются для косвенной адресации к ОЗУ, т.е. меняя их содержимое, можно с помощью одного и того же участка алгоритма адресоваться к разным ячейкам памяти. Символика косвенной адресации приведена в мануале к программе Algorithm Builder.

2. Порядок выполнения работы

Контрольные вопросы по допуску к работе

      1. Организация таймеров МК AVR. Их функции и возможности использования.

      2. Конфигурирование таймеров и управление ими.

      3. Какие способы можно использовать для организации задержки по таймеру?

2.1. Предварительное задание

2.1.1. Изучите сведения об организации памяти МК AVR. В случае надобности используйте файлы учебных материалов и лекции.

2.1.2. Изучите рабочее задание и подготовьтесь к его выполнению.

2.2. Рабочее задание

2.2.1. Прочитайте следующее задание и продумайте этапы его реализации.

Оператор через порт C загружает в ячейки ОЗУ контроллера с адресами 20Н...27Н (считая от начала ОЗУ) управляющие коды, которые затем необходимо передавать на объект управления через порт B микроконтроллера в соответствии с состоянием битов маски. Маска передачи управляющих кодов загружается в МК с линий порта A и интерпретируется так: "1" в бите PA.0 соответствует необходимости передачи в порт B управляющего кода из ячейки 20Н и удержания его в течение 400 микросекунд, "1" в бите PA.1 - из ячейки 21Н и т.д. В случае, если РА.х = 0, делается переход к следующему разряду без задержки. Коды выдаются последовательно, начиная с младшего адреса. Графически это задание проиллюстрировано на рис. 16.2.

    1. Составьте алгоритм для выполнения этого задания, придерживаясь принципа модульности (организуйте отдельные модули со своими вертексами: основной модуль, включая инициализацию, модуль ввода управляющих кодов, модуль ввода маски, модуль вывода кодов). Не используйте кириллицу в названии подпрограмм. Сначала изобразите только основной модуль с сеттерами, макрокомандами инициализации и именами подпрограмм. Сами подпрограммы изобразите в виде «заглушек», содержащих только NOP и Ret. Для удобства отладки и исследования охватите модули ввода маски и вывода кодов циклом. Выберите тип МК (AT90S4434).

    2. С охраните проект как LR16_1. Выполните симуляцию, установив в цикле точку наблюдения (брейкпойнт).

    3. Постепенно разрабатывайте алгоритмы модулей и проверяйте их симуляцией. Сохраняйте стадии разработки под новыми именами (для отчета).

    4. Выберите и продумайте режим отсчета заданного временного интервала, реализуйте его в виде подпрограммы с соответствующими настройками таймера.

    5. Выполните симуляцию проекта в целом. Разместив контрольные точки во всех модулях, убедитесь в правильной отработке задания. Сохраните алгоритм.

    6. Составьте отчет по перечисленным выше пунктам, включая скриншоты алгоритмов и экранов эмуляции. Выделите в пунктах отчета полученные навыки составления алгоритмов и навыки пользования программой, запишите отчет в файл под именем LR16 в той же папке, что и алгоритмы.

    7. Покажите результаты преподавателю, ответьте на его вопросы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]