Смекни!
smekni.com

Управление и информатика в технических системах и 230101 Вычислительные машины, комплексы, системы и сети. Екатеринбург 2006 (стр. 1 из 6)

Федеральное агентство по образованию

ГОУ ВПО «Уральский государственный технический университет – УПИ»

ПРОГРАММИРОВАНИЕ ВЗАИМОДЕЙСТВИЯ МИКРОКОНТРОЛЛЕРОВ 8051 С ОБЪЕКТАМИ УПРАВЛЕНИЯ

Методические указания к лабораторному практикуму по курсу “Микропроцессорные устройства систем управления” для студентов всех форм обучения специальностей 220201 -Управление и информатика в технических системах и 230101 – Вычислительные машины, комплексы, системы и сети.

Екатеринбург

2006


УДК 681.322

Составители : В.А.Добряк, В.П. Мокрецов

Научный редактор доц., канд. техн. наук Паутов В.И.

ПРОГРАММИРОВАНИЕ ВЗАИМОДЕЙСТВИЯ МИКРОКОНТРОЛЛЕРОВ 8051 С ОБЪЕКТАМИ УПРАВЛЕНИЯ

Методические указания к лабораторному практикуму по курсу “Микропроцессорные устройства систем управления” для студентов всех форм обучения специальностей 220201 -Управление и информатика в технических системах и 230101 – Вычислительные машины, комплексы, системы и сети./сост. В.А.Добряк, В.П.Мокрецов. Екатеринбург: ГОУ ВПО УГТУ – УПИ. 29с.

Методические указания предназначены для использования при выполнении лабораторного практикума и могут использоваться при курсовом проектировании. Содержат описание организации взаимодействия микроконтроллеров с объектами управления, контрольные вопросы, примеры программ на языке ассемблера, порядок выполнения домашнего и лабораторного заданий.

Библиогр.: 5 назв. Рис. 10. Прил. 1

Подготовлено кафедрой « Автоматика и управление в технических системах»

Ó ГОУ ВПО «Уральский государственный

технический университет – УПИ», 2006

ОГЛАВЛЕНИЕ

1. ЦЕЛЬ И СОДЕРЖАНИЕ РАБОТЫ............................................................ 4

2. ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ ...................................... 4

2.1. Изучение аппаратных средств....................................................................... 4

2.2. Изучение системы команд............................................................................. 4

2.3. Изучение типовых процедур взаимодействия микроконтроллера с объектами управления и подготовка программ ................................................. 5

2.4. Контрольные вопросы.................................................................................... 5

3. ВЗАИМОДЕЙСТВИЕ МИКРОКОНТРОЛЛЕРА С ОБЪЕКТАМИ

УПРАВЛЕНИЯ..................................................................................................... 7

3.1. Прерывания ..................................................................................................... 7

3.2. Ввод информации с датчиков......................................................................... 8

3.2.1. Опрос двоичного датчика. Ожидание события........................................ 8

3.2.2. Устранение дребезга контактов................................................................. 9

3.2.3. Подсчет числа импульсов .......................................................................... 9

3.2.4. Опрос группы двоичных датчиков .......................................................... 11

3.3. Реализация функций времени ..................................................................... 12

3.3.1. Программное формирование временной задержки ............................... 12

3.3.2. Формирование временной задержки таймером ..................................... 14

3.3.3. Измерение временных интервалов........................................................... 15

3.4. Вывод управляющих сигналов..................................................................... 16

3.4.1. Формирование статических сигналов...................................................... 16

3.4.2. Формирование импульсных сигналов ..................................................... 17

3.5. Работа с последовательным портом ........................................................... 17

3.6.Средства ProView для отладки взаимодействия с объектами управления……………………………………………………………………….18

4. ЛАБОРАТОРНЫЕ ЗАДАНИЯ.................................................................... 22

5. СОДЕРЖАНИЕ ОТЧЁТА ............................................................................ 23

БИБЛИОГРАФИЧЕСКИЙ СПИСОК........................................................... 23

Приложение. Система команд микроконтроллера К1816ВЕ51……………...24

1. ЦЕЛЬ И СОДЕРЖАНИЕ РАБОТЫ

Целью работы является изучение основ организации взаимодействия микроконтроллеров семейства 8051 Intel с объектами управления. Цель состоит также в изучения интегрированной среды ProView фирмы Franklin Software Inc., предназначенной для разработки программного обеспечения этого семейства [3-4]. Работа рассчитана на 4 - 8 часов домашней подготовки и 4 - 8 часов занятий в лаборатории в зависимости от количества выполняемых заданий.

При подготовке к работе изучаются основные приёмы программирования, направленные на организацию работы с различными объектами управления. Далее составляются программы на языке ассемблера, и разрабатывается методика их отладки. Перед началом лабораторной работы проводится коллоквиум. Студенты, выполнившие домашнее задание, а также успешно ответившие на поставленные вопросы, допускаются к лабораторной части работы. При выполнении лабораторного задания осуществляется ввод исходных текстов, трансляция и отладка программ. Затем оформляется и защищается отчёт с указанным ниже содержанием.

2. ЗАДАНИЯ ДЛЯ ДОМАШНЕЙ ПОДГОТОВКИ

2.1. Изучение аппаратных средств

Изучите аппаратные средства микроконтроллера Intel 8051 (К1816ВЕ51), предназначенные для взаимодействия с объектами управления [1 - 3]:

Параллельные порты P0 - P3. Альтернативные функции порта P3.

Регистры таймеров TH0, TL0 и TH1, TL1. Работа в режиме таймера и в режиме счётчика. Регистр режима таймера/счётчика TMOD, формат управляющего слова. Режимы работы таймера/счётчика. Регистр управления/статуса таймера TCON, функциональное назначение разрядов.

Буфер приёмопередатчика SBUF. Режимы работы последовательного порта.

Регистр управления приёмопередатчиком SCON, функциональное назначение разрядов. Установка скорости приёма/передачи.

Регистр управления мощностью PCON, функциональное назначение разрядов.

Система прерываний микроконтроллера. Регистр приоритетов прерываний IP, регистр маски прерываний IE.

2.2. Изучение системы команд

Изучите систему команд микроконтроллера с точки зрения поддержки взаимодействия с объектами управления [3, 4]:

Типы операндов и структура информационных связей. Символические имена регистров специальных функций и портов. Адресация битов в регистрах специальных функций, карта адресуемых битов. Команды работы с регистрами специальных функций.

2.3. Изучение типовых процедур взаимодействия микроконтроллера с

объектами управления и подготовка программ

Изучите раздел методических указаний “ВЗАИМОДЕЙСТВИЕ МИКРОКОНТРОЛЛЕРА С ОБЪЕКТАМИ УПРАВЛЕНИЯ”.

Для дальнейшей работы в лаборатории от Вас потребуется значительный объем домашней подготовки. Подготовьте к отладке следующие программы:

1. Подпрограмма обработки внешнего прерывания уровня 0 (SUBIN0).

2. Ожидание импульсного сигнала (WAITIMP).

3. Устранение дребезга контактов на основе счетчика (DBNC).

4. Подсчёт числа импульсов между двумя событиями (CNTEVNT).

5. Подсчёт числа импульсов за заданный промежуток времени на основе двух

таймеров/счётчиков (CNTTIME).

6. Ожидание заданного кода (WTCODE).

7. Опрос группы двоичных датчиков с передачей управления прикладным программам (GOCODE).

8. Опрос группы импульсных датчиков (KBRD).

9. Формирование временной задержки длительностью 100 мкс программным способом (DELAY).

10. Формирование временной задержки длительностью 1 с программным способом (DLY1).

11. Формирование временной задержки с помощью таймера (TIMER).

12. Измерение временных интервалов программным способом (MSCONT).

13. Измерение временных интервалов на основе таймера (MSTIMER).

14. Формирование статических сигналов (OUT).

15. Генерация бесконечной последовательности импульсов скважностью 2 на основе примеров из раздела 3.4.2.

16. Программа работы с последовательным портом (UART).

Внимание! В ниже приведенных примерах программ преднамеренно допущены ошибки. Ваша задача состоит в обнаружении и устранении этих ошибок на этапах изучения исходных текстов и отладки программ.

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

Тщательно продумайте методики отладки каждой из программ на осно-

ве средств ProView. Дополните программы командами и директивами, обеспечивающими тестирование и дальнейшую отладку в лаборатории.

Возможно, что при работе с ProView Вы заметите ошибки, допущенные разработчиком этой программы.

2.4. Контрольные вопросы

1. Перечислите характерные черты архитектуры однокристальных микроконтроллеров, направленные на взаимодействие с объектами управления.

2. Укажите назначение регистров специальных функций.

3. Перечислите альтернативные функции параллельных портов.

4. В каком состоянии находятся параллельные порты после формирования сигнала RST?

5. Может ли порт одновременно являться источником операнда и приемником результата операции?

6. С какой частотой инкрементируется содержимое таймера/счётчика при работе в качестве таймера?

7. Чему равна максимальная частота подсчёта входных сигналов при работе таймера/счётчика в режиме счётчика?

8. Охарактеризуйте режимы работы таймера-счётчика.

9. Охарактеризуйте режимы работы последовательного порта.

10. Для чего предназначен регистр SCON?

11. Как изменить скорость передачи данных через последовательный порт?

12. Для чего используется девятый бит?

13. Перечислите команды операций с битами.

14. Укажите, какие из регистров специальных функций допускают битовую адресацию.

15. Перечислите и охарактеризуйте типы прерываний. Как изменить приоритеты прерываний?

16. Как задать вектор прерывания в программе на языке ассемблера?

17. Почему в примере SUBINFO переход на обработчик прерывания производится по команде SJMP, а не CALL?

18. Как соотносится порядок сохранения содержимого регистров в стеке с порядком восстановления из стека в подпрограмме обработки прерывания?

19. Почему подпрограмма обработки прерывания завершается командой RETI, а не RET?

20. Как организовать процедуру ожидания события с помощью одной команды?