Пример выполнения задания

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

Тема: Реализация времязадающих функций. Анализ временной диаграммы логических сигналов.

Цель работы: изучить аппаратные и программные средства микроконтроллера, обеспечивающие реализацию времязадающих функций при анализе входных воздействий.

Оборудование: персональный компьютер

Программное обеспечение: операционная система, программа отладчик для МК51

Общие положения.

Одной из типичных задач, решаемых микроконтроллерами, является задача сравнения фактической последовательности изменений уровней логического сигнала с некоторой эталонной последовательностью. Для ее решения часто используют элемент архитектуры процессора – блок таймер/счетчиков.

Задание для домашней подготовки.

1. Повторить организацию таймеров-счетчиков МК51;

2. Повторить команды МК51;

3. Изучить пример программы к лабораторной работе;

4. Составить программу на языке ассемблера МК-51 согласно варианту.

Порядок выполнения работы.

1. Ознакомиться с заданием и проанализировать его;

2. Составить программу согласно заданию в кодах МК51;

3. Набрать текст составленной программы в текстовом редакторе отладчика;

4. Выполнить трансляцию программы (в случае возникновения ошибок исправить их);

5. Сделать пошаговое выполнение программы и убедиться в правильности ее работы (в случае неправильности внести исправления в текст программы и повторить п.4-5);

Задание по лабораторной работе.

В данной лабораторной работе требуется разработать микропроцессорное устройство, формирующее заданную последовательность логических сигналов на входах некоторой цифровой схемы и сравнивающее ее реакцию с эталонной. Здесь принимаются следующие предпосылки: двоичное слово – реакция схемы устанавливается к моменту сравнения и остается неизменной до смены входного воздействия..

Содержание отчета

ü Задание по лабораторной работе;

ü Формируемая временная диаграмма;

ü Текст программы с комментариями;

Пример выполнения задания.

Рассмотрим пример выполнения задания. После появления логической "1" на входе Р1.0 микроконтроллер на четырех выходах Р2.3…Р2.0 формирует временную диаграмму изменения четырех сигналов, представленную на рисунке 1. Каждая новая комбинация этих сигналов, то есть каждое новое тестовое воздействие, фиксируется на входах проверяемой цифровой схемы по переходу 1/0 стробирующего сигнала на выходе Р1.1. Диаграмма содержит пять временных интервалов длительностью 100 мс каждый. Диаграмма периодически повторяется до появления логического "0" на входе Р1.0.

Правильно работающая схема на каждое из пяти тестовых воздействий вырабатывает определенную комбинацию шести выходных сигналов, поступающих на входы Р3.5…Р3.0 микроконтроллера. Реакция работоспособной схемы на заданную тестовую последовательность приведена на рисунке 2.

 
 


Если фактическая реакция проверяемой схемы отличается от эталонной, то на выходе Р1.2 предварительно установленный логический "0" изменяется на логическую "1", что служит сообщением о неработоспособности проверяемой схемы.

Выберем начальную константу для таймера таким образом, чтобы переполнение происходило каждые 10 мс = 10000 мкс. Так как максимальное число в таймере 65535, следовательно начальное его значение должно быть 65535-10000=55535=D8EFh и этот интервал будем повторять 10 раз (10х10мс=100мс).

Разработаем требуемую программу. Ее текст с необходимыми комментариями приведен ниже.

org 0

clr tr0; остановить таймер ТС0

mov tmod,#1; настроить ТС0 в режим 1

;запоминание в памяти данных пяти 4-разрядных двоичных слов

mov 8,#2

mov 9,#7

mov 10,#5

mov 11,#6

mov 12,#11

; массив ожидаемых комбинаций

mov 13,#1

mov 14,#2

mov 15,#24

mov 16,#20

mov 17,#53

; ожидание сигнала начало формирования временной диаграмы

m3:

jnb P1.0,$

mov r0,#8; адрес начала массива для вывода

mov r1,#13 адрес начала массива тестовых комбинаций

mov r3,#5; число элементов массива

m2:

mov p2,@r0; вывод элемента массива

; организация временного интервала

mov r4,#10; 10 раз по 10 мс

m1:

mov th0,#0D8h; начальное значение

mov tl0,#0EFh; для ТС0

setb tr0; запустить таймер

jnb tf0,$; ожидать переполнения таймера

clr tr0; остановить таймер

clr tf0; сбросить флаг переполнения

djnz r4,m1; прошел временной интервал

inc r0; переход к следующему элементу массива для вывода

inc r1; переход к следующему элементу массива тестовой комбинации

mov a,p3; ввод тестовой комбинации

anl a,#11000000b; маскирование не информационных битов

mov 7,@r1; нет команды сравнения а и косвенно-адресуемой ячейки памяти

cjne a,7,m4; сравнение с тестовой комбинацией

djnz r3,m2; перейти если не все элементы массива выведены

jmp m3; на начало формирования временной диаграммы

m4:

setb p1.2; ошибка

jmp $

end

Таблица 1. Таблица вариантов заданий

Вариант Количество входных сигналов Величина временного интервала, мс Количество временных интервалов Количество выходных сигналов
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: