Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Текст мет_ ЛАБОРАТОРНЫЕ_стр.doc
Скачиваний:
3
Добавлен:
20.08.2019
Размер:
207.36 Кб
Скачать

Содержание

стр

Введение

3

Лабораторная работа №1

4

Лабораторная работа №2

6

Лабораторная работа №3

8

Лабораторная работа №4

9

Требования к выполнению и оформлению лабораторных работ

12

Интегрированная среда проектирования микропроцессорных

систем – UMPS

12

Общие сведения

12

Набор текста программы в редакторе UMPSa

13

Компиляция программы с помощью ассемблера UMPSа

14

Подключение внешних элементов к микроконтроллеру

15

Демонстрация работы системы в графической среде UMPSа

18

Библиографический список

19

Лабораторная работа №1: «Управление светодиодами».

Цель лабораторной работы заключается в разработке программы, которая управляет схемой, показанной на рис. 1 по следующему алгоритму. Светодиод VD1 горит до тех пор, пока не нажата кнопка SB1, а VD2 погашен. После ее нажатия загорается светодиод VD2 и горит в течение времени 0,25 с. Светодиод VD1 в это время погашен, кнопка недоступна. После этого вновь загорается светодиод VD1, а VD2 гаснет, кнопка блокируется на время 0,5 с. Далее все повторяется.

Рис. 1. Схема управления светодиодами

Блок - схема алгоритма программы показана на рис. 2.

Рис. 2. Блок-схема алгоритма программы

Ассемблерный текст программы, соответствующей блок-схеме алгоритма (рис. 2) представлен ниже.

org 00h

ajmp M0

org 20h

M0:

mov P0,#11111111B

mov P1,#00000001B

M1:

jb P0.0,M1

mov P1,#00000010B

lcall DEL

lcall DEL

mov P1,#00000001B

lcall DEL

lcall DEL

lcall DEL

lcall DEL

ljmp M1

DEL:

mov R1,#239

M3:

mov R2,#255

M4:

djnz R2,M4

djnz R1,M3

ret

end

Комментарии к программе.

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

  2. Инструкция для ассемблера org 00h указывает на то, что в ячейке ПЗУ с адресом 00h должна находиться команда, следующая за указанной инструкцией, то есть ajmp M0. С помощью указанной команды обеспечивается переход на начало основной программы.

  3. Команда контроллера mov P0,#11111111B предназначена для настройки порта Р0 на ввод. К этому порту подключена кнопка SB1.

  4. На основе команды jb P0.0,M1 (перейти на метку М1 если бит 0 порта Р0 равен 1) организован программный цикл опроса бита порта Р0, к которому подключена кнопка SB1.

  5. Команда lcall DEL обеспечивает вызов подпрограммы задержки DEL определенной длительности. Многократный вызов подпрограммы позволяет получить необходимую задержку в соответствии с условиями задачи.

  6. Команда djnz R2,M4 (декремент содержимого регистра R2 и переход на М4, если не ноль) позволяет организовать программную задержку времени.

Лабораторная работа №2 «Изучение механизма прерываний».

Цель лабораторной работы заключается в разработке программы, которая управляет схемой, показанной на рис. 1, по описанному ранее алгоритму: то есть светодиод VD1 горит, а VD2 погашен до тех пор, пока кнопка SB1 разомкнута. При ее нажатии светодиод VD2 загорается, а VD1 гаснет на время 0,25 с. После этого восстанавливается исходное состояние светодиодов и кнопка блокируется на время 0,5 с. Дополнительным условием является необходимость использования механизма прерывания. Для этого кнопку SB1 подключаем к входу внешнего прерывания INT0, которому соответствует вывод 2 порта Р3 как показано на рис. 3.

Рис. 3. Схема управления светодиодами с использованием

механизма прерывания

Блок - схема алгоритма программы показана на рис. 4.

Рис. 4. Блок - схема алгоритма программы

Ассемблерный текст программы, соответствующей блок-схеме алгоритма (рис. 4) представлен ниже:

org 00h

ajmp M0

org 03h

ajmp M5

org 20h

M0:

mov IE,#10000001B

mov TCON,#00000000B

mov P3,#11111111B

M1:

mov P1,#00000001B

ajmp M1

DEL:

mov R1,#239

M3:

mov R2,#255

M4:

djnz R2,M4

djnz R1,M3

ret

М5:

mov P1,#00000010B

lcall DEL

lcall DEL

mov P1,#00000001B

lcall DEL

lcall DEL

lcall DEL

lcall DEL

reti

end

Комментарии к программе.

  1. Команда пересылки числа в регистр управления прерываниями mov IE,#10000001B обеспечивает глобальное разрешение прерываний и дополнительно разрешает внешнее прерывание INT0.

  2. Команда пересылки числа в регистр mov TCON,#00000000B задает активный уровень сигнала (нулевой) на входе внешнего прерывания.

  3. При нажатии на кнопку SB1 на входе внешнего прерывания INT0 формируется сигнал логического нуля, и в счетчик команд микроконтроллера записывается адрес 03h (вектор прерывания INT0). В ячейке ПЗУ с этим адресом находится команда абсолютного перехода (ajmp M5) к подпрограмме обработки прерывания.

  4. Выход из подпрограммы обработки прерывания обеспечивается командой reti.

Лабораторная работа №3 «Исследование работы таймера».

Цель лабораторной работы заключается в разработке программы, которая управляет схемой, показанной на рис. 5 по следующему алгоритму. Светодиод VD1 мигает с частотой 2 - 4 Гц. Светодиод VD2 загорается при нажатом состоянии кнопки SB1 и гаснет при ее отпускании.

Рис. 5 Схема управления светодиодами

При разработке блок-схемы алгоритма следует учесть, что здесь решаются две задачи. Первая – опрос кнопки SВ1. Эту задачу будем называть фоновой. Вторая задача - управление светодиодом VD1. Ее будем называть оперативной. Для решения второй задачи используем таймер для формирования интервалов зажженного или потушенного состояния светодиода. Смену состояний светодиода VD1 будем осуществлять при формировании прерывания, возникающего при переполнении таймера. Блок-схема алгоритма программы представлена на рис. 6.

Рис. 6. Блок - схема алгоритма программы

Ассемблерный текст программы, соответствующей блок-схеме алгоритма (рис. 6) представлен ниже:

org 0

ajmp M1

org 0Bh

cpl P1.0

reti

org 020h

M1:

mov IE,#10000010B

mov TMOD,#00000001B

mov TCON,#00010000B

mov P1,#0

mov P0,#1

M2:

mov C,P0.0

cpl C

mov P1.1,C

ajmp M2

end

Комментарии к программе.

  1. Команда пересылки числа в регистр управления прерываниями mov IE,#10000010B обеспечивает глобальное разрешение прерываний и дополнительно разрешает внешнее прерывание от таймера ТО.

  2. Вектор прерывания от таймера ТО располагается по адресу 0Вh..

Лабораторная работа №4 «Изучение способа преобразования двоично-десятичного кода в семисегментный код».

Цель лабораторной работы заключается в разработке программы, которая иллюстрирует способ преобразования двоично-десятичного кода в код управления семисегментным индикатором, который подключен к порту Р1 как показано на рис. 7.

Рис. 7 Схема подключения семисегментного индикатора

Будем считать, что в выбранном регистре R3 последовательно формируются двоично-десятичные числа, соответствующие десятичному эквиваленту чисел от 0 до 9. Каждое число должно быть преобразовано в код семисегментного индикатора и передано в порт Р1, к которому подключен этот индикатор (рис. 1). При таком подключении соответствие двоично-десятичного кода семисегментному, вызывающему свечение определенных сегментов индикатора в виде десятичной цифры, показано в табл. 1.

Блок - схема алгоритма программы представлена на рис. 8.

Таблица 1

Десятичная

цифра

Двоично-десятичный

код

Семисегментный код

на выходе порта Р1

0

0000

3F h

1

0001

06 h

2

0010

5B h

3

0011

4F h

4

0100

66 h

5

0101

6D h

6

0110

7D h

7

0111

07 h

8

1000

7F h

9

1001

6F h

≥ 10

Запрещенные комбинации

Рис. 8. Блок - схема алгоритма программы

Ассемблерный текст программы, соответствующей блок-схеме алгоритма (рис. 8) представлен ниже:

org 00h

ajmp M0

org 20h

M0:

mov R3,#00h

M00:

сlr A

clr C

mov A,#09h

subb A,R3

jc M0

mov A,R3

anl A,#%00001111

mov DPTR,#TABL

movc A,@A+DPTR

mov P1,A

lcall DEL

inc R3

ljmp M00

DEL:

mov R1,#255

M1:

mov R2,#255

M2:

djnz R2,M2

djnz R1,M1

ret

TABL:

db 3Fh

db 06h

db 5Bh

db 4Fh

db 66h

db 6Dh

db 7Dh

db 07h

db 7Fh

db 6Fh

end

Комментарии к программе.

  1. С помощью директивы ассемблера DB обеспечивается занесение в память программ микроконтроллера константы или группы констант, формат которых равен байту. Эти константы располагаются в области ПЗУ начиная с адреса ТABL и представляют собой десятичные числа от 0 до 9, выраженные в семисегментном коде и показанные в табл. 1.

  2. Команда movc A,@A+DPTR позволяет загрузить в аккумулятор байт данных из памяти программ. Команда выполняет следующие действия: складывает содержимое аккумулятора с регистром DPTR, определяет ячейку памяти с адресом, равным полученной сумме, извлекает из нее константу и помещает ее в аккумулятор.

Требования к выполнению и оформлению лабораторных работ

При выполнении лабораторных работ необходимо поддерживаться следующей последовательности действий:

  1. Ознакомление с целью и содержанием лабораторной работы.

  2. Изучение блок-схемы алгоритма.

  3. Набор ассемблерного текста программы, с применением встроенного редактора системы проектирования UMPS.

  4. Компиляция программы с помощью ассемблера UMPSа.

  5. Исправление ошибок и повторная компиляция программы.

  6. Составление графического аналога принципиальной схемы лабораторной работы и подключение выводов внешних элементов.

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

  8. Составление отчета, который должен содержать следующие компоненты:

  • принципиальную схему;

  • блок-схему алгоритма;

  • ассемблерный текст программы;

  • листинг программы;

  • HEX-файл программы;

Интегрированная среда проектирования микропроцессорных

систем – UMPS

Общие сведения

UMPS -интегрированная среда проектирования микропроцессорных систем (Universal Microprocessor Program Simulator). Предназначен для разработки и программной отладки микроконтроллерных приложений. Используемые микроконтроллеры составляют достаточно обширный класс, однако для DEMO-версии, которая установлена на компьютерах, их количество существенно ограничено.

UMPS содержит редактор текста, с помощью которого можно печатать и редактировать программы на языке АССЕМБЛЕР, собственный транслятор (ассемблер) и программный симулятор. Наиболее полезна возможность моделирования работы микроконтроллера совместно с внешними устройствами, которые подключаются к портам микроконтроллера. Процесс моделирования иллюстрируется в графической среде UMPSа.