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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



Лабораторная работа №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, если не ноль) позволяет организовать программную задержку времени.

 

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

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

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

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

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

 

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

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

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

 

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

 

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

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

 

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

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

Таблица 1

Десятичная цифра Двоично-десятичный код Семисегментный код на выходе порта Р1
    3F h
    06 h
    5B h
    4F h
    66 h
    6D h
    7D h
    07 h
    7F h
    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а.

 

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

1. Сташин, В. В. Проектирование цифровых устройств на однокристальных микроконтроллерах / В. В. Сташин, А. В. Урусов, О. Ф. Мологонцева. - М.: Энергоатомиздат, 1990. - 224 с. – ISBN 5-283-0154375-2.

2. Фрунзе, А. В. Микроконтроллеры? Это же просто! Т. 1 / А. В. Фрунзе - М.: ООО «ИД СКИМЕН», 2002. - 336с. – ISBN 5-94929-002-Х.

3. Бродин, В. К. Микроконтроллеры / В. К. Бродин, И. И. Шагурин. - М.: ЭКОМ, 1999. - 400 с. – ISBN 5-7163-020-0.

Лабораторная работа №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, если не ноль) позволяет организовать программную задержку времени.

 



Поделиться:


Последнее изменение этой страницы: 2016-12-27; просмотров: 760; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.129.45.92 (0.037 с.)