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


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



ЗНАЕТЕ ЛИ ВЫ?

Лабораторная работа №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
    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-файл программы;

 



Поделиться:


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

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