Лабораторные МС 68HC11 (1086185), страница 8
Текст из файла (страница 8)
На аккумуляторе A реализован счетчик, увеличивающий свое значение на 1 через каждые 1/3 секунды. Значение счетчика меняется в диапазонеот 0 до 2, причем светодиоды горят только те 1/3 секунды, когда состояние счетчика равно 0или одну треть общего периода, составляющего 3 ( 1/3 с = 1 с. Задержка в 1/3 секунды реализована в цикле loop, который выполняется 51282 раз (это значение записывается в регистрY перед началом выполнения цикла). Тело цикла состоит из трех команд nop (выполняется втечение 2-х циклов), команды dey (4 цикла) и команды bne (3 цикла). Таким образом каждыйпроход цикла выполняется за 2 ( 3 + 4 + 3 = 13 циклов, или 13 x 0.5 мкс = 6.5 мкс.
Весь жецикл будет пройден за 51282 ( 6.5 мкс = 333333 мкс = 0.333333 с C 1/3 с.Запустите программу с адреса $D000. Попробуйте модифицировать частоту мигания искважность.Порты параллельного ввода/вывода.37Лабораторная работа №63. Контрольные вопросы1. Сколько параллельных портов ввода/вывода имеется у микроконтроллера MC68HC11E1?Перечислите их и те дополнительные функции, которые могут выполнять линии этихпортов.2. Что такое регистр данных параллельного порта? Как согласуется информация, записаннаяв регистре данных, и состояние соответствующих ему линий ввода/вывода?3.
Перечислите линии с фиксированным направлением обмена и двунаправленные линии.Каким образом задается направление обмена линии?4. В каких регистрах задается направление портов C и D?5. В каком регистре задается направление обмена линий 4 и 7 порта A?6. Что такое расширенный мультиплексный режим работы микроконтроллера? Какие портыввода/вывода используются для его реализации?7. Для чего используется внешняя магистраль адреса/данных? Каким образом она реализуется для микроконтроллера MC68HC11E1?8. Какой объем линейного адресного пространства может адресовать микроконтроллерMC68HC11E1?9. Объясните назначение микросхемы-эмулятора MC68HC24.10.В чем для программиста заключается разница при работе с портами B и C микроконтроллера и при работе с соответствующими портами эмулятора?11.Каким образом вычисляются адреса для регистров эмулятора?12.Опишите функционирование портов в режиме обычного параллельного ввода/вывода.13.Что такое параллельный обмен при поддержке сигналов квитирования? Какие параллельные порты MC68HC11E1 поддерживают этот обмен?14.Что такое режим простого стробируемого ввода/вывода? Как задействованы в этом режиме порты B и C MC68HC11E1?15.Опишите протокол обмена в режиме полной поддержки сигналами квитирования привводе информации.16.Опишите протокол обмена в режиме полной поддержки сигналами квитирования при выводе информации.1.2.3.4.5.6.4.
ЗаданияНаписать программу, которая в цикле выводит инвертированное состояние переключателей на светодиоды.Написать программу, которая складывает состояние старшей и младшей тетрады переключателей и выводит результат на светодиоды (в цикле).Написать программу, переводящую двоичное состояние трех младших переключателей влинейный код на светодиоды (т. е. если набрано число двоичное число 101, соответствующее десятичному 5, то должен загореться светодиод B5).Модифицировать предыдущую программу так, чтобы загорался не только светодиод, соответствующий коду на переключателях, но и все светодиоды с номером меньше данного(т.
е. для предыдущего примера должны будут загореться светодиоды B0, B1, B2, B3, B4 иB5).Написать программу - “генератор случайных чисел”. Работать программа должна следующим образом: в цикле инкрементируется состояние какой-либо ячейки памяти (с большой скоростью), по нажатию на кнопку PA0 текущее состояние этой ячейки выводится насветодиоды.Написать программу, реализующую эффект “бегущий огонь” на светодиодах (вначале зажигается один светодиод, через некоторое время он гаснет и зажигается соседний и т. д.).Направление и скорость перемещения выберете самостоятельно.Порты параллельного ввода/вывода.38Лабораторная работа №67.
Модифицировать программу бегущего огня следующим образом: кратковременно вспыхивает светодиод B7, через 0.5 с кратковременно вспыхивает светодиод B6 и т. д. Послевспыхивания светодиода B0 цикл повторяется.8. Написать программу, которая по нажатию на кнопку PA0 увеличивала бы на 1 двоичноечисло, отображаемое на светодиодах. Исходное число должно считываться вначале программы с переключателей.9. Написать программу, которая складывала бы два двоичных 8-разрядных числа и выводилабы результат на светодиоды. Работа программы должна производится следующим образом: первое число устанавливается на светодиодах, после чего нажимается клавиша PA0,далее устанавливается второе число и снова нажимается PA0, после чего выводится результат.10.Модифицируйте предыдущую программу так, чтобы можно было просмотреть старшийбит суммы. Он должен выводится на светодиод B0 (остальные должны быть погашены) понажатию на PA0.11.Модифицируйте программу 5.
для умножения двух 8-разрядных двоичных чисел. Приэтом результат - старшие и младшие 8 разрядов, должны чередоваться на светодиодах понажатию на PA0.12.Написать программу, которая должна мигать синхронно всеми светодиодами (со скважностью 2), причем частота мигания должна задаваться на младшей тетраде переключателей следующим образом: f=N, где f - частота мигания в герцах, а N - число, установленноена младшей тетраде переключателей. Состояние переключателей должно считываться вцикле в процессе работы программы.13.Написать программу “бегущий огонь”, скорость перемещения которого определялась быкак в предыдущей программе.14.Написать программу, в которой изменялась бы яркость свечения светодиодов (яркостьсвечения всех светодиодов должна быть одинакова), в зависимости от состояния младшейтетрады переключателей. Управление яркостью должно производиться путем управленияскважностью мигания. Частота мигания должна быть в пределах 25-100 Гц.
Значениескважности однозначно соответствует двоичному числу, установленному на младшей тетраде переключателей.15.Написать программу, которая в цикле плавно увеличивала бы яркость всех светодиодов домаксимума, после чего тушила бы их.16.Модифицировать предыдущую программу, чтобы после периода плавного увеличения яркости, следовал бы период плавного ее уменьшения.Порты параллельного ввода/вывода.39Лабораторная работа №7Лабораторная работа №7Прерывания.1. ВведениеВ данной работе изучается система прерываний микроконтроллера MC68HC11E1.2. Система прерываний.Микроконтроллер MC68HC11E1 обладает гибкой системой обработки прерываний иисключительных ситуаций.
Система обработки прерываний включает в себя ряд аппаратныхисточников (порты ввода/вывода, таймер, асинхронный и синхронный последовательныеинтерфейсы, внешние прерывания) и один программный (SWI). После возникновения запроса на прерывание микроконтроллер завершает выполнение текущей команды и передаетуправление по адресу, записанному в векторе прерывания, который соответствует источнику, сгенерировавшему запрос. В нормальных режимах работы (однокристальном и расширенном) вектора прерываний располагаются в фиксированной области памяти (см. табл.
7.1)и занимают по 2 байта. В специальных режимах работы (bootstrap и теста) таблица векторовпрерывания переносится в область ОЗУ (см. табл. 7.1); каждый вектор здесь занимает 3 байтаи в него должна быть записана команда перехода, а не адрес. Это отличие следует иметь ввиду при написании и отладке программ на модуле HC11EVB.Таблица 7.1. Вектора прерываний для нормальных и специальных режимов работы.Адрес вектора вАдрес перехода в Источник прерываниянормальном режи- специальном реме работыжиме работыFFCO, FFC1Зарезервировано.........FFD4, FFD5ЗарезервированоFFD6, FFD700С4Последовательный асинхронный интерфейс (SCI)FFD8, FFD900С7Последовательный синхронный интерфейс (SPI)FFDA, FFDB00CAАккумулятор пульсацийFFDC, FFDD00CDПереполнение аккумулятора пульсацийFFDE, FFDF00D0Переполнение таймераFFE0, FFE100D3Выходное сравнение 5FFE2, FFE300D6Выходное сравнение 4FFE4, FFE500D9Выходное сравнение 3FFE6, FFE700DCВыходное сравнение 2FFE8, FFE900DFВыходное сравнение 1FFEA, FFEB00E2Входной захват 3FFEC, FFED00E5Входной захват 2FFEE, FFEF00E8Входной захват 1FFF0, FFF100EBПрерывание реального времениFFF2, FFF300EEПрерывание IRQFFF4, FFF500F1Прерывание XIRQFFF6, FFF700F4Программное прерывание SWIFFF8, FFF900F7Неправильный код команды*FFFA, FFFB00FAСистема COP*FFFC, FFFD00FDСбой тактовой частоты*FFFE, FFFFBF40Сброс микроконтроллера (RESET)** Группа исключительных ситуацийПрерывания.40Лабораторная работа №7$103CСостояниепослесброса76543210RBOOT*SMOD*MDA*IRV*PSEL3PSEL2PSEL1PSEL0----0101HPRIO* Биты старшей тетрады, определяющей режим работы микроконтроллераРис.
7.1 Регистр высшего приоритета I-прерваний.PSEL30000000011111111PSEL20000111100001111Таблица 7.2. Определение источника с наибольшим приоритетом,в зависимости от состояния битов PSEL3-PSEL0 регистра HPRIO.PSEL1 PSEL0 Источник с наибольшим приоритетом прерывания00Переполнение таймера01Переполнение счетчика пульсаций10Счетчик пульсаций11SPI00SCI01Резерв (по умолчанию - IRQ)10IRQ11Прерывание реального времени00Входной захват 101Входной захват 210Входной захват 311Выходное сравнение 100Выходное сравнение 201Выходное сравнение 310Выходное сравнение 411Выходное сравнение 5При одновременном возникновении нескольких запросов обработка производится всоответствии со структурой приоритетов. Из аппаратных прерываний (программное прерывание SWI выполняется как команда и после начала выполнения никакие другие прерывания или исключительные ситуации, кроме RESET не могут прервать ее выполнение) высший приоритет имеет немаскируемое внешнее прерывание XIRQ, разрешаемое сбросом битаX в регистре условий CCR (установка этого бита может производиться только аппаратно при возникновении прерывания по XIRQ или по сигналу сброса RESET).