Обмен информацией между персональным компьютером и микроконтроллером семейства MCS-51 фирмы Intel

Прием второго байта адреса программы пользователя из ПК аналогичен приему первого байта, с той лишь разницей, что его значение сохраняется в регистре DPH.

В случае возникновения ошибки подпрограмма завершает свою работу, оставляя без изменения содержимое регистра R4.

Подпрограмма запуска программы пользователя в режиме реального времени проверяет правильность принятия адреса по регистру R4. В случае возникновения ошибки передает в ПК код 0Fh. После чего возвращается в программу «Монитор»

Непосредственно перед запуском программы пользователя необходимо изменить рабочий БАНК памяти данных МК на БАНК 0.

Алгоритм программы приема двух байтов информации представлен на рисунке 7.

2.3.2.3 Подпрограмма запуска программы пользователя в пошаговом режиме

На этапе отладки прикладной программы очень удобным для разработчика оказывается режим пошагового (покомандного) исполнения программ. Этот режим можно организовать, используя систему прерываний микроконтроллера.

Внешний запрос прерывания не будет обслужен до тех пор, пока обслуживается прерывание с равным приоритетом. Этот запрос будет воспринят лишь после того, как будет выполнена одна команда после команды возврата из подпрограммы. Иными словами, однажды вызвав подпрограмму обслуживания прерывания, вызвать ее вновь невозможно до тех пор, пока хотя бы одна команда основной программы не будет исполнена.

Для использования этого свойства системы прерываний микроконтроллера можно запрограммировать одно из внешних прерываний (например, INT0) на обслуживание пошагового режима работы.

Рис. 8. Аппаратная реализация пошагового режима выполнения программы пользователя.

При реализации этого режима можно воспользоваться двумя способами:

    • На вывод INT0 подавать сигнал от кнопки «ШАГ», и микроконтроллер по сигналу INT0=0 вызовет подпрограмму обслуживания внешнего прерывания.
    • Предусмотреть возможность программного изменения состояния уровня сигнала на выводе INT0, используя один из свободных выводов порта Р2.

Второй способ является наиболее удобным, т.к. позволяет организовать пошаговый режим непосредственно на ПК. Кроме того первый способ требует больших материальных вложений для устранения дребезга контактов от кнопки «ШАГ».

После того, как адрес программы пользователя будет принят и проверен, подпрограмма выдаст активный сигнал на вход P3.2. По этому сигналу микроконтроллер перейдет в режим обработки прерывания INT0. До того, как будет выполнена первая команда в программе пользователя, основная программа должна выполнить две команды (выставить сигнал INT0=0 и запустить программу пользователя). Поэтому в подпрограмме обработки прерывания необходим счетчик пропущенных шагов. Этот счетчик можно будет использовать для выполнения блока команд в режиме пошагового исполнения программы пользователя.

Алгоритм запуска программы пользователя в пошаговом режиме представлен на рисунке 9.

Рис. 9. Алгоритм выполнения программы пользователя в пошаговом режиме.