HAI-0658 (664177), страница 3

Файл №664177 HAI-0658 (Организация обмена информацией между микроконтроллером семейства MCS-51 фирмы Intel и персональным компьютером) 3 страницаHAI-0658 (664177) страница 32016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

При записи программы пользователя в память программ, обращение к ОЗУ осуществляется как к памяти данных. Во время работы программы, как к памяти программ.



Рис. 3. Схема подключения внешней памяти программ к микроконтроллеру.

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

2.3 Программное сопряжение микроконтроллера и ПК

2.3.1 Начальная установка MCS-51

Инициализация (сброс) микросхемы осуществляется подачей сигнала RST (высокий уровень напряжения) при подключенном кварце. Вход RST – внутренний триггер Шмидта. Состояние RST проверяется в фазе S5P2 каждого машинного цикла. Пока уровень RST высокий, ALE и PME тоже имеют высокий уровень. Их установка происходит после установки «0» на RST. Внутренний алгоритм при подаче сигнала «СБРОС» производит следующие действия:

  • устанавливает счетчик команд и все регистры специальных функций, кроме портов – защелок Р0 – Р3, указателя стека и регистра SBUF в ноль;

  • указатель стека принимает значение равное 07Н;

  • запрещает все источники прерываний, работу таймеров – счетчиков и последовательного порта;

  • выбирает БАНК 0 памяти данных, подготавливает порты Р0 – Р3 для приема данных и определяет выводы ALE и PME, как входы для внешней синхронизации;

  • в регистрах специальных функций PCON, IP и IE резервные биты принимают случайные значения;

  • устанавливает фиксаторы – защелки портов Р0 – Р3 в «1».

Сигнал RST не влияет на внутреннюю память данных микроконтроллера. После включения питания содержимое ячеек внутренней памяти данных принимает случайные значения.

2.3.2 Программное обеспечение организации обмена информацией между МК и ПК

2.3.2.1 Программа «Монитор»

Как уже отмечалось, программное обеспечение организации обмена информацией между микроконтроллером и ПК должно обеспечивать:

  • запись программы пользователя в память программ МК;

  • запись информации в программно – доступные узлы МК;

  • чтение информации из памяти программ МК;

  • чтение информации из программно – доступных узлов МК;

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

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

Все эти функции выполняет программ «Монитор».

В начале работы программы «Монитор» происходит начальная установка. Эту установка должна произвести следующие действия:

  • выбрать БАНК 2 памяти данных микроконтроллера, для хранения временных переменных, необходимых для работы программы «Монитор»;

  • установить значение управляющего бита SMOD в регистре специальных функций в 1;

  • выдать сообщение ПК о начале работы программы «Монитор».



Рис. 4. Алгоритм программы «Монитор»

Программа «Монитор» принимает от ПК код выполняемой операции, декодирует его и запускает соответствующую подпрограмму.

Подпрограмма приема одного байта данных ожидает прихода информации, проверяет правильность данных и заносит принятый байт в регистр 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.

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

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

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

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

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

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

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

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

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



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

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

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

  • Предусмотреть возможность программного изменения состояния уровня сигнала на выводе INT0, используя один из свободных выводов порта Р2.

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

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

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



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

Подпрограмма обработки прерывания INT0 аналогична программе «Монитор». В начале программы выполняется первоначальная установка:

  • сохраняется содержимое аккумулятора, слова состояния программы и регистра DPTR в стеке;

  • устанавливается БАНК 2, как активный банк памяти данных микроконтроллера;

  • в регистр R4 записывается количество допустимых ошибок.

После выполнения первоначальной установки, микроконтроллер проверяет содержимое регистра R3. Этот регистр выполняет роль счетчика пропущенных шагов программы. Если счетчик не равен нулю, то подпрограмма восстанавливает содержимое аккумулятора, слова состояния программы, DPTR и выходит из режима обработки прерывания, для выполнения следующего шага программы пользователя.

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



Рис. 10. Алгоритм программы обработки прерывания INT0.

Если счетчик был равен нулю, тогда микроконтроллер переходит в режим приема кода операции от ПК.

Алгоритм дешифрации кода операции в программе обработки прерывания INT0 аналогичен алгоритму дешифрации кода операции в программе «Монитор». Здесь предусмотрены следующие коды операций:

  • 01h - чтение памяти программ МК;

  • 02h - запись информации в программно – доступные узлы МК;

  • 03h - запись в память программ МК;

  • 04h - выдача кода следующей команды;

  • 05h - выполнение блока команд программы пользователя;

  • 06h - выполнение программы в режиме реального времени;

  • 07h - останов программы;

  • 08h - выполнение следующего шага программы;

  • другие выполнение программ пользователя.

Большая часть подпрограмм, выбираемых пользователем в пошаговом режиме, аналогична подпрограммам, выбираемым в программе «Монитор».

Если значение регистра R5, при выходе из подпрограммы будет нулевым, то будет выполнен следующий шаг основной программы.

Для выполнения останова программы, достаточно перевести состояние сигнала на выходе P2.5 в нулевое состояние и в стеке подменить адрес следующей команды на адрес начала программы «Монитор».

Для того чтобы перевести программу пользователя из пошагового режима, в выполнение программы в режиме реального времени необходимо установить состояние сигнала P2.5 в нулевое состояние.

Алгоритм декодирования кода операции представлен на рисунке 11.



Характеристики

Тип файла
Документ
Размер
1,17 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов реферата

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6710
Авторов
на СтудИзбе
287
Средний доход
с одного платного файла
Обучение Подробнее