Содержание
|
стр |
Введение |
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
Комментарии к программе.
При написании ассемблерного текста следует выделять поле меток, что требуется при отладке в симуляторе UMPS.
Инструкция для ассемблера org 00h указывает на то, что в ячейке ПЗУ с адресом 00h должна находиться команда, следующая за указанной инструкцией, то есть ajmp M0. С помощью указанной команды обеспечивается переход на начало основной программы.
Команда контроллера mov P0,#11111111B предназначена для настройки порта Р0 на ввод. К этому порту подключена кнопка SB1.
На основе команды jb P0.0,M1 (перейти на метку М1 если бит 0 порта Р0 равен 1) организован программный цикл опроса бита порта Р0, к которому подключена кнопка SB1.
Команда lcall DEL обеспечивает вызов подпрограммы задержки DEL определенной длительности. Многократный вызов подпрограммы позволяет получить необходимую задержку в соответствии с условиями задачи.
Команда 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
Комментарии к программе.
Команда пересылки числа в регистр управления прерываниями mov IE,#10000001B обеспечивает глобальное разрешение прерываний и дополнительно разрешает внешнее прерывание INT0.
Команда пересылки числа в регистр mov TCON,#00000000B задает активный уровень сигнала (нулевой) на входе внешнего прерывания.
При нажатии на кнопку SB1 на входе внешнего прерывания INT0 формируется сигнал логического нуля, и в счетчик команд микроконтроллера записывается адрес 03h (вектор прерывания INT0). В ячейке ПЗУ с этим адресом находится команда абсолютного перехода (ajmp M5) к подпрограмме обработки прерывания.
Выход из подпрограммы обработки прерывания обеспечивается командой 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
Комментарии к программе.
Команда пересылки числа в регистр управления прерываниями mov IE,#10000010B обеспечивает глобальное разрешение прерываний и дополнительно разрешает внешнее прерывание от таймера ТО.
Вектор прерывания от таймера ТО располагается по адресу 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
Комментарии к программе.
С помощью директивы ассемблера DB обеспечивается занесение в память программ микроконтроллера константы или группы констант, формат которых равен байту. Эти константы располагаются в области ПЗУ начиная с адреса ТABL и представляют собой десятичные числа от 0 до 9, выраженные в семисегментном коде и показанные в табл. 1.
Команда movc A,@A+DPTR позволяет загрузить в аккумулятор байт данных из памяти программ. Команда выполняет следующие действия: складывает содержимое аккумулятора с регистром DPTR, определяет ячейку памяти с адресом, равным полученной сумме, извлекает из нее константу и помещает ее в аккумулятор.
Требования к выполнению и оформлению лабораторных работ
При выполнении лабораторных работ необходимо поддерживаться следующей последовательности действий:
Ознакомление с целью и содержанием лабораторной работы.
Изучение блок-схемы алгоритма.
Набор ассемблерного текста программы, с применением встроенного редактора системы проектирования UMPS.
Компиляция программы с помощью ассемблера UMPSа.
Исправление ошибок и повторная компиляция программы.
Составление графического аналога принципиальной схемы лабораторной работы и подключение выводов внешних элементов.
Демонстрация работы схемы с использованием графической среды UMPSа.
Составление отчета, который должен содержать следующие компоненты:
принципиальную схему;
блок-схему алгоритма;
ассемблерный текст программы;
листинг программы;
HEX-файл программы;
Интегрированная среда проектирования микропроцессорных
систем – UMPS
Общие сведения
UMPS -интегрированная среда проектирования микропроцессорных систем (Universal Microprocessor Program Simulator). Предназначен для разработки и программной отладки микроконтроллерных приложений. Используемые микроконтроллеры составляют достаточно обширный класс, однако для DEMO-версии, которая установлена на компьютерах, их количество существенно ограничено.
UMPS содержит редактор текста, с помощью которого можно печатать и редактировать программы на языке АССЕМБЛЕР, собственный транслятор (ассемблер) и программный симулятор. Наиболее полезна возможность моделирования работы микроконтроллера совместно с внешними устройствами, которые подключаются к портам микроконтроллера. Процесс моделирования иллюстрируется в графической среде UMPSа.