Лабораторные МС 68HC11 (Описание микроконтроллера MC68HC11), страница 12
Описание файла
Файл "Лабораторные МС 68HC11" внутри архива находится в папке "Описание микроконтроллера MC68HC11". PDF-файл из архива "Описание микроконтроллера MC68HC11", который расположен в категории "". Всё это находится в предмете "радиоприёмные устройства" из 7 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "радиоприёмные устройства" в общих файлах.
Просмотр PDF-файла онлайн
Текст 12 страницы из PDF
Прерывания реального времениРабота системы прерываний реального времени (RTI) управляется состоянием битовRTR1 и RTR0 регистра PACTL (см. рис. 8.10).76543210$1026DDRA7PAENPAMODPEDGEDDRA3I4/O5RTR1RTR0Состояниепосле сброса00000000PACTLРис. 8.10. Регистр управления аккумулятором пульсаций PACTL.В зависимости от состояния этих битов меняется период возникновения прерыванияреального времени.
Для частоты внешнего кварцевого генератора 8 МГц это соответствиепредставлено в табл. 8.4.Таблица 8.4.RTR1 RTR0 Период RTI004.10 мс018.19 мс1016.38 мс1132.77 мсПосле истечении заданного периода RTI устанавливается флаг RTIF в регистре TMSK2,и если установлен флаг RTII регистра TFLG2, то происходит генерация прерывания.Следующая подпрограмма реализует инверсию состояния светодиодов через каждые 32цикла RTI. Система прерываний реального времени программируется на вывод запроса с периодичностью в 32.77 мс. После каждого запроса происходит увеличение содержимого дополнительного счетчика на 1, после 32 запросов производится инверсия состояния младшегобита порта B и таким образом светодиоды мигают с частотой 0.5 Гц.cpu6811tmsk2equ$24; регистр маскирования прерываний от; таймера 2tflg2equ$25; регистр флагов таймера 2pactlequ$26; регистр управления аккумулятором; пульсацийtmpequ$00; дополнительная ячейкаorg$00ebjmprtorg$d000; вектор прерывания по реальному; времени; переход на подпрограмму обслуживания; прерывания; начало основной программыСистема таймера.55Лабораторная работа №8ldyldaastaa#$1000#%00000011pactl,yldaastaa#%01000000tmsk2,y; установить период прерывания; реального времени 32.77 мс; разрешить прерывания по системе; реального времениcli; разрешить I-прерыванияbra*; замкнутый циклrtbset tflg2,y,#%01000000; сброс флага запроса; прерывания реального времениinctmp; увеличить на 1 содержимое; дополнительного счетчикаldaa tmp; оценка только младших 6 битanda #$1fbnert1; если равен нулю, тоldaa $1f04; инверсия состояния светодиодовeora #%11111111staa $1f04rt1rti; возвратЗапуск программы производится с адреса $D000.6.
Аккумулятор пульсацийАккумулятор пульсаций представляет собой 8-разрядный счетчик доступный для чтения и записи, который может работать в двух режимах (в зависимости от состояния битаPAMOD регистра PACTL): подсчет внешних событий (PAMOD = 1) или управление накоплением частоты E/64 (PAMOD = 0), где E - внутренняя частота синхронизации. Управление аккумулятором пульсаций производится по линии PA7 порта A, причем не имеет значения настроена она на ввод или на вывод (настройка на ввод или вывод осуществляется соответственно сбросом или установкой бита DDRA7 регистра PACTL).
Задание вида воздействия, управляющего аккумулятором производится с помощью битов PAMOD и PEDGEрегистра PACTL. Зависимость между состоянием этих битов и видом воздействия представлено в табл. 8.5.Таблица 8.5.PAMOD PEDGEВид воздействия00Отрицательный фронт на входе инкрементирует счетчик01Положительный фронт на входе инкрементирует счетчик10“0” на входе запрещает счет тактовых импульсов11“1” на входе запрещает счет тактовых импульсовРассмотрим программу управления яркостью горения светодиодов.
При этом прерывание по переполнению счетчика пульсаций используется для управления скважностью импульсов поступающих на светодиоды. Для организации длительности импульса используетсядополнительный счетчик. Скважность импульсов зависит от состояния младшей тетрады переключателей. Поскольку частота сигнала на светодиоде достаточно велика, то при изменении состояния переключателей меняется яркость горения светодиода PB1 (чем больше число, тем больше яркость). Счетчик пульсаций программируется на синхронизацию от внутренней частоты синхронизации E/64. Запуск программы осуществляется с адреса $D000.cpu6811portaequ$00; регистр данных порта Atmsk2equ$24; регистр маскирования прерываний от; таймера 2Система таймера.56Лабораторная работа №8; регистр флагов таймера 2; регистр управления счетчиком; пульсаций; регистр накопления аккумулятора; пульсаций; дополнительная ячейкаtflg2pactlequequ$25$26pacntequ$27tmpequ$00org$00cdjmppaoorgldyldaastaa$d000#$1000#%11100000pactl,yldaastaa#%00100000tmsk2,ybsetporta,y,#%10000000 ; разрешить накопление счетчика; пульсацийclibrapaobsetldaastaadecpao1pao2bneldaastaaсlrrtildaaandacmpabneldaastaarti*;;;;вектор прерывания по переполнениюсчетчика импульсовпереход на подпрограмму обслуживанияпрерывания; начало основной программы;;;;разрешить счетчик пульсаций(внутренняя синхронизация, разрешениесчета по PA7=1), настроить PA7 навывод; разрешить прерывания по переполнению; счетчика пульсаций; разрешить I-прерывания; замкнутый циклtflg2,y,#%00100000 ; сброс флага переполнения; счетчика#$f0pacnt,y; установить 16 циклов до переполненияtmp; уменьшить на 1 значение счетчика; переполненийpao1; если равен 0, то#$10tmp; инициализировать значение счетчика$1f04; погасить светодиоды; и возврат$1f03; иначе ввести состояние переключателей#$0f; выделить младшую тетрадуtmp; сравнить со счетчикомpao2; если совпадение, то#$ff$1f04; зажечь светодиоды; возвратСистема таймера.57Лабораторная работа №87.
Контрольные вопросы1. Какие системы микроконтроллера управляются внутренним таймером?2. Какой элемент лежит в основе таймера?3. Как производится тактирование счетчика таймера? Как управлять частотой тактирования?4. Что происходит при переполнении таймера?5.
Опишите функцию входной фиксации.6. Сколько существует каналов входной фиксации и с какими внешними линиями они связаны?7. Какие события вызывают активизацию каналов входной фиксации? Как задается вид активного перепада на входе линии входной фиксации?8. Опишите работу функции выходного сравнения.9. Сколько существует каналов выходного сравнения и с какими внешними линиями онисвязаны?10.Какие действия происходят при совпадении содержимого таймера и регистра выходногосравнения? Как запрограммировать эти действия?11.Опишите отличие линии выходного сравнения OC1.12.Какая информация хранится в регистрах OC1M и OC1D?13.Опишите работу системы прерывания реального времени (RTI)?14.Как задается период RTI?15.Опишите работу аккумулятора пульсаций.16.По какой внешней линии происходит управление аккумулятором пульсаций? Как вы думаете, какие отличия, относительно аккумулятора пульсаций, существуют при программировании этой линии на ввод и на вывод?17.Как установить вид управляющего воздействия на аккумулятор пульсаций? Перечислитевиды управляющего воздействия.18.Перечислите прерывания, которые могут возникнуть при работе систем, связанных с таймером.19.Перечислите и охарактеризуйте флаги регистров TFLG1 и TMSK1.20.Перечислите и охарактеризуйте флаги регистров TFLG2 и TMSK2.1.2.3.4.5.6.8.
ЗаданияНапишите программу, реализующую мигания светодиодов с периодом от 0.1 до 1.6 секунд,период должен задаваться состоянием младшей тетрады переключателей (дискрет для периода 0.1 с).Напишите программу, реализующую функцию входного захвата следующим образом: принажатии на кнопку PA0 состояние переключателей должно переписываться на светодиоды.Напишите программу, в которой частота мигания светодиодов (светодиоды должны мигать одновременно) увеличивалась бы линейно от 0.5 Гц до 16 Гц за 5 сек, после чего циклповторяется.Напишите программу, которая позволяла бы менять яркость свечения светодиодов посредством функции выходного сравнения.
Яркость должна управляться состояниеммладшей тетрады переключателей.Модифицируйте предыдущую программу так, чтобы старшая тетрада переключателейуправляла бы частотой мигания светодиодов (аналогично заданию 1), а младшая - яркостью.Напишите программу, заставляющую светиться светодиоды с разной яркостью. При этомяркость свечения должна линейно возрастать от светодиода B7 (погашен) к светодиоду B0(максимальная яркость).Система таймера.58Лабораторная работа №87. Используя функцию входного захвата реализуйте генератор случайных чисел в диапазоне0...255. Случайное число должно индицироваться на светодиодах после нажатия кнопкиPA0.8. Модифицируйте программу 3 так, чтобы яркость свечения первой тетрады светодиодовзависела от состояния первой тетрады переключателей, и соответственно яркость свечения второй - от второй тетрады переключателей.9. Модифицируйте программу 6 так, чтобы одновременно реализовывался эффект “бегущийогонь” (т.е.