Умножение чисел, представленных в прямом коде, начиная со старших разрядов мноителя при неподвижных частичных произведениях (МУРА)

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Электроника
  • 26 26 страниц
  • 4 + 4 источника
  • Добавлена 19.07.2010
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Введение
1.Составление словесного алгоритма
2.Синтез операционного устройства
3.Синтез управляющего устройства в формате автомата Мура
1.1. Построение схемы алгоритма в микрооперациях
1.2.Построение схемы алгоритма в микрокомандах
1.3.Построение графа функционирования
1.4. Кодирование состояний устройства
1.5. Структурная схема управляющего устройства
1.6. Построение таблицы функционирования комбинационного узла
1.7.Запись логических выражений для выходных величин комбинационного узла
1.8.Построение схемы комбинационного узла и процессора
2.Программирование операции умножение на базе МК51
Фрагмент для ознакомления

Входящие в выражения значения а0, а1, а2, …, а6, определяемые комбинацией значений Q3, Q2 и Q1, могут быть получены с помощью дешифратора. Остальная часть схемы строится в соответствии с полученными для выходных величин логическими выражениями. Схема комбинационного узла приведена на рис. 6.



Рис. 6. Логическая схема комбинационного узла.




Рис. 7. Логическая схема управляющего устройства.



Рис. 8. Логическая схема процессора.
4. ПРОГРАММИРОВАНИЕ ОПЕРАЦИИ УМНОЖЕНИЕ НА БАЗЕ МК51

Для выполнения операции умножения воспользуемся регистрами R1, R2 и R3. Все действия в МК51 осуществляются через аккумулятор A, поэтому предусмотрим его обнуление в программе. Флаг переноса C будем использовать для анализа бита множителя и для передачи результата из аккумулятора, который и будет служить нам для временного хранения промежуточного результата, в регистр R2. В регистр R2 будет записан результат умножения. Так как регистр R2 восьми разрядный, то операцию сдвига нужно выполнить восемь раз для получения правильного результата. Регистр R3 будем использовать в качестве счетчика.

0000 C3 CLR C ; обнуление флага перенос
0001 E4 CLR A ; обнуление аккумулятора
0002 7905 MOV R1,#05 ; загрузка множимого в R1
0004 7A05 MOV R2,#05 ; загрузка множителя в R2
0006 7B04 MOV R3,#08 ; загрузка счетчика R3
0008 CA XCH A,R2 ; обмен содержимым A и R2
0009 13 RRC A ; сдвиг A вправо
000A CA XCH A,R2 ; обмен содержимым A и R2
000B 5001 JNC 000E ; переход, если С=0
000D 29 ADD A,R1 ; сложение A и R1
000E 13 RRC A ; сдвиг A вправо
000F CA XCH A,R2 ; обмен содержимым A и R2
0010 13 RRC A ; сдвиг A вправо
0011 CA XCH A,R2 ; обмен содержимым A и R2
0012 DBF7 DJNZ R3,000B ; переход, если R3 ? 0

Составим таблицу результатов, т.е. таблицу 6 содержимого регистров после каждого шага программы.

Таблица 6. Результаты пошагового выполнения программы

Шаг R1 R2 R3 A C Команда 1 2 3 4 5 6 7 0 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx x Так как начальные значения неизвестны, то в этих регистрах находятся любые неизвестные значения 1 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 0 0000 Обнуление переноса 2 xxxx xxxx xxxx xxxx xxxx xxxx 0000 0000 0 0001 Обнуление аккумулятора 3 0000 0101 xxxx xxxx xxxx xxxx 0000 0000 0 0002 Запись значения в регистр R1
Продолжение таблицы 6. Результаты пошагового выполнения программы

1 2 3 4 5 6 7 4 0000 0101 0000 0101 xxxx xxxx 0000 0000 0 0004 Запись значения в регистр R2 5 0000 0101 0000 0101 0000 1000 0000 0000 0 0006 Загрузка счетчика – R3 6 0000 0101 0000 0000 0000 1000 0000 0101 0 0008 Обмен содержимым аккумулятора и R2 7 0000 0101 0000 0000 0000 1000 0000 0010 1 0009 Сдвиг A вправо и перенос младшего разряда в C 8 0000 0101 0000 0010 0000 1000 0000 0000 1 000A Обмен содержимым аккумулятора и R2 9 0000 0101 0000 0010 0000 1000 0000 0000 1 000B Анализ значения C. С=1 ( выполнить сложение 10 0000 0101 0000 0010 0000 1000 0000 0101 1 000D Сложить значения R1 и аккумулятора 11 0000 0101 0000 0010 0000 1000 0000 0010 1 000E Сдвиг A вправо и перенос младшего разряда в C 12 0000 0101 0000 0010 0000 1000 0000 0010 1 000F Обмен содержимым А и R2, запись С в R2ст 13 0000 0101 0000 0010 0000 1000 1000 0001 0 0010 Сдвиг A вправо и перенос C в Аст 14 0000 0101 1000 0001 0000 1000 0000 0010 0 0011 Обмен содержимым аккумулятора и R2 15 0000 0101 1000 0001 0000 0111 0000 0010 0 0012 R3 – 1 и переход на команду B, т.к. R3?0 16 0000 0101 1000 0001 0000 0111 0000 0010 0 000B Анализ значения C. С=0 ( выполнить переход на E 17 0000 0101 1000 0001 0000 0111 0000 0001 0 000E Сдвиг A вправо и перенос младшего разряда в C 18 0000 0101 0000 0001 0000 0111 1000 0001 1 000F Обмен содержимым аккумулятора и R2 19 0000 0101 1000 0001 0000 0111 0100 0000> 1 0010 20 0100 0000 <-> 0000 0001 0011 21 0000 0110 ? 0012 22 ? 000B 23 + 0000 0110 0 000D 24 0000 0011> 0 000E 25 0000 0011 <-> 0100 0000 000F 26 0010 0000> 0 0010 27 0010 0000 <-> 0000 0011 0011 Продолжение таблицы 6. Результаты пошагового выполнения программы

1 2 3 4 5 6 7 28 0000 0101 ? 0012 29 ? 000B 30 0000 0001> 1 000E 31 0000 0001 <-> 0010 0000 1 000F 32 1001 0000> 0 0010 33 1001 0000 <-> 0000 0001 0011 34 0000 0100 ? 0012 35 ? 000B 36 0000 0000> 1 000E 37 0000 0000 <-> 1001 0000 1 000F 38 1100 1000> 0 0010 39 1100 1000 <-> 0000 0000 0011 40 0000 0011 ? 0012 41 ? 000B 42 0000 0000> 0 000E 43 0000 0000 <-> 1100 1000 0 000F 44 0110 0100> 0 0010 45 0110 0100 <-> 0000 0000 0011 46 0000 0010 ? 0012 47 ? 000B 48 0000 0000> 0 000E 49 0000 0000 <-> 0110 0100 0 000F 50 0011 0010> 0 0010 51 0011 0010 <-> 0000 0001 0011 52 0000 0001 ? 0012 53 ? 000B 54 0000 0000> 0 000E 55 0000 0000 <-> 0011 0010 0 000F 56 0001 1001> 0 0010 57 0001 1001 <-> 0000 0000 0011 58 0000 0000 Конец 0012


Ниже приведена программа в шестнадцатеричных кодах, записанных в память.

---- PGM ROM ---
0000 C3 E4 79 05 7A 05 7B 04 - CA 13 CA 50 01 29 13 CA
0010 13 CA DB F7

Вся программа занимает в памяти 20 байт и в ней используется 7 команд: CLR, MOV, XCH, RRC, JNC, ADD, DJNZ. Команды используют различное количество байт в памяти, и на их выполнение затрачивается различное количество машинных циклов (см. таб. 7).

Таблица 7.

Команда Байт Циклов /тактов Количество выполненных команд Всего тактов CLR
MOV
XCH
RRC
JNC
ADD
DJNZ 1
1
1
1
2
1
2 1/12
1/12
1/12
1/12
2/24
1/12
2/24 2
3
18
17
8
2
8 24
36
216
204
192
24
192 Итого: 888



5. ЛИТЕРАТУРА


Калабеков Б.А. Цифровые устройства и микропроцессорные системы. Учебник для техникумов. М: «Горячая линия - ТЕЛЕКОМ», 2002
Бродин В.Б, Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики. М: «ЭКОМ», 2002
Фрунзе А.В. Микроконтроллеры? Это же просто! М: ООО «ИД СКИМЕН», 2002
Электронная справочная система по языку программирования ASM51.










8




26

1. Калабеков Б.А. Цифровые устройства и микропроцессорные системы. Учебник для техникумов. М: «Горячая линия - ТЕЛЕКОМ», 2002
2.Бродин В.Б, Калинин А.В. Системы на микроконтроллерах и БИС программируемой логики. М: «ЭКОМ», 2002
3.Фрунзе А.В. Микроконтроллеры? Это же просто! М: ООО «ИД СКИМЕН», 2002
4.Электронная справочная система по языку программирования ASM51.

Вопрос-ответ:

Как можно описать словесный алгоритм умножения чисел в прямом коде по методу МУРА?

В словесном алгоритме умножения чисел в прямом коде по методу МУРА сначала нужно установить начальное значение частичного произведения, равное нулю. Затем, начиная с самого старшего разряда множителя, происходит сдвигы частичного произведения влево и включение слагаемого в частичное произведение, если текущий разряд множителя равен 1. После этого происходит сдвиг самого множителя вправо. Это повторяется до тех пор, пока все разряды множителя не будут обработаны. В результате получается конечное значение частичного произведения, равное искомому произведению двух чисел.

Как происходит синтез операционного устройства для умножения чисел в прямом коде по методу МУРА?

Синтез операционного устройства для умножения чисел в прямом коде по методу МУРА включает в себя создание структурного схемы, которая выполняет все необходимые операции умножения. Основными элементами такой схемы являются: сумматоры, сдвигатели, блоки логической обработки и регистры. Сумматоры используются для сложения частичных произведений, сдвигатели - для сдвига произведений влево и вправо, блоки логической обработки - для определения, когда включать слагаемое в частичное произведение, и регистры - для хранения значений частичных произведений и множителя.

Как происходит синтез управляющего устройства в формате автомата Мура для умножения чисел в прямом коде по методу МУРА?

Синтез управляющего устройства в формате автомата Мура для умножения чисел в прямом коде по методу МУРА включает в себя построение нескольких элементов. Сначала необходимо построить схему алгоритма в микрооперациях, где каждому микрооперации соответствует определенное состояние автомата. Затем строится схема алгоритма в микрокомандах, где каждой микрокоманде соответствует определенная комбинация входов автомата. Далее строится граф функционирования, где каждому состоянию автомата соответствует определенное состояние системы. Затем происходит кодирование состояний устройства, где каждому состоянию автомата присваивается определенный код. И, наконец, строится структурная схема управляющего устройства, где все полученные элементы объединяются в единую схему.

Что такое МУРА?

МУРА - это метод умножения чисел, представленных в прямом коде, при котором производится умножение, начиная со старших разрядов множителя, при неподвижных частичных произведениях.

Какой тип устройства необходимо использовать для реализации МУРА?

Для реализации МУРА необходимо использовать операционное устройство, которое будет производить умножение чисел в соответствии с алгоритмом МУРА.

Что такое умножение чисел в прямом коде?

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