Загрузить архив: | |
Файл: 240-1055.zip (277kb [zip], Скачиваний: 98) скачать |
КАФЕДРА 403
к курсовой работе по дисциплине
Вычислительные системы и микропроцессорная техника
выполнил: студент гр. 04-417
Левин О.А.
проверил: Герасимов А.Л.
МОСКВА 1997
1. Анализ задания - 2
2. Комбинационный вариант - 2
3. Алгоритм работы устройства - 4
4. Микропрограмма - 5
5. Управляющий автомат с жесткой логикой - [1]
Время задержки, нс |
Потребляемая мощность, мВт |
|
531 |
3,2 |
20 |
533 |
10 |
2 |
1531 |
3 |
4 |
1533 |
4 |
2 |
Таблица SEQ Таблица * ARABIC 9
Основные электрические параметры микросхем серии 1533
·
·
· не менее -30 мА и не более -112 мА
·
·
·
·
·
Предельно допустимые режимы эксплуатации
·
·
·
Основными элементами устройства являются счетчики и регистры. Счетчик будет реализован на двух микросхемах 1533ИЕ7 - четырехразрядном синхронном реверсивном счетчике. Он имеет три основных режима: параллельная асинхронная загрузка кода по входам Di при поступлении отрицательного ипульса на вход С, режим суммирования и режим вычитания. В двух последних режимах счетные импульсы подают на различные входы: суммирования и вычитания.
Входной код будет записываться в восемь четырехразрядных универсальных регистра сдвига на микросхемах КР531ИР11. Регистр функционирует в одном из четырех режимов, которые задаются двухразрядным кодом на входе S. Параллельный ввод информации со входа D происходит синхронно, по положительному фронту тактового импульса.
R |
S1 |
S0 |
C |
DR |
DL |
D0 |
D1 |
D2 |
D3 |
Q0 |
Q1 |
Q2 |
Q3 |
|
Уст. L |
L |
X |
X |
X |
X |
X |
X |
X |
X |
X |
L |
L |
L |
L |
Пок-ой |
H |
X |
X |
L |
X |
X |
X |
X |
X |
X |
QA0 |
QB0 |
QC0 |
QD0 |
Зап-ись |
H |
H |
H |
X |
X |
a |
b |
c |
d |
a |
b |
c |
d |
|
Сдв. |
H |
L |
H |
L |
L |
X |
X |
X |
X |
L |
QAn |
QBn |
QCn |
|
впр-аво |
H |
L |
H |
H |
H |
X |
X |
X |
X |
H |
QAn |
QBn |
QCn |
|
Сдв. |
H |
H |
L |
X |
X |
X |
X |
X |
X |
QB |
QC |
QD |
L |
|
вле-во |
H |
H |
L |
X |
X |
X |
X |
X |
X |
QB |
QC |
QD |
H |
|
Пок-ой |
H |
L |
L |
X |
X |
X |
X |
X |
X |
X |
QA0 |
QB0 |
QC0 |
QD0 |
Таблица SEQ Таблица * ARABIC 10
Таблица истинности регистра КР531ИР11
Характеристики ППЗУ КР556РТ4
·
·
·
·
·
Программа на ассемблере
НАЧАЛО
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый справа байт кода
3 бит АККУМУЛЯТОРА
НЕТ
Сдвиг кода на разряд вправо
Запись значения счетчика в память
СЧЕТЧИК=02Н
АККУМУЛЯТОР=
=1-ый слева байт кода
3 бит АККУМУЛЯТОРА
ДА
2 3
1
1 2 3
Сдвиг кода на разряд влево
НЕТ
Запись значения счетчика в память
КОНЕЦ
Для нормального функционирования программы необходимо предварительно занести входной код, предварительно поделенный на байты в следующие ячейки памяти: 0800Н - 0803Н (в 0800Н - крайний левый байт кода и т.д.) и 0804Н - 0807Н (в 0804Н - крайний левый байт кода и т.д.)
Адрес |
Код |
Метка |
Команда |
Комментарий |
0809 |
16 |
MVI D,O2H |
Счетчик = 2 |
|
080A |
02 |
|||
080B |
3A |
M1 |
LDA 0803H |
Загрузка первого справа байта кода в аккумулятор |
080C |
03 |
|||
080D |
08 |
|||
080F |
E6 |
ANI 07H |
Маскирование 3 последних бит аккумулятора |
|
0810 |
07 |
|||
0811 |
FE |
CPI 02H |
Сравнение аккумулятора с 010В |
|
0812 |
02 |
|||
0813 |
CA |
JZ M2 |
||
0814 |
37 |
|||
0815 |
08 |
|||
0816 |
A7 |
ANA A |
Обнуление флага переноса |
|
0817 |
3A |
LDA 0800H |
||
0818 |
00 |
|||
0819 |
08 |
|||
081A |
1F |
RAR |
||
081B |
32 |
STA 0800H |
||
081C |
00 |
|||
081D |
08 |
|||
081E |
3A |
LDA 0801H |
||
0820 |
01 |
|||
0821 |
08 |
|||
0822 |
1F |
RAR |
||
0823 |
32 |
STA 0801H |
||
0824 |
01 |
|||
0825 |
08 |
|||
0826 |
3A |
LDA 0802H |
||
0827 |
02 |
|||
0829 |
08 |
Последовательный сдвиг |
||
082A |
1F |
RAR |
байтов кода вправо |
|
082B |
32 |
STA 0802H |
||
082C |
02 |
|||
082D |
08 |
|||
082E |
3A |
LDA 0803H |
||
082F |
03 |
|||
0830 |
08 |
|||
0831 |
1F |
RAR |
||
0832 |
32 |
STA 0803H |
||
0833 |
03 |
|||
0834 |
08 |
|||
0835 |
14 |
INR D |
Прибавление к счетчику единицы |
|
0836 |
7A |
MOV A, D |
||
0837 |
FE |
CPI 20H |
Сравнение значения счетчика с 32D |
|
0838 |
20 |
|||
083A |
7A |
M2 |
MOV A, D |
|
083B |
32 |
STA 0808H |
Запись первого результата в память |
|
083C |
08 |
|||
083D |
08 |
|||
083E |
16 |
MVI D,1FH |
Счетчик = 31 |
|
083F |
1F |
|||
0840 |
3A |
M3 |
LDA 0803H |
Загрузка первого слева байта кода в аккумулятор |
0841 |
03 |
|||
0842 |
08 |
|||
0843 |
E6 |
ANI E0H |
Маскирование 3 первых разрядов кода |
|
0844 |
E0 |
|||
0845 |
FE |
CPI 40H |
Сравнение аккумулятора с 0100 0000В |
|
0846 |
40 |
|||
0847 |
CA |
JZ M4 |
||
0848 |
6B |
|||
0849 |
08 |
|||
084A |
A7 |
ANA A |
Обнуление флага переноса |
|
084B |
3A |
LDA 0804H |
||
084C |
04 |
|||
084D |
08 |
|||
084E |
1F |
RAL |
||
084F |
32 |
STA 0804H |
||
0850 |
04 |
|||
0851 |
08 |
|||
0852 |
3A |
LDA 0805H |
||
0853 |
05 |
|||
0854 |
08 |
|||
0855 |
17 |
RAL |
||
0856 |
32 |
STA 0805H |
||
0857 |
05 |
|||
0858 |
08 |
|||
0859 |
3A |
LDA 0806H |
||
085A |
02 |
|||
085B |
08 |
Последовательный сдвиг |
||
085C |
17 |
RAL |
байтов кода влево |
|
085D |
32 |
STA 0806H |
||
085E |
06 |
|||
085F |
08 |
|||
0860 |
3A |
LDA 0807H |
||
0861 |
07 |
|||
0862 |
08 |
|||
0863 |
17 |
RAL |
||
0864 |
32 |
STA 0807H |
||
0865 |
07 |
|||
0866 |
08 |
|||
0867 |
15 |
DCR D |
Вычитание из счетчика единицы |
|
0868 |
7A |
MOV A, D |
||
0869 |
FE |
CPI 02H |
Сравнение значения счетчика с 1D |
|
086A |
02 |
|||
086B |
7A |
M4 |
MOV A, D |
|
086C |
32 |
STA 0809H |
Запись второго результата в память |
|
086D |
08 |
|||
086E |
09 |
|||
086F |
76 |
HLT |
Останов программы |
Программа на языке BASIC
Программа была составлена на языке BASIC и отлажена на IBM-совместимом компьютере.
Текст программы
REM Программа по курсовой работе (каф 403).
REM Список переменных:
REM SCHET% - счетчик циклов.
REM D% - входной код.
REM B%, C% - выходные коды.
CLS
REM Задается размерность входного кода.
DIM D%(32)
REM Установка списка данных в начальное положение.
RESTORE
REM Запись входного кода. Цикл.
FOR I%=1 TO 32
REM Чтение I-го элемента входного кода.
READ D%(I%)
NEXT I%
REM Поиск первой комбинации 010. Цикл.
FOR SCHET%=2 TO 31
REM Проверка совпадения.
IF D%(SCHET%-1)=0 AND D%(SCHET%)=1 AND D%(SCHET%+1)=0 THEN GOTO 1
REM Сдвиг "окна".
NEXT SCHET%
REM Запись и вывод результата.
1 B%=SCHET%: PRINT "Номер первой единицы, стоящей между нулями: ";B%
REM Поиск последней комбинации 010. Цикл.
FOR SCHET%=31 TO 2 STEP -1
REM Проверка совпадения и запись результата.
IF D%(SCHET%-1)=0 AND D%(SCHET%)=1 AND D
%(SCHET%+1)=0 THEN GOTO 2
NEXT SCHET%
REM Запись и вывод результата.
2 C%=SCHET%: PRINT "Номер последней единицы, стоящей между нулями: ";C%
REM Входной код.
DATA 0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,0,1
В результате работы программы, на экран было выведено сообщение:
Номер первой единицы, стоящей между нулями: 7
Номер последней единицы, стоящей между
нулями: 30
Использованная
.литература
1.;
2.;
3.;
4..
Для заметок
[1] Необходимые микросхемы регистров и ПЗУ в серии 1533 отсутствуют.