|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Работа МК51 в пошаговом режимеНа этапе отладки прикладной программы в прототипе МК-системы очень удобным для разработчика оказывается режим пошагового (покомандного) исполнения программы. Система прерываний МК51 позволяет реализовать этот режим работы путем использования нескольких дополнительных команд. Как было описано ранее (см. §3.6), внешний запрос прерывания не будет обслужен до тех пор, пока обслуживается прерывание с равным приоритетом. Этот запрос будет воспринят лишь после того, как одна команда после команды RETI будет выполнена. Иными словами, однажды вызвав подпрограмму обслуживания прерывания, вызвать ее вновь невозможно до тех пор, пока хотя бы одна команда основной программы не будет исполнена. Использовать это свойство системы прерываний МК51 для реализации пошагового режима можно следующим образом: одно из внешних прерываний, например INT0 (вывод Р3.2 микроконтроллера), запрограммировать для представления запроса уровнем сигнала (Т0 = 0), а подпрограмма обслуживания этого прерывания должна заканчиваться последовательностью команд.
(Здесь символом # обозначено текущее содержимое счетчика команд). Теперь если на вывод INT0 подавать сигнал от клавиши ШАГ отладочного модуля системы, то МК51 по сигналу INT0 =0 вызовет подпрограмму обслуживания внешнего прерывания 0 и будет в ней находиться до тех пор, пока не обнаружит на входе INT0 новый импульс (переход из 0 в 1 и снова в 0). По команде RETI произойдет возврат в основную программу, выполнение в ней одной команды и немедленный вызов подпрограммы обслуживания внешнего прерывания 0. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.) |