Цифровые вычислительные устройства и микропроцессоры приборных комплексов (63929)

Посмотреть архив целиком

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Уфимский государственный авиационный технический университет


Кафедра авиационного приборостроения






Лабораторный практикум

по теме

«Цифровые вычислительные устройства и микропроцессоры приборных комплексов»





Выполнил студент гр. АП-540

Табулдин Р.А.

Проверил преподаватель

Неретина В.В.






Кумертау 2010


ЛАБОРАТОРНАЯ РАБОТА № 1

ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ КОМБИНАЦИОННОГО ТИПА


1.1 Цель работы


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

Компьютерные модели логических схем устройства:

1)

2)


3)



4)

5)



6)


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


ЛАБОРАТОРНАЯ РАБОТА № 2

ПРОЕКТИРОВАНИЕ ЦИФРОВЫХ УСТРОЙСТВ ПОСЛЕДОВАТЕЛЬНОСТНОГО ТИПА


2.1 Цель работы


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

Компьютерные модели логических схем устройства:


1)

3)


Вывод: ознакомился с принципами функционирования последовательностных устройств и изучил метод анализа и синтеза синхронных счетчиков.



ЛАБОРАТОРНАЯ РАБОТА № 3–6

ИЗУЧЕНИЕ СТРУКТУРНОЙ ОРГАНИЗАЦИИ И ПРИЕМОВ ПРОГРАММИРОВАНИЯ ОДНОКРИСТАЛЬНОГО

МИКРОКОНТРОЛЛЕРА К1816ВЕ48


3.1 Цель работы


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

Пример 1.1. Записать в РПД в ячейки с адресами 31Н и 32Н число 1C3FH:

LOAD: MOV R0,#31 ; загрузка в R0 указателя РПД

MOV @R0,#1C ; запись в РПД числа 1C

INC R0 ; продвижение указателя адреса РПД

MOV @R0,#3F ; запись в РПД числа 3F

Пример 1.2. Передать содержимое регистров банка 0 в ВПД, начиная с адреса 30H:

SEL RB1 ; выбор банка регистров 1

MOV R0,#30h ; определение начального адреса ВПД

MOV R1,#0 ; определение начального адреса банка

; регистров

MOV R2,#8 ; счетчик регистров (циклов) = 8

LOOP: MOV A,@R1 ; пересылка байта из регистра в ВПД

MOVX @R0,A ; через аккумулятор

INC R0 ; продвижение указателей

INC R1

DJNZ R2,LOOP ; продолжить, если переданы не все регистры

Пример 1.3. Вычислить произведение двух 4-битных чисел, расположенных в младших тетрадах регистров R0 и R1. Для вычисления используется таблица произведений для всех комбинаций сомножителей (всего 256). Произведение двух тетрад имеет формат 1 байт. Таким образом, необходимая таблица произведений занимает одну страницу памяти. Данную таблицу удобно разместить на третьей странице РПП:

; вычисление Z = X*Y

; R0 = 0000XXXX

; R1 = 0000YYYY

; X и Y принимают значения 0 и 1

ORG 0 ; директива ассемблера, задающая

; начальный адрес программы

MOV A,R0 ; пересылка множимого в аккумулятор

SWAP A ; обмен тетрад аккумулятора

ORL A,R1 ; формирование в аккумуляторе

; адреса произведения

MOVP3 A,@A ; загрузка в аккумулятор произведения

ORG 0300 ; директива ассемблера, задающая начальный

; адрес таблицы на третьей странице РПП директивы ассемблера, формирующие таблицу произведений

DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Z=0*Y

DB 1*0,1*1,1*2,…,1*0F ; Z=0*Y

DB 0F*0, 0F*1, 0F*2,…, 0F*0F ; Z=0*Y

Сложение положительных двоичных чисел. Выполнение этой операции покажем на примере:

Переносы 1 1 1

Первое слагаемое 0 0 1 1 0 1

Второе слагаемое 0 0 1 1 0 1

Сумма 0 1 1 0 1 0

Пример 1.4. Сложить содержимое регистра R7 и ячейки РПД с адресом 30Н:

MOV R0,#30h ; загрузка в R0 адреса РПД

MOV A,R7 ; загрузка операнда в аккумулятор

ADD A,@R0 ; сложение

Суммирование десятичных чисел. Способ суммирования десятичных чисел зависит от того, какой двоичный код выбран для представления десятичных цифр. Ниже рассматривается операция суммирования при использовании кода 8421.

Двоичные представления десятичных цифр суммируются по обычным правилам сложения двоичных чисел. Если полученная сумма содержит десять или более единиц, то формируется единица переноса, передаваемая в следующий десятичный разряд, а из суммы вычитаются десять единиц. Полученный результат есть цифра соответствующего разряда суммы. Наличие в полученной сумме десяти или более единиц выявляется по следующим признакам: появление переноса из разряда 8, возникающего при суммировании цифр; наличие единиц одновременно в разрядах 8 и 4 либо 8 и 2 в полученной сумме. При этом требуется коррекция суммы прибавлением к ней шести единиц (числа 01102).

Покажем эти действия на примерах.

Сложить десятичные цифры 6 и 2 и перенос 1, поступающий из предыдущего десятичного разряда.

Десятичная система Код 8421

Переносы 1 1 1 1

Первая цифра 6 0 1 1 0

Вторая цифра 2 0 0 1 0

Сумма 9 1 0 0 1

Коррекция —

Результат 1 0 0 1

В этом случае полученное в результате суммирования число 10012 меньше десяти и коррекция суммы не требуется.

Сложить десятичные цифры 8 и 9.

Десятичная система Код 8421

Переносы 1 0 1 0

Первая цифра 8 1 0 0 0

Вторая цифра 9 1 0 0 1

Сумма 7 0 0 0 1

Коррекция 0 1 1 0

Результат 0 1 1 1

Сложить десятичные цифры 6 и 7.

Десятичная система Код 8421

Переносы 1 0 1 1 1 0

Первая цифра 6 0 1 1 0

Вторая цифра 7 0 1 1 1

Сумма 3 1 1 0 1

Коррекция 0 1 1 0

Результат 0 0 1 1

Пример 1.5. Сложить десятичные двоично-кодированные числа (BCD-числа), расположенные в A и R7:

ADD A,R7 ; двоичное сложение

DA A ; коррекция результата

Алгебраическое сложение с использованием дополнительного кода. Для сложения чисел со знаком необходимо отрицательное число перевести в дополнительный код. В двоичной системе счисления дополнительный код отрицательного числа формируется по следующему правилу: инвертируются (путем замены 0 на 1 и 1 на 0) цифры всех разрядов, кроме знакового, и в младший разряд прибавляется единица. Например, если =1 101102, то = 1 010102 (знаковые разряды выделены полужирным шрифтом). Обратное преобразование из дополнительного кода в прямой код производится по тому же правилу.

Рассмотрим примеры выполнения операции сложения.

Пусть =0 10110, =1 01101.

Переносы 1 1 1 1

Первое слагаемое 0 1 0 1 1 0

Второе слагаемое 1 1 0 0 1 1

Сумма 0 0 1 0 0 1

Как указывалось выше, перенос, возникающий из знакового разряда, отбрасывается.

Изменим на обратный знаки слагаемых (по отношению к предыдущему примеру): =1 10110, =0 01101. Очевидно, ожидаемый ответ = 1 01001.

Переносы 1

Первое слагаемое 1 0 1 0 1 0

Второе слагаемое 0 0 1 1 0 1

Сумма 1 1 0 1 1 1

Сумма 1 0 1 0 0 1

Таким образом, если результат сложения есть отрицательное число, то оно оказывается представленным в дополнительном коде.

Для вычитания 8-разрядных чисел без знака может быть использовано выражение , где – поразрядная инверсия . Другой способ вычитания может быть основан на следующем выражении: .

Пример 1.6. Вычитание байтов. Операция вычитания может быть выполнена двумя способами: переводом вычитаемого как отрицательного числа в дополнительный код с последующим сложением; переводом уменьшаемого в обратный код с последующей инверсией суммы.

Пусть требуется вычесть из A содержимое регистра R6. Вычитание выполнить в соответствии с выражением . Установка флага C после выполнения сложения будет свидетельствовать об отрицательном переполнении.

CPL A ; инверсия аккумулятора

ADD A,R6 ; сложение

CPL A ; инверсия суммы (получение разности)

Пример 1.7. Получить разность 2-байтных чисел без знака. Операнды располагаются в РПД. Адрес уменьшаемого хранится в R1, а вычитаемого – в R0. Результат поместить на место уменьшаемого:

; вычисление Z = XY

; X, Y – РПД

; R0 – адрес Y

; R1 – адрес X

; результат на место X

SUBSTR: MOV A,@R0 ; загрузка младшего байта Y

CPL A ; получение дополнительного кода Y

INC A ;

ADD A,@R1 ; вычитание младших байт

MOV @R0,A ; запоминание младшего байта разности

INC R0 ; переход к старшим байтам X и Y

INC R1 ;

MOV A,@R0 ; загрузка старшего байта Y

CPL A ; обратный код Y

ADDC A,@R1 ; вычитание старших байт

MOV @R0,A ; запоминание результата

Умножение двоичных чисел. Пусть производится умножение чисел 11012 и 10112.

1 1 0 1 множимое

1 0 1 1 множитель

1 1 0 1 1-е частичное произведение

1 1 0 1 2-е частичное произведение

0 0 0 0 3-е частичное произведение

1 1 0 1 4-е частичное произведение

1 0 0 0 1 1 1 1 произведение


Случайные файлы

Файл
180720.rtf
love.doc
69829.rtf
13133-1.rtf
35580.rtf




Чтобы не видеть здесь видео-рекламу достаточно стать зарегистрированным пользователем.
Чтобы не видеть никакую рекламу на сайте, нужно стать VIP-пользователем.
Это можно сделать совершенно бесплатно. Читайте подробности тут.