- •Лабораторный практикум «проектирование микропроцессорных систем»
- •Оглавление
- •Введение
- •Лабораторная работа 1 принципы работы битового процессора
- •Введение
- •1.1. Постановка задачи и варианты ее решения
- •1.2. Пример подготовки к выполнению лабораторной работы
- •Программа
- •1.3. Рекомендации по разработке и отладке программы на программно-логической модели
- •Назначение разрядов порта р1
- •1.4. Порядок отладки микропроцессорной системы на стенде
- •Соотношение контактов порта р4 и контактов плис
- •Варианты заданий
- •Варианты заданий
- •Лабораторная работа 2 микропроцессорная система для тестирования алу
- •Введение
- •2.1. Пример подготовки к выполнению лабораторной работы
- •2.2. Рекомендации по подключению внешних устройств к системной шине и порту р4 микроконтроллера Варианты подключения внешних устройств через системную шину
- •Варианты решения для двух источников данных
- •Варианты решения для четырёх источников данных
- •Варианты решения для четырёх приёмников данных
- •Подключение внешних устройств к порту р4
- •2.3. Последовательность и способы отладки микропроцессорной системы для тестирования алу
- •Текст программы обработки прерывания от клавиатуры
- •Оформление отчета о проделанной работе
- •Список литературы
- •115409, Москва, Каширское ш., 31
1.2. Пример подготовки к выполнению лабораторной работы
Рассмотрим вариант задания, в котором МК вычисляет простую логическую функцию F= Z&Y&X. Разрешающий сигнал достоверности входных данных имеет высокий уровень. Микроконтроллер должен вырабатывать сигнал подтверждения приёма информации также высокого уровня. В программе должна быть реализована запись вычисленного значения функции вместе с переменными во внутреннюю память данных, начиная с ячейки, адрес которой находится в регистре R0.
Разработаем требуемую программу. Её текст с необходимыми комментариями приведен ниже. При написании программы учитывается, что пользовательская программа, загруженная в эмулятор ПЗУ МК, будет отображаться в памяти программ, начиная с адреса 8000h.
Программа
ORG 8000h
Эта макрокоманда Ассемблера указывает, что команда, расположенная после неё в тексте, будет записана в памяти программ, начиная с адреса 8000h.
BEGIN: MOV P1,#00111111b
Этой командой задаётся начальное значение порта Р1: в разряды Р1.0-Р1.3 записываются «1» потому, что эти разряды порта предназначены для приёма входных сигналов и в соответствующих разрядах выходного «регистра-защелки» этого порта должны быть «1» – настройка на ввод. Линии Р1.4 и Р1.5 микроконтроллера не используются и они остаются в состоянии «1» («1» – это исходное состояние «регистров-защёлок» портов МК при подаче сигнала сброса). Р1.6 = 0 – для данного варианта задания это пассивное значение сигнала «Подтверждение». Р1.7 = 0 – исходное значение выходного сигнала результата (оно в начальный момент произвольное и может быть и равно «1»).
metka: |
JNB P1.3, $ ; ожидание сигнала разрешения |
|
MOV C,P1.2 ; С=Z |
|
ANL C,P1.1 ; C=Z&Y |
|
ANL C,P1.0 ; C=Z&Y&X |
|
SETB P1.6 ; выдача сигнала подтверждения конца ввода переменных |
|
JB P1.3,$ ; ожидание снятия сигнала разрешения |
|
MOV P1.7,C ; выдача результата |
|
ANL A, #0Fh ; в аккумуляторе выделяются значения входных переменных |
|
RLC A ; циклический сдвиг аккумулятора влево через С, при этом значение С записывается в младший разряд А |
|
MOV @R0, A ; запись цифры в массив по адресу, находящемуся в регистре R0 |
|
INC R0 |
|
CLR P1.6 ; сброс сигнала подтверждения |
|
AJMP metka ; переход к вычислению нового значения функции |
|
END |
Примечание. В дальнейшем с учетом реализации микропроцессорного устройства на УЛС, программа будет модифицироваться.
Для подготовки к отладке программы составим таблицу истинности заданной функции (табл.1.1). Порядок переменных в столбцах таблицы может быть любым, но желательно, чтобы расположение повторяло расположение переменных на входах МК (Z Y X).
Таблица 1.1
Таблица истинности
P1.2=Z |
P1.1=Y |
P1.0=X |
P1.7= F (X,Y,Z) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |