Министерство Образования Украины
Кременчугский Государственный Политехнический Институт
Контрольное задание по дисциплине
“ Микропроцессорные средства и системы ”
Вариант № 7
Группа Э-41-З, студент **********
Преподаватель : Михальчук В.Н
Кременчуг 1998
Контрольная работа № 1
Преобразовать числа из десятичной системы счисления в двоичную и шестнадцатеричную : 5 ; 38 ; 93 ; 175 ; 264.
Десятичная система | Двоичная система | Шестнадцатеричная система | ||||||||||
5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 5 | ||
38 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 26 | ||
93 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 5D | ||
175 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | AF | ||
264 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 108 |
Задача № 2
Преобразовать числа, записанные в прямом двоичном коде в десятичный и шестнадцатеричный код : 0011 ; 1000010 ; 00011011000 .
Прямой двоичный код | Десятичный код | Шестнадцатеричный код | ||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 3 | 3 | ||
0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 66 | 42 | ||
0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 216 | D8 |
Задача № 3
Выполнить следующие арифметические действия с двоичными числами, заданными в прямом коде : 0011 + 1000110 ; 10000001 - 1000110
+ | 0 | 0 | 1 | 1 | + | 3 | - | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | - | 1 | 2 | 9 | ||||||||||
1 | 0 | 0 | 0 | 1 | 1 | 0 | 7 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 7 | 0 | ||||||||||||
1 | 0 | 0 | 1 | 0 | 0 | 1 | 7 | 3 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 5 | 9 | |||||||||||
Задача № 4
Выполнить следующее арифметическое действие в 8-ми разрядной сетке ( старший бит содержит знак числа ) : 5 х 25
х | 0 | . | 0 | 0 | 1 | 1 | 0 | 0 | 1 | х | 2 | 5 | |||||||||||||||||
0 | . | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 5 | ||||||||||||||||||||
0 | 0 | 1 | 1 | 0 | 0 | 1 | |||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | |||||||||||||||||||||||
0 | 0 | 1 | 1 | 0 | 0 | 1 | |||||||||||||||||||||||
0 | . | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 2 | 5 |
Контрольная работа № 2
Задача № 1
Определить размер памяти в килобайтах ( байтах ), если данная память адресуется с адреса A0EDH по адрес EF34H. Одна ячейка памяти занимает 8 бит
Для решения определим вначале кол-во ячеек памяти, адресуемых одним разрядом при 16- теричной системе адресации.
4-й разряд | 3-й разряд | 2-й разряд | 1-й разряд | H |
4096 | 256 | 16 | 1 | H |
Таким образом, начальный и конечный адреса в десятичной системе будут :
A0EDH = 4096 * 10 + 256 * 0 + 16 * 14 + 1 * 13 + 1= 41198 ;
EF34H = 4096 * 14 + 256 * 15 + 16 * 3 + 1 * 4 +1 = 61237 .
61237 - 41198 = 20039.
20039 = 19 * 1024 + 583.
Итак, размер памяти будет 20039 байт или 19 кБ. 583 байт
Задача № 2
Символьная строка расположена в ОЗУ начиная с адреса 0006H. Известно, что под каждый символ отводится одна ячейка памяти. Число символов в строке = 731. Определить адрес для обращения к последнему символу строки.
Порядковый номер последней ячейки памяти в десятичной системе будет 731 + 6 = 737. Переведем 738 из десятичной системы в двоичную :
73710 = 0010111000012
Теперь переводим в 16 - теричную : 0010111000012 = 02E116
Ответ : адрес последнего символа 02E1H
Задача № 3
Составить программу на Ассемблере с комментариями :
Подсчитать число символов в строке, расположенной в области начиная с адреса 1000H и заканчивая адресом 2000H без учета пробелов, если известно, что каждый символ занимает одну ячейку памяти и пробел кодируется как 01H.
Максимальное число символов в строке 2000h -1000h=1000h=409610
После выполнения программы результат будет помещен в HL.
LXI SP,3000h ; указание вершины стека
LXI H,1000h ; адрес 1-го элемента => в HL
LXI D,1000h ; загрузка счетчика в D,E
XRA A ; обнуление аккумулятора
STA 2001h ; обнуление счетчика количества символов
STA 2002h ; обнуление счетчика количества символов
MVI B,01h ; код пробела => в В
LOOP:
MOV A,M ; загрузить символ из ячейки М в аккумулятор
CMP B ; проверка на код пробела
JNZ COUNT ; если не совпадает, переход к COUNT, иначе - дальше
INX H ; адрес следующего символа
DCX D ; уменьшить счетчик
JZ EXIT ; если счетчик = 0, на выход
JMP LOOP ; в начало цикла
COUNT:
PUSH H ; выгрузить содержимое HL в стек
LHLD 2001h ; загрузить HL содержимым счетчика количества символов
INX H ; увеличить счетчик на 1
SHLD 2001h ; сохранить счетчик количества символов в 2001h, 2002h
POP H ; восстановить в HL сохраненный адрес
RET ; возврат из подпрограммы
EXIT:
LHLD 2001h ; загрузить HL содержимым счетчика количества символов
END
Задача № 4
Составить программу на Ассемблере, направленную на решение математической функции :
Z = lg(x+1)
Натуральный и десятичный логарифмы одного и того же числа (в данном случае - выражения) связаны простым соотношением, позволяющим переходить от одного к другому :
lg x = Mlnx , где M = 1/ln10 = 0,434294481903252…
т.е., десятичный логарифм числа x = натуральному логарифму этого же числа, умноженному на постоянный множитель M = 0,434294481903252…, называемый модулем перехода от натуральных логарифмов к десятичным.
В соответствии с вышесказанным, lg (x+1) = 0,434294481903252…* ln(x+1)
Для вычисления ln(x+1) используем разложение в ряд :
ln(x+1) = x-x2/2+x3/3-x4/4+x5/5-x6/6+x7/7-x8/8+…
В результате алгоритм решения сводится к четырем арифметическим действиям : + ; - ; * ; /.
Перед выполнением арифметических действий над числами с плавающей запятой условимся первое число размещать в регистрах EHL, второе – в регистрах DBC; результат операции оставлять в EHL.
Формат представления чисел с плавающей запятой :
S | P | P | P | P | P | P | P | P | M | M | M | M | M | M | M | M | M | M | M | M | M | M | M |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | |
1-й байт | 2-й байт | 3-й байт |
Где : S – знак числа ( 1-отрицательный, 0-положительный ), P0…P7 – 8-битный смещенный порядок, M1 … M15 – мантисса . Скрытый бит целой части мантиссы в нормализованных числах содержит 1
1000h | X |
1001h | |
1003h | |
1003h | X2 |
1004h | |
1005h | |
1006h | X3 |
1007h | |
1008h | |
1009h | X4 |
100Ah | |
100Bh | |
100Ch | X5 |
100Dh | |
100Eh | |
100Fh | X6 |
1010h | |
1011h | |
1012h | X7 |
1013h | |
1014h | |
1020h | Адрес ячейки с текущим XN |
1021h | |
1022h | Текущий N |
До начала вычислений число Х должно быть размещено в памяти по адресам 1000h-1002h.
;начало цикла вычислений
CALC1:
LXI H,1003h ; сохранение адреса первой ячейки
SHLD 1020h ; для хранения XN
CALL LOAD ; Загрузка Х в EHL
;цикл вычисления XN
CALC2:
CALL LOAD1 ;Загрузка Х в DBC
CALL MULF ; Умножение чисел с плавающей точкой
MOV B,H ; HL=>BC
MOV C,L
LHLD 1020h ;загрузить адрес ячейки памяти для хранения Хn
MOV M,E ;Хn => в память
INX H
MOV M,B
INX H
MOV M,C
INX H
SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn
MOV H,B ;BC=>HL
MOV L,C
LDA 1021h ;содержимое ячейки => в аккумулятор
CPI 15h ;если получены все значения Хn,
JZ CALC3 ;переход на CALC3
JMP CALC2 ;иначе- в начало
CALC3:
LXI H,1022h ;
MVI M,01h ;загрузить в ячейку 1022h делитель
LXI H,1003h ;
SHLD 1020h ;содержимое HL => в память
;цикл вычисления XN/N
CALC4:
MOV B,H ; HL=>BC
MOV C,L
LHLD 1020h ;загрузить адрес ячейки памяти для хранения N
MOV E,M ;Хn => в регистры
INX H
MOV B,M
INX H
MOV C,M
SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn
MOV H,B ;BC=>HL
MOV L,C
PUSH H ;
LXI H,1022h ;N => в ячейку С
MOV C,M
POP H ;
MVI D,00h
MVI B,00h
CALL DIVF ; Деление чисел с плавающей точкой
MOV B,H ; HL=>BC
MOV C,L
LHLD 1020h ;загрузить адрес ячейки памяти для хранения Хn/N
DCX H ;
DCX H ;
MOV M,E ;Хn/N => в память
INX H
MOV M,B
INX H
MOV M,C
INX H
SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N
MOV H,B ;BC=>HL
MOV L,C
PUSH H ;
LXI H,1022h ;N => в ячейку С
MOV C,M ;инкремент N
INR C
MOV M,C
POP H ;
LDA 1021h ;содержимое ячейки => в аккумулятор
CPI 15h ;если получены все значения Хn,
JZ CALC5 ;переход на CALC5
JMP CALC4 ;иначе- в начало
CALC5:
LXI H,1003h ;
SHLD 1020h ;
;
CALC6:
LHLD 1020h ;загрузить адрес ячейки памяти для хранения N
MOV D,M ;Хn/N => в регистры D,B,C.
INX H
MOV B,M
INX H
MOV C,M
INX H
SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N
;
;вычисление ln(x+1)
CALC7:
CALL LOAD ; Загрузка Х в EHL
CALL SUBF ; Вычитание чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
CALL ADDF ; Сложение чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
CALL SUBF ; Вычитание чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
CALL ADDF ; Сложение чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
CALL SUBF ; Вычитание чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
CALL ADDF ; Сложение чисел с плавающей точкой
CALL CALC8 ; загрузка Хn+1/N+1 в регистры D,B,C.
MVI D,00h ; загрузка модуля пере-
MVI B,2Bh ; хода в DBC
MVI C,2Bh
CALL MULF ; Умножение ln(x+1) на модуль перехода к lg
JMP EXIT ; на выход
;
;загрузка Хn+1/N+1 в регистры D,B,C.
CALC8:
PUSH H
LHLD 1020h ;загрузить адрес ячейки памяти для хранения N
MOV D,M ;Хn/N => в регистры D,B,C.
INX H
MOV B,M
INX H
MOV C,M
INX H
SHLD 1020h ;запомнить адрес ячейки памяти для следующего Хn/N
POP H ;
RET ;
;
EXIT:
HLT ; Останов
;
;
;
;Загрузка Х в EHL
LOAD:
LXI H,1000h ;загрузка в HL адреса порядка Х
MOV E,M ;загрузка порядка Х в Е
LHLD 1001h ;загрузка мантиссы в HL
RET ;
;Загрузка Х в DBC
LOAD1:
PUSH H ;выгрузка в стек HL
LXI H,1000h ;загрузка в HL адреса порядка Х
MOV D,M ;загрузка порядка Х в D
INX H ;
MOV B,M ;
INX H ;
MOV C,M ;загрузка мантиссы в BC
POP H ;загрузка из стека HL
RET ;
;Образование дополнительного кода числа в регистре HL
comp:
mov A,H ;
CMA ;
MOV H,A ;
MOV A,L ;
CMA ;
MOV L,A ;
INX H ;
RET ;
;Проверка знака и образование дополнительного кода
NEG:
MOV A,E ;
ORA E ;
JP NOTDK ;
CALL COMP ; Образование дополнительного кода числа в регистре HL
NOTDK: RET ;
;Сдвиг содержимого HL вправо на 1 бит:
SHIFT:
MOV A,H ;
RAR ;
MOV H,A ;
MOV A,L ;
RAR ;
MOV L,A ;
RET ;
;Обмен содержимого регистров EHL и DBC
SWAP:
PUSH B ;
XTHL ;
POP B ;
MOV A,D ;
MOV D,E ;
MOV E,A ;
RET ;
;Восстановление числа с плавающей точкой
REC:
MOV A,H ;
ADD A ;
MOV A,E ;
RAL ;
MOV E,A ;
MOV A,H ;
ORI 80H ;
MOV H,A ;
RET ;
;Преобразование числа в стандартный формат
PACK:
LDA SIGN ;
ADD A ;
MOV A,E ;
MOV D,A ;
RAR ;
MOV E,A ;
MOV A,H ;
ANI 7FH ;
MOV H,A ;
MOV A,D ;
RRC ;
ANI 80H ;
ORA H ;
MOV H,A ;
RET ;
;Сложение чисел с плавающей точкой
ADDF:
MOV A,D ;
XRA E ;
JP ADDF1 ;
MOV A,D ;
XRI 80H ;
MOV D,A ;
JMP SUBF ;
;
ADDF1:
MOV A,D ;
ORA B ;
ORA C ;
JZ ADDF8 ;
MOV A,E ;
ORA H ;
ORA L ;
JNZ ADDF2 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
JMP ADDF8 ;
;
ADDF2:
MOV A,D ;
STA SIGN ;
CALL REC ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
CALL REC ; Восстановление числа с плавающей точкой
;
MOV A,E ;
SUB D ;
JNC ADDF3 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
MOV A,E ;
SUB D ;
;
; В EHL большее число, в аккумуляторе разность потенциалов
ADDF3:
JZ ADDF6 ;
CPI 16 ;
JC ADDF4 ;
JMP ADDF7 ;
;
;Можно сдвигать мантиссу меньшего числа
ADDF4:
MOV E,A ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
ADDF5:
ORA A ;
CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:
INR E ;
DCR D ;
JNZ ADDF5 ;
;
;В регистре Е общий порядок. Можно складывать мантиссы
ADDF6:
DAD B ;
JNC ADDF7 ;
INR E ;
JZ ADDF8 ;
ORA A ;
CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:
;
ADDF7:
CALL PACK ; Преобразование числа в стандартный формат
;
ADDF8:
RET ;
;
;Вычитание чисел с плавающей точкой
SUBF:
MOV A,D ;
XRA E ;
JP SUBF1 ;
MOV A,D ;
XRI 80H ;
MOV D,A ;
JMP ADDF ; Сложение чисел с плавающей точкой
SUBF1:
MOV A,D ;
ORA B ;
ORA C ;
JZ SUBFA ;
MOV A,E ;
ORA H ;
ORA L ;
JNZ SUBF2 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
MOV A,E ;
XRI 80H ;
MOV E,A ;
JMP SUBFA ;
SUBF2:
MOV A,E ;
STA SIGN ;
CALL REC ; Восстановление числа с плавающей точкой
CALL SWAP ; Обмен содержимого регистров EHL и DBC
CALL REC ; Восстановление числа с плавающей точкой
MOV A,D ;
SUB E ;
JNZ SUBF3 ;
MOV A,B ;
CMP H ;
JNZ SUBF3 ;
MOV A,C ;
CMP L ;
JNZ SUBF3 ;
MVI E,0 ;
LXI H,0 ;
JMP SUBFA ;
;
;операнды не равны, необходимо вычитать
SUBF3:
JNC SUBF4 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
LDA SIGN ;
XRI 80H ;
STA SIGN ;
;
SUBF4:
MOV A,D ;
SUB E ;
JZ SUBF7 ;
CPI 16 ;
JC SUBF5 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
JMP SUBF ;
;
;В регистре А разность порядков, в DBC больший операнд
SUBF5:
MOV E,A ;
SUBF6:
ORA A ;
CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:
DCR E ;
JNZ SUBF6 ;
;
;Вычесть мантиссы, результат в EHL
SUBF7:
MOV A,C ;
SUB L ;
MOV L,A ;
MOV A,B ;
SBB H ;
MOV H,A ;
MOV E,D ;
;
;нормализовать и проверить антипереполнение
SUBF8:
MOV A,H ;
ORA H ;
JM SUBF9 ;
DCR E ;
MOV A,E ;
CPI 0FFH ;
STC ;
JZ SUBFA ;
DAD H ;
JMP SUBF8 ;
;
SUBF9:
CALL PACK ; Преобразование числа в стандартный формат
SUBFA:
RET ;
;
;Умножение чисел с плавающей точкой
MULF:
MOV A,E ;
ORA H ;
ORA L ;
JZ MULF8 ;
MOV A,D ;
ORA B ;
ORA C ;
JNZ MULF1 ;
CALL SWAP ; Обмен содержимого регистров EHL и DBC
JMP MULF8 ;
;
;операнды ненулевые, можно умножать
MULF1:
MOV A,D ;
XRA E ;
STA SIGN ;
CALL REC ; Восстановление числа с плавающей точкой
CALL SWAP ; Обмен содержимого регистров EHL и DBC
CALL REC ; Восстановление числа с плавающей точкой
MOV A,D ;
ADD E ;
JC MULF2 ;
SUI 127 ;
JNC MULF3 ;
JMP MULF8 ;
;
MULF2:
ADI 129 ;
JNC MULF3 ;
JMP MULF8 ;
;
;в аккумуляторе А смещенный порядок произведения
MULF3:
MOV C,A ;
MOV E,B ;
MVI D,0 ;
MOV A,H ;
LXI H,0 ;
XCHG ;
DAD H ;
XCHG ;
;
;начало цикла умножения
MULF4:
ORA A ;
RAR ;
JNC MULF5 ;
DAD D ;
;
MULF5:
JZ MULF6 ;
XCHG ;
DAD H ;
XHG ;
JMP MULF4 ;
;
;проверить нарушение нормализации
MULF6:
JNC MULF7 ;
CALL SHIFT ; Сдвиг содержимого HL вправо на 1 бит:
INR C ;
STC ;
JZ MULF8 ;
;
MULF7:
MOV E,C ;
CALL PACK ; Преобразование числа в стандартный формат
;
MULF8:
RET ;
;
;Деление чисел с плавающей точкой
DIVF:
MOV A,E ;
ORA H ;
ORA L ;
JZ DIVF7 ;
MOV A,D ;
ORA B ;
ORA C ;
STC ;
JZ DIVF7 ;
;операнды не равны нулю
MOV A,D ;
XRA E ;
STA SIGN ;
CALL REC ; Восстановление числа с плавающей точкой
CALL SWAP ; Обмен содержимого регистров EHL и DBC
CALL REC ; Восстановление числа с плавающей точкой
CALL SWAP ; Обмен содержимого регистров EHL и DBC
MOV A,E ;
SUB D ;
JNC DIVF1 ;
ADI 127 ;
CMC ;
JC DIVF7 ; возикло антипереполнение
JMP DIVF2 ; перейти на деление мантисс
;
DIVF1:
ADI 127 ; прибавить смещение
JC DIVF7 ; возникло антипереполнение
;
;можно начинать деление мантисс
DIVF2:
STA EXP ;
XCHG ;
LXI H,0 ;
MVI A,16 ; инициализировать счетчик
PUSH PSW ;
JMP DIVF4 ; войти в цикл деления
;
DIVF3:
PUSH PSW ;
DAD H ; сдвинуть влево
XCHG ; частное и остаток
DAD H ;
XCHG ;
;
DIVF4:
PUSH D ; сохранить остаок в стеке
MOV A,E ; вычесть делитель из остатка
SUB C ;
MOV E,A ;
MOV A,D ;
SBB B ;
MOV D,A ;
JC DIVF5 ;
POP PSW ; удалить остаток из стека
INR L ;
PUSH D ;
;
DIVF5:
POP D ; извлечь предыдущий остаток
POP PSW ; извлечь счетчик
DCR A ; декремент счетчика
JNZ DIVF3 ; повторить цикл деления
; деление мантисс закончено
LDA EXP ;
MOV E,A ;
; нормализовать частное
MOV A,H ;
ORA A ;
JM DIVF6 ;
DAD H ;
DCR E ;
CPI 0FFH ; проверить антипереполнение
STC ;
JZ DIVF7 ; возникло антипереполнение
;
DIVF6:
CALL PACK ; Преобразование числа в стандартный формат
DIVF7:
RET ;
;
Контрольная работа № 3
Задача № 1
Построить модель распределения адресного пространства с указанием диапазонов адресов в 16-й системе счисления. В качестве дешифратора адресов используется стандартный дешифратор, к информационным входам которого подключены линии А15, А12, А9 16-разрядной шины адреса.
Выходы дешиф-ратора | Разряды адреса | Диапазоны адресов | |||||||||||||||
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Y0 | 0 | X | X | 0 | X | X | 0 | X | X | X | X | X | X | X | X | X | 0000h-01FFh, 0400h-05FFh, 0800h-0DFFh 2000h-21FFh, 2400h-25FFh, 2800h-2DFFh 4000h-41FFh, 4400h-45FFh, 4800h-4DFFh 6000h-61FFh, 6400h-65FFh, 6800h-6DFFh |
Y1 | 0 | X | X | 0 | X | X | 1 | X | X | X | X | X | X | X | X | X | 0200h-03FFh, 0600h-07FFh, 0A00h-0FFFh 2200h-23FFh, 2600h-27FFh, 2A00h-2FFFh 4200h-43FFh, 4600h-47FFh, 4A00h-4FFFh 6200h-63FFh, 6600h-67FFh, 6A00h-6FFFh |
Y2 | 0 | X | X | 1 | X | X | 0 | X | X | X | X | X | X | X | X | X | 1000h-11FFh, 1400h-15FFh, 1800h-1DFFh 3000h-31FFh, 3400h-35FFh, 3800h-3DFFh 5000h-51FFh, 5400h-55FFh, 5800h-5DFFh 7000h-71FFh, 7400h-75FFh, 7800h-7DFFh |
Y3 | 0 | X | X | 1 | X | X | 1 | X | X | X | X | X | X | X | X | X | 1200h-13FFh, 1600h-17FFh, 1A00h-1FFFh 3200h-33FFh, 3600h-37FFh, 3A00h-3FFFh 5200h-53FFh, 5600h-57FFh, 5A00h-5FFFh 7200h-73FFh, 7600h-77FFh, 7A00h-7FFFh |
Y4 | 1 | X | X | 0 | X | X | 0 | X | X | X | X | X | X | X | X | X | 8000h-81FFh, 8400h-85FFh, 8800h-8DFFh A000h-A1FFh, A400h-A5FFh, A800h-ADFFh C000h-C1FFh, C400h-C5FFh, C800h-CDFFh E000h-E1FFh, E400h-E5FFh, E800h-EDFFh |
Y5 | 1 | X | X | 0 | X | X | 1 | X | X | X | X | X | X | X | X | X | 8200h-83FFh, 8600h-87FFh, 8A00h-8FFFh A200h-A3FFh, A600h-A7FFh, AA00h-AFFFh C200h-C3FFh, C600h-C7FFh, CA00h-CFFFh E200h-E3FFh, E600h-E7FFh, EA00h-EFFFh |
Y6 | 1 | X | X | 1 | X | X | 0 | X | X | X | X | X | X | X | X | X | 9000h-91FFh, 9400h-95FFh, 9800h-9DFFh B000h-B1FFh, B400h-B5FFh, B800h-BDFFh D000h-D1FFh, D400h-D5FFh, D800h-DDFFh F000h-F1FFh, F400h-F5FFh, F800h-FDFFh |
Y7 | 1 | X | X | 1 | X | X | 1 | X | X | X | X | X | X | X | X | X | 9200h-93FFh, 9600h-97FFh, 9A00h-9FFFh B200h-B3FFh, B600h-B7FFh, BA00h-BFFFh D200h-D3FFh, D600h-D7FFh, DA00h-DFFFh F200h-F3FFh, F600h-F7FFh, FA00h-FFFFh |
В итоге адресное пространство размером в 64 Кбайт разбито на диапазоны для 8 устройств. В каждом диапазоне выделено 8 участков по 512 байт и 4 участка по 1536 байт.
Задача № 2
Требуется выделить зоны адресного пространства для размещения в них адресов для устройств, указанных в таблице. В качестве адресного дешифратора используется ПЗУ. Построить схемы выделения соответствующих блоков адресов и таблицу диапазонов адресов.
Наименование устройства | Диапазон адресов | Емкость (Кбайт) |
ПЗУ1 | 0000h-03FFh | 1 |
ОЗУ1 | 0400h-0BFFh | 2 |
УВВ1 | 2000h-2FFFh | 4 |
ПЗУ2 | 3000h-4FFFh | 8 |
ОЗУ2 | 5000h-6FFFh | 8 |
УВВ2 | 8000h-FFFFh | 32 |
Так как наименьший блок имеет размер 1К ячеек, то разрешающая способность дешифратора должна обеспечивать деление адресного пространства с точностью до зон размером 1К ячеек. Анализируя шесть старших разрядов адреса, получаем необходимую точность, поскольку они делят все адресное пространство обьемом 64К ячеек на 26 = 64 части по 1К ячеек, что и требуется.
Выбираем за основу ПЗУ с 10 адресными входами 2716 ( К573РФ2 ), имеющее структуру 2К*8 бит . Выходы 00 - 05 этого ПЗУ подключаем к инверсным входам выбора кристалла соответсвующих микросхем.
Разрабатываем прошивку ПЗУ.
Устройство | Диапазон адресов | Адресные входы | Выходы | |||||
A5 | A4 | A3 | A2 | A1 | A0 | 0 1 2 3 4 5 | ||
ROM 1 | 0000h-03FFh | 0 | 0 | 0 | 0 | 0 | 0 | 0 1 1 1 1 1 |
RAM 1 | 0400h-07FFh | 0 | 0 | 0 | 0 | 0 | 1 | 1 0 1 1 1 1 |
0800h-0BFFh | 0 | 0 | 0 | 0 | 1 | 0 | 1 0 1 1 1 1 | |
- | 0C00h-0FFFh | 0 | 0 | 0 | 0 | 1 | 1 | 1 1 1 1 1 1 |
1000h-13FFh | 0 | 0 | 0 | 1 | 0 | 0 | 1 1 1 1 1 1 | |
1400h-17FFh | 0 | 0 | 0 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
1800h-1BFFh | 0 | 0 | 0 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
1C00h-1FFFh | 0 | 0 | 0 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
IN-OUT 1 | 2000h-23FFh | 0 | 0 | 1 | 0 | 0 | 0 | 1 1 0 1 1 1 |
2400h-27FFh | 0 | 0 | 1 | 0 | 0 | 1 | 1 1 0 1 1 1 | |
2800h-2BFFh | 0 | 0 | 1 | 0 | 1 | 0 | 1 1 0 1 1 1 | |
2C00h-2FFFh | 0 | 0 | 1 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
ROM 2 | 3000h-33FFh | 0 | 0 | 1 | 1 | 0 | 0 | 1 1 1 1 1 1 |
3400h-37FFh | 0 | 0 | 1 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
3800h-3BFFh | 0 | 0 | 1 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
3C00h-3FFFh | 0 | 0 | 1 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
4000h-43FFh | 0 | 1 | 0 | 0 | 0 | 0 | 1 1 1 1 1 1 | |
4400h-47FFh | 0 | 1 | 0 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
4800h-4BFFh | 0 | 1 | 0 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
4C00h-4FFFh | 0 | 1 | 0 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
RAM 2 | 5000h-53FFh | 0 | 1 | 0 | 1 | 0 | 0 | 1 1 1 1 1 1 |
5400h-57FFh | 0 | 1 | 0 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
5800h-5BFFh | 0 | 1 | 0 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
5C00h-5FFFh | 0 | 1 | 0 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
6000h-63FFh | 0 | 1 | 1 | 0 | 0 | 0 | 1 1 1 1 1 1 | |
6400h-67FFh | 0 | 1 | 1 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
6800h-6BFFh | 0 | 1 | 1 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
6C00h-6FFFh | 0 | 1 | 1 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
- | 7000h-73FFh | 0 | 1 | 1 | 1 | 0 | 0 | 1 1 1 1 1 1 |
7400h-77FFh | 0 | 1 | 1 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
7800h-7BFFh | 0 | 1 | 1 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
7C00h-7FFFh | 0 | 1 | 1 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
Устройство | Диапазон адресов | Адресные входы | Выходы | |||||
A5 | A4 | A3 | A2 | A1 | A0 | 0 1 2 3 4 5 | ||
IN-OUT 2 | 8000h-83FFh | 1 | 0 | 0 | 0 | 0 | 0 | 1 1 1 1 1 1 |
8400h-87FFh | 1 | 0 | 0 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
8800h-8BFFh | 1 | 0 | 0 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
8C00h-8FFFh | 1 | 0 | 0 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
9000h-93FFh | 1 | 0 | 0 | 1 | 0 | 0 | 1 1 1 1 1 1 | |
9400h-97FFh | 1 | 0 | 0 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
9800h-9BFFh | 1 | 0 | 0 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
9C00h-9FFFh | 1 | 0 | 0 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
A000h-A3FFh | 1 | 0 | 1 | 0 | 0 | 0 | 1 1 1 1 1 1 | |
A400h-A7FFh | 1 | 0 | 1 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
A800h-ABFFh | 1 | 0 | 1 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
AC00h-AFFFh | 1 | 0 | 1 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
B000h-B3FFh | 1 | 0 | 1 | 1 | 0 | 0 | 1 1 1 1 1 1 | |
B400h-B7FFh | 1 | 0 | 1 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
B800h-BBFFh | 1 | 0 | 1 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
BC00h-BFFFh | 1 | 0 | 1 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
C000h-C3FFh | 1 | 1 | 0 | 0 | 0 | 0 | 1 1 1 1 1 1 | |
C400h-C7FFh | 1 | 1 | 0 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
C800h-CBFFh | 1 | 1 | 0 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
CC00h-CFFFh | 1 | 1 | 0 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
D000h-D3FFh | 1 | 1 | 0 | 1 | 0 | 0 | 1 1 1 1 1 1 | |
D400h-D7FFh | 1 | 1 | 0 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
D800h-DBFFh | 1 | 1 | 0 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
DC00h-DFFFh | 1 | 1 | 0 | 1 | 1 | 1 | 1 1 1 1 1 1 | |
E000h-E3FFh | 1 | 1 | 1 | 0 | 0 | 0 | 1 1 1 1 1 1 | |
E400h-E7FFh | 1 | 1 | 1 | 0 | 0 | 1 | 1 1 1 1 1 1 | |
E800h-EBFFh | 1 | 1 | 1 | 0 | 1 | 0 | 1 1 1 1 1 1 | |
EC00h-EFFFh | 1 | 1 | 1 | 0 | 1 | 1 | 1 1 1 1 1 1 | |
F000h-F3FFh | 1 | 1 | 1 | 1 | 0 | 0 | 1 1 1 1 1 1 | |
F400h-F7FFh | 1 | 1 | 1 | 1 | 0 | 1 | 1 1 1 1 1 1 | |
F800h-FBFFh | 1 | 1 | 1 | 1 | 1 | 0 | 1 1 1 1 1 1 | |
FC00h-FFFFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 1 1 1 1 1 |
Схема дешифратора :
Карта памяти :
3FFh | 7FFh | BFFh | FFFh | ||
0000h | ROM 1 | RAM 1 | - | 0FFFh | |
1000h | - | 1FFFh | |||
2000h | IN-OUT 1 | 2FFFh | |||
3000h | ROM 2 | 3FFFh | |||
4000h | 4FFFh | ||||
5000h | RAM 2 | 5FFFh | |||
6000h | 6FFFh | ||||
7000h | - | 7FFFh | |||
8000h | IN-OUT 2 | 8FFFh | |||
9000h | 9FFFh | ||||
A000h | AFFFh | ||||
B000h | BFFFh | ||||
C000h | CFFFh | ||||
D000h | DFFFh | ||||
E000h | EFFFh | ||||
F000h | FFFFh | ||||
000h | 400h | 800h | C00h |
Задача № 3
Разделить адресное пространство 64 килобайта на 18 равных частей. В качестве дешифратора адреса используется ПЛМ. Разбиение адресного пространства показать в виде схемы и таблицы.
Размер одной части 65536 / 18 = 3640 байт. Т.к. 3640 * 18 = 65520, последние 16 ячеек не будут использоваться.
Произведем разбиение 3640 байт на участки 2N :
3640 = 2048 + 1024 + 512 + 32 + 16 + 8
В результате получим 6 областей памяти по 18 участков в каждой :
0000h-8FFFh ( участки размером 2048 )
9000h-D7FFh ( участки размером 1024 )
D800h-FBFFh ( участки размером 512 )
FC00h-FE3Fh ( участки размером 32 )
FE40h-FF5Fh ( участки размером 16 )
FF60h-FFEFh ( участки размером 8 )
Прошивка ПЛМ 1
Область | Диапазон адресов | Разряды адреса | |||||||||||||||
1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
1 | 0000h-07FFh | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X |
9000h-93FFh | 1 | 0 | 0 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | |
D800h-D9FFh | 1 | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | |
FC00h-FC1Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | X | X | X | X | X | |
FE40h-FE4Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | X | X | X | X | |
FF60h-FF67h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | |
2 | 0800h-0FFFh | 0 | 0 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | X |
9400h-97FFh | 1 | 0 | 0 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | |
DA00h-DBFFh | 1 | 1 | 0 | 1 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | |
FC20h-FC3Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | X | X | X | X | X | |
FE50h-FE5Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | X | X | X | X | |
FF68h-FF6Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | X | X | X | |
3 | 1000h-17FFh | 0 | 0 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | X |
9800h-9BFFh | 1 | 0 | 0 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | |
DC00h-DDFFh | 1 | 1 | 0 | 1 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | |
FC40h-FC5Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | X | X | X | X | X | |
FE60h-FE6Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | X | X | X | X | |
FF70h-FF77h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | X | X | X | |
4 | 1800h-1FFFh | 0 | 0 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | X |
9C00h-9FFFh | 1 | 0 | 0 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | |
DE00h-DFFFh | 1 | 1 | 0 | 1 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | |
FC60h-FC7Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | X | X | X | X | X | |
FE70h-FE7Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | X | X | X | X | |
FF78h-FF7Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | |
5 | 2000h-27FFh | 0 | 0 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X |
A000h-A3FFh | 1 | 0 | 1 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | |
E000h-E1FFh | 1 | 1 | 1 | 0 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | |
FC80h-FC9Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | X | X | X | X | X | |
FE80h-FE8Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | X | X | X | X | |
FF80h-FF87h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | X | X | X | |
6 | 2800h-2FFFh | 0 | 0 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | X |
A400h-A7FFh | 1 | 0 | 1 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | |
E200h-E3FFh | 1 | 1 | 1 | 0 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | |
FCA0h-FCBFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | X | X | X | X | X | |
FE90h-FE9Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | X | X | X | X | |
FF88h-FF8Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | X | X | X | |
7 | 3000h-37FFh | 0 | 0 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | X |
A800h-ABFFh | 1 | 0 | 1 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | |
E400h-E5FFh | 1 | 1 | 1 | 0 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | |
FCC0h-FCDFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | X | X | X | X | X | |
FEA0h-FEAFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | X | X | X | X | |
FF90h-FF97h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | X | X | X | X | |
8 | 3800h-3FFFh | 0 | 0 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | X |
AC00h-AFFFh | 1 | 0 | 1 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | |
E600h-E7FFh | 1 | 1 | 1 | 0 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | |
FCEOh-FCFFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | X | X | X | X | X | |
FEB0h-FEBFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | X | X | X | X | |
FF98h-FF9Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | X | X | X | X | |
9 | 4000h-47FFh | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X |
B000h-B3FFh | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | |
E800h-E9FFh | 1 | 1 | 1 | 0 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | |
FD00h-FD1Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | X | X | X | X | X | |
FEC0h-FECFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | X | |
FFA0h-FFA7h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | X | X | X | X |
Прошивка ПЛМ 2
Область | Диапазон адресов | Разряды адреса | |||||||||||||||
1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
10 | 4800h-4FFFh | 0 | 1 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | X |
B400h-B7FFh | 1 | 0 | 1 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | |
EA00h-EBFFh | 1 | 1 | 1 | 0 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | |
FD20h-FD3Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | X | X | X | X | X | |
FED0h-FEDFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | X | X | X | X | |
FFA8h-FFAFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | X | X | X | |
11 | 5000h-57FFh | 0 | 1 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | X |
B800h-BBFFh | 1 | 0 | 1 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | |
EC00h-EDFFh | 1 | 1 | 1 | 0 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | |
FD40h-FD5Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | X | X | X | X | X | |
FEE0h-FEEFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | X | X | X | X | |
FFB0h-FFB7h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | X | X | X | |
12 | 5800h-5FFFh | 0 | 1 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | X |
BC00h-BFFFh | 1 | 0 | 1 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | |
EE00h-EFFFh | 1 | 1 | 1 | 0 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | |
FD60h-FD7Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 1 | X | X | X | X | X | |
FEF0h-FEFFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | X | X | X | X | |
FFB8h-FFBFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | X | X | X | |
13 | 6000h-67FFh | 0 | 1 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | X |
C000h-C3FFh | 1 | 1 | 0 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | |
F000h-F1FFh | 1 | 1 | 1 | 1 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | |
FD80h-FD9Fh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | X | X | X | X | X | |
FF00h-FFOFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | X | X | X | X | |
FFC0h-FFC7h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | X | X | X | |
14 | 6800h-6FFFh | 0 | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X |
C400h-C7FFh | 1 | 1 | 0 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | |
F200h-F3FFh | 1 | 1 | 1 | 1 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | |
FDA0h-FDBFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | X | X | X | X | X | |
FF10h-FF1Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | X | X | X | X | |
FFC8h-FFCFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | X | X | X | |
15 | 7000h-77FFh | 0 | 1 | 1 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | X |
C800h-CBFFh | 1 | 1 | 0 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | |
F400h-F5FFh | 1 | 1 | 1 | 1 | 0 | 1 | 0 | X | X | X | X | X | X | X | X | X | |
FDC0h-FDDFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | X | X | X | X | X | |
FF20h-FF2Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | X | X | X | X | |
FFD0h-FFD7h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | X | X | X | |
16 | 7800h-7FFFh | 0 | 1 | 1 | 1 | 0 | X | X | X | X | X | X | X | X | X | X | X |
CC00h-CFFFh | 1 | 1 | 0 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | X | |
F600h-F7FFh | 1 | 1 | 1 | 1 | 0 | 1 | 1 | X | X | X | X | X | X | X | X | X | |
FDE0h-FDFFh | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | X | X | X | X | X | |
FF30h-FF3Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | X | X | X | X | |
FFD8h-FFDFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | X | X | X | X | |
17 | 8000h-87FFh | 1 | 0 | 0 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | X |
D000h-D3FFh | 1 | 1 | 0 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | |
F800h-F9FFh | 1 | 1 | 1 | 1 | 1 | 0 | 0 | X | X | X | X | X | X | X | X | X | |
FE00h-FE1Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | X | X | X | X | X | |
FF40h-FF4Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 0 | X | X | X | X | |
FFE0h-FFE7h | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | X | X | X | X | |
18 | 8800h-8FFFh | 1 | 0 | 0 | 0 | 0 | X | X | X | X | X | X | X | X | X | X | X |
D400h-D7FFh | 1 | 1 | 0 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | X | |
FA00h-EBFFh | 1 | 1 | 1 | 1 | 1 | 0 | 1 | X | X | X | X | X | X | X | X | X | |
FE20h-FE3Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | X | X | X | X | X | |
FF50h-FF5Fh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | X | X | X | X | |
FFE8h-FFEFh | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | X | X | X | X |
В результате получена таблица прошивки ПЛМ для разделения адресного пространства 64 кБ на 18 несплошных равных частей.
Исходя из требуемого количества произведений ( 18 * 6 = 108 ) и количества выходных функций (18), выбираем в качестве элементной базы выпускаемую фирмой ADVANCED MICRO DEVICES микросхему ПЛМ PLS30S16. Эта микросхема позволяет за счет мультиплексирования четырех адресных входов с выходами иметь от 12 до 17 входов и от 8 до 12 выходов при количестве произведений до 64.
Для решения поставленной задачи берем две ПЛМ, запараллеленные входы которых подключены к шине адреса, а выходы – к входам выбора кристалла соответствующих микросхем.
Технические данные на ПЛМ PLS30S16 фирмы AMD :
- IC MASTER/Windows -
(Title) :PLD|BIP||OTPRC
Section :PROGRAMMABLE LOGIC DEVICES
CAT0 :PLD
Category :Bipolar
CAT1 :BIP
MinorA :One-Time
Programmable~Registered/Combinatorial Outputs
CAT3 :OTPRC
MDD Code :AMD
Manufacturer's Name:ADVANCED MICRO DEVICES
Device Number :PLS30S16-40
Disc :*93
Date :10/26/92
Oper :BAC
Transcode :E
RBASE :30S16
MBase :PLS30S16
Data Book :DATASHEET
Propagation Delay (:40
Maximum Clock (MHz):22.2
Product Terms :64
Flip-Flops :12
Dedicated Inputs :12-17
Bidirectional I/Os :8-12
Standby Current (mA:225
Active Current (mA):225
Pins :28
Has Image :N
20
Похожие работы
... проведение погрузочно-разгрузочных работ и расширить возможности модульной комплектации ТС для транспортировки крупногабаритных грузов. Создание системы стабилизации ПКП является актуальной задачей. 2.1. Постановка задачи Требуется разработать систему автоматической стабилизации пневмоколесной платформы для перевозки крупногабаритных грузов. Система должна обеспечивать горизонтальное ...
... процессорной станции осуществлять высоконадежную защиту и эффективный контроль доступа на объект защиты. 2.Выбор и обоснование технических требований Структура технических средств системы защиты и контроля доступа в помещения (СЗКДП) должна представлять собой двухуровневую централизованную систему, работающую в реальном времени. На верхнем уровне — пульт управления (ЭВМ, совместимая с IBM ...
... и дробных разрядов. Так, например, сокращенной записи числа 737.25 соответствует его значение, вычисленное согласно равенству (1. 1): 737.25 =7 · 102 + 3 · 101 + 7 · 100 + 2 · 10-1 + 5 · 10-1. В двоичной системе счисления для представления чисел используются две цифры: 0 и 1. Действуя согласно с (1.1), значение двоичного числа, например, 11110010. 0110 можно представить в следующем виде: ...
... дображення стану систем і т. п. В курсовому проекті я розробляю лічильник, який рахує число людей. 1.Основна частина 1.1 Розробка технічного завдання Загальні відомості: Мікропроцесорній пристрій, який рахує число імпульсів готової продукції. Призначення розробки: розробка МПС з навчальною метою. Вимоги до МПС: Тип МК ATtiny2313, індикація на 2 розряда, число імпульсів – 10, індикац ...
0 комментариев