Реферат: Вычислительная техника
часть: Проектирование вырожденного автомата .
Спроектировать на элементах ТТЛ “ генератор 4-х разрядных кодов “ некоторой системы счисления .
Т.е. синтезировать синхронный счётчик М–разрядный ( М < 16 ), на вход которого подаётся регулярная внешняя последовательность тактовых импульсов.
Каждое состояние счётчика ( т.е. цифра заданной системы ) сохраняется в течение одного полного такта. Значение цифр появляется на выходах Q3, Q2, Q1, Q0. Автомат также должен выработать синхронный перенос ( в след. разряд заданной системы), которым служит последний тактовый импульс в цикле счёта. Для его выделения должен быть сформирован строб “y” , т.е. булева функция , которая активна на последнем такте цикла. А само выделение должно обеспечивать минимальную задержку выходного импульса переноса.
В схеме автомата должны быть цепи , осуществляющие авто сброс в исходное состояние при каждом включении питания.
Требуется :
составить таблицу функционирования автомата ;
минимальную функцию возбуждения и строба ;
построить осциллограммы всех выходных функций, включающие функции строба и сигнала переноса ;
построить схему автомата .
Решение поставленной задачи :
а.) Составим таблицу функционирования автомата :
Q3 |
Q2 |
Q1 |
Q0 |
J3 |
K3 |
J2 |
K2 |
J1 |
K1 |
J0 |
K0 |
y |
|
0 |
0 |
0 |
0 |
0 |
0 |
Ф |
0 |
Ф |
0 |
Ф |
1 |
Ф |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
Ф |
0 |
Ф |
1 |
Ф |
Ф |
1 |
0 |
2 |
0 |
0 |
1 |
0 |
0 |
Ф |
0 |
Ф |
Ф |
0 |
1 |
Ф |
0 |
3 |
0 |
0 |
1 |
1 |
0 |
Ф |
1 |
Ф |
Ф |
1 |
Ф |
1 |
0 |
4 |
0 |
1 |
0 |
0 |
0 |
Ф |
Ф |
0 |
0 |
Ф |
1 |
Ф |
0 |
5 |
0 |
1 |
0 |
1 |
0 |
Ф |
Ф |
0 |
1 |
Ф |
Ф |
1 |
0 |
6 |
0 |
1 |
1 |
0 |
0 |
Ф |
Ф |
0 |
Ф |
0 |
1 |
Ф |
0 |
7 |
0 |
1 |
1 |
1 |
1 |
Ф |
Ф |
1 |
Ф |
1 |
Ф |
1 |
0 |
8 |
1 |
0 |
0 |
0 |
Ф |
0 |
0 |
Ф |
0 |
Ф |
1 |
Ф |
0 |
9 |
1 |
0 |
0 |
1 |
Ф |
0 |
0 |
Ф |
1 |
Ф |
Ф |
1 |
0 |
10 |
1 |
0 |
1 |
0 |
Ф |
0 |
0 |
Ф |
Ф |
0 |
1 |
Ф |
0 |
11 |
1 |
0 |
1 |
1 |
Ф |
0 |
1 |
Ф |
Ф |
1 |
Ф |
1 |
0 |
12 |
1 |
1 |
0 |
0 |
Ф |
1 |
Ф |
1 |
0 |
Ф |
1 |
Ф |
1 |
ПОВТОР |
0 |
0 |
0 |
0 |
б.) Составим карты Карно и при помощи них найдём минимизированные функции возбуждения и строба .
Q0
J3
-
0
0
0
0
Q2
00
1
0
Q3
ФХ
Х
Х
Ф
Ф
Ф
Ф
Q1
K3 = Q2
Q0
J2
-
0
0
1
0
Q2
ФФ
Ф
Ф
Q3
ФХ
Х
Х
0
0
1
0
Q1
K2 = Q3 v Q1Q0
Q0
J1
-
0
1
Ф
Ф
Q2
01
Ф
Ф
Q3
0Х
Х
Х
0
1
Ф
Ф
Q1
K1 = Q0
Q0
J0
-
1
Ф
Ф
1
Q2
1Ф
Ф
1
Q3
0Х
Х
Х
1
Ф
Ф
1
Q1
K0 = 1
Q0
y
-
0
0
0
0
Q2
00
0
0
Q3
1Х
Х
Х
0
0
0
0
на языке Ассемблера с соблюдением требований формата бланка ;
комментарий должен давать полное описание действий конкретной задачи , а не описание данной команды ;
в конце любого комментария должна быть дана продолжительность операции – требуемое число тактов синхронизации.
в.) Построение упрощённой схемы интерфейса ЗУ .
III часть : Разработка фрагмента программы МПУ .
Составить фрагмент программы МПУ в виде подпрограммы ( или в виде программы обслуживания прерывания ПОП ) , что есть в варианте .
Начальный адрес для подпрограммы : [ P ] = 63 + n10
Требуется :
Решение поставленной задачи :
; Подпрограмма на языке Ассемблер :
ORG |
00D4H |
;Подпрограмма начинается с ;адреса 00D416 |
|||
LXI |
D,0200H |
;бл.1Загрузка адреса младшего ;байта числа Х1 в пару ;регистров DE (т.10) |
|||
MVI |
B,0002H |
;бл.2 Подготовка счётчика ;сложений, т.е.непосредствен-;ное присвоение регистру В ;значения 2 (т.7) |
|||
XRA |
A |
;бл.3 Обнуление аккумулятора , ;а также установка в ноль тр- ;ров переноса Tc и Tv (т.4) |
|||
LOOP2: |
LXI |
H,0300H |
;бл.4 Загрузка адреса младшего ;байта числа Х2 или (Х1+Х2) в ;пару регистров HL (т.10) |
||
MVI |
C,0006H |
;бл.5 Подготовка счётчика ;байтов , т.е. непосредственное ;присвоение счётчику байтов С ;значения 6 , т.к. после ;сложения Х1 и Х2 может ;возникнуть перенос и число ;окажется уже в 6 байтах, а не в 5 (т.7) |
|||
LOOP1: |
LDAX |
D |
;бл.6 Загрузка в аккумулятор ;следующего байта числа Х1 ;или Х3, хранящегося по адресу ;в паре DE (т.7) |
||
ADC |
M |
;бл.7 Суммирование байтов ;чисел Х1 или Х3 и Х2 или ;(Х1+Х2) , а также переноса, ;если такой был (т.4) |
|||
DAA |
;бл.8 Десятичная коррекция ;аккумулятора(т.к. у меня коды ;BCD и максимальное число ;здесь 9, а не 16 ) (т.4) |
||||
MOV |
M,A |
;бл.9 Пересылка очередного ;байта частичной суммы ;(Х1+Х2) на место Х2 (т.7) |
|||
DCRC |
;бл.10 Уменьшение на 1 ;счётчика байтов (т.5) |
||||
|
JZ |
NB |
;бл.11 УП: если содержимое сч. ;байтов равно 0 ( С = 0 ), то ;переход к бл. 15 , если же С =0, ;т.е. ещё не все байты чисел ;сложены, то переход к ;суммированию след. байтов, ;т.е. к блоку 12 (т.10) |
||
INХ |
D |
;бл.12 Переход к адресу ;следующего байту числа Х1 ;или Х3 путём положительного ;инкремента пары регистров DE (т.5) |
|||
INХ |
H |
;бл.13 Переход к адресу ;следующего байта числа Х2 ;или (Х1+Х2) путём ;положительного инкремента ;пары регистров HL (т.5) |
|||
JMP |
LOOP1 |
;бл.14 БП к блоку 6 для ;суммирования след. байтов ;чисел Х1 и Х2 либо Х3 и ;(Х1+Х2)(к началу внешнего цикла) (т.10) |
|||
NB : |
DCR |
B |
; бл.15 Переход к суммированию суммы ;Х1+Х2 с числом Х3, т.е. уменьшение ;счётчика сложений на 1 (т.5) |
||
|
RZ |
EN |
;бл.16 УП : если В=0 , т.е. все три числа ;сложены , то возврат в основную ;программу , ежели В = 0 , т.е. не все числа ;сложены , то переход к след. блоку 17 (т.10) |
||
LXI |
D,0400H |
;бл.17 Загрузка адреса младшего байта числа ;Х3 в пару регистров DE (т.10) |
|||
JMP |
LOOP2 |
; бл.18 БП к блоку 4 для суммирования числа ;Х3 с суммой ( Х1+Х2) (к началу внешнего ;цикла ) т.10) |
|||
EN : |
END |
; конец подпрограммы |
III часть : Подпрограмма .
Сложить три положительных 10 – значных десятичных числа Х1, Х2, Х3 , представленные в коде BCD и хранящиеся в секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму (также в коде BCD) с учётом старшего (шестого) байта на случай переполнения в секторе ОЗУ на место Х2, т.е. по адресу 30016 .
Предполагается, что шестые байты в указанных секторах первоначально пусты.
Это – задача с двойным (вложенным) циклом.
Блок – схема алгоритма :
DE 20016
B 2
A (A)V(A)
HL 30016
C 6
A [(DE)]
A (A)+[(M)]+(Tc)
10 - КОРР
M (A)
C ( C ) -1
(Tz)=1
LOOP1
DE (DE) + 1
HL (HL) + 1
PC [ Addr ]
B (B) -1
(Tz)=1
LOOP2
DE 40016
PC [Addr]
NB
ДА
EN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Задание:
I часть : Счётчик прямого счёта .
М = 13 ; триггеры типа JK.
Код двоичный, возрастающий;
Используются состояния : а0 , а1 … а12 .
II часть : Интерфейс ЗУ .
Lпзу = 11 KB ; Lозу = 4 KB .
III часть : Подпрограмма .
Сложить три положительных 10 – значных десятичных числа Х1, Х2, Х3 , представленные в коде BCD и хранящиеся в секторах ОЗУ с адресами младших байтов соот. 20016; 30016; 40016 .
Поместить полученную сумму (также в коде BCD) с учётом старшего (шестого) байта на случай переполнения в секторе ОЗУ на место Х2, т.е. по адресу 30016 .
Предполагается, что шестые байты в указанных секторах первоначально пусты.
Это – задача с двойным (вложенным) циклом.
Блок – схема алгоритма :
DE 20016
A (A)V(A)
HL 30016
C 6
A [(DE)]
A (A)+[(M)]+(Tc)
10 - КОРР
M (A)
C ( C ) -1
(Tz)=1
LOOP1
DE (DE) + 1
HL (HL) + 1
PC [ Addr ]
B (B) -1
(Tz)=1
LOOP2
DE 40016
PC [Addr]
NB
EN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18