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

Подпрограмма приема одного байта данных ожидает прихода информации, проверяет правильность данных и заносит принятый байт в регистр R0. Если данные были приняты не верно, то подпрограмма приема одного байта данных заносит в регистр R4 нулевое значение.

В случае не верно принятого кода операции микроконтроллер предлагает ПК повторно передать команду.

Рис. 5. Алгоритм декодирования кода операции в программе «Монитор»

После выполнения выбранной подпрограммы, программа «Монитор» снова переходит к режиму ожидания очередного кода операции.

Алгоритм выбора подпрограммы показан на рисунке 5.

В программе «Монитор» зарезервированы следующие коды операций:

    • 01h - подпрограмма 1 - подпрограмма запуска программы пользователя в режиме реального времени;
    • 02h - подпрограмма 2 - подпрограмма запуска программы пользователя в пошаговом режиме;
    • 03h - подпрограмма 3 - подпрограмма записи программы пользователя в память программ МК;
    • 04h - подпрограмма 4 - подпрограмма записи информации в программно — доступные узлы МК;
    • 05h - подпрограмма 5 - подпрограмма чтения из памяти программ МК;
    • 06h - подпрограмма 6 - подпрограмма чтения программно — доступных узлов МК;
    • другие - подпрограмма 7 - зарезервированные коды операций для запуска подпрограмм пользователя.

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

Перед запуском программы пользователя, микроконтроллер принимает из ПК адрес начала программы и сохраняет его в регистре DPTR.

Для приема адреса используется подпрограмма приема двух байтов информации.

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

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

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

Для приема байта информации, подпрограмма использует алгоритм приема одного байта данных. Ошибка приема проверяется по содержимому регистра R4.

Значение первого принятого байта сохраняется в регистре DPL.