Автор работы: Пользователь скрыл имя, 15 Февраля 2012 в 10:32, курсовая работа
Микропроцессорный комплект серии КР580 — набор микросхем, аналогичных набору микросхем Intel 82xx. Использовался в советских компьютерах, таких как Радио 86РК, ЮТ-88, Микроша, и т. д. Представляет собой 8-разрядный комплект на основе n-МОП технологии. Система команд СМ1800, ГОСТ 11305.910-80. Большинство микросхем является аналогами чипов серии MCS-85 фирмы Intel.
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1. Задание. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Структурная схема . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Описание функциональных узлов . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 Микропроцессор КР580ВМ80А . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Генератор тактовых импульсов КР580ГФ24 . . . . . . . . . . . . . 9
3.3 Системный контроллер КР580ВК28 . . . . . . . . . . . . . . . . . . . 10
3.4 Буферный регистр КР580ИР82 . . . . . . . . . . . . . . . . . . . . . . . 12
3.5 Таймер КР580ВИ53. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.6 Шинный формирователь КР580ВА86 . . . . . . . . . . . . . . . . . . 19
3.7 Параллельный интерфейс КР580ВВ55А . . . . . . . . . . . . . . . 20
3.8 Ввод информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.9 Вывод информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.10. Разработка памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4. Рекомендации по применению . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5. Алгоритм работы ВС . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6. Инструкция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7. Разработка программного обеспечения . . . . . . . . . . . . . . . . . . . . . 34
7.1. Листинг программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Библиографический список . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Приложение 1. Принципиальная электрическая схема устройства
Приложение 2. Перечень использованных элементов
6. Инструкция
Для ввода чисел на клавиатуре имеется клавиша ВВОД. Ввод чисел нужно осуществлять в следующей последовательности: сначала нажать клавишу ВВОД, а затем набрать число (цифры 0-F).
После ввода чисел следует выбрать режим генерации: автоматический или одиночная генерация. Для выбора автоматического режима нужно нажать клавишу АВТ, для выбора режима одиночной генерации клавишу ШАГ. Если никакая из клавиш АВТ/ ШАГ не нажата, генератор псевдослучайных чисел будет работать в режиме одиночной генерации.
Для правильной работы ВС и получения ожидаемого псевдослучайного числа. Числа a1, a2, m из формулы
следует
вводить в определенной последовательности,
а именно: сначала ввести число m, затем
число c, и последним а.
7. Разработка программного обеспечения
При работе генератора псевдослучайных чисел нужно организовать задержку в 2 секунды. Задержки будет реализована программно с помощью команды NOP. Поскольку команда NOP занимает четыре такта, а длительность такта 400 нс, то не трудно подсчитать что при выполнении команды будет организована задержка в 1600 нс. Среднее количество тактов при работе в автоматическом режиме составляет примерно – 500 тактов, что соответствует времени в 5 мкс (несущественно). Организуем задержку в 2 секунды. Для этого команду NOP (с учётом цикла) нужно повторить 3 FFFCh = 4h*FFFFh раз. Следует организовать цикл с командой NOP путем вычитания из числа FFFFh единицы и команды условного перехода JNZ, сам цикл нужно повторить 8 раз. В результате будет получена задержка в 4 с.
В таблице 7 указаны области хранения операндов в ОЗУ.
Таблица 7
8000 | 8001 | 8002 | 8003 | 8004 | 8005 | 8006 | 8007 |
m | c | a | а·Ij |
7.1 Листинг программы
Адрес | Мнемоника | Код | Комментарий |
0000 | MVI A, 1001 0011b | 3E | Запись в регистр аккумулятора УС |
0001 | 93 | для МС КР580ВВ55А (1) | |
0002 | OUT 01 | D3 | Отправляем управляющее слово |
0003 | 01 | в МС параллельного порта КР580ВВ55А (1) | |
0004 | MVI A, 1000 1001b | 3E | Запись в регистр аккумулятора УС |
0005 | 89 | для МС КР580ВВ55А (2) | |
0006 | OUT 83 | D3 | Отправляем управляющее слово |
0007 | 83 | в МС параллельного порта КР580ВВ55А (2) | |
0008 | MVI A, 00110000b | 3E | Запись в регистр аккумулятора УС |
0009 | 30 | для МС КР580ВИ53 | |
000A | OUT 00 | D3 | Отправляем управляющее слово |
000B | 00 | в МС ПТ КР580ВИ53 | |
000C | MVI A, FF | 3E | Отправляем в счетчик число |
000D | FF | ||
000E | OUT 00 | D3 | |
000F | 00 | ||
0010 | MVI A, FF | 3E | |
0011 | FF | ||
0012 | OUT 00 | D3 | |
0013 | 00 | ||
0014 | m1, m11: IN 04 | DB | Ввод чисел по опросу |
0015 | 04 | Ожидание введения числа m | |
0016 | СPI 01 | FE | |
0017 | 01 | ||
0018 | JNZ m1: 0014 | C2 | |
0019 | 14 | ||
001A | 00 | ||
001B | IN 03 | DB | Запись старшего байта в регистр А |
001C | 03 | ||
001D | STA 8000 | 32 | Пересылка числа в ОЗУ |
001E | 00 | ||
001F | 80 | ||
0020 | IN 03 | DB | Запись младшего байта в регистр А |
0021 | 03 | ||
0022 | STA 8001 | 23 | Пересылка числа в ОЗУ |
0023 | 01 | ||
0024 | 80 | ||
0025 | m2: IN 04 | DB | Ожидание введения числа a2 |
0026 | 04 | ||
0027 | СPI 01 | FE | |
0028 | 01 | ||
0029 | JNZ m2: 0025 | C2 | |
002A | 25 | ||
002B | 00 | ||
002C | IN 03 | DB | Запись старшего байта в регистр А |
002D | 03 | ||
002E | STA 8002 | 32 | Пересылка числа в ОЗУ |
002F | 02 | ||
0030 | 80 | ||
0031 | IN 03 | DB | Запись младшего байта в регистр А |
0032 | 03 | ||
0033 | STA 8003 | 23 | Пересылка числа в ОЗУ |
0034 | 03 | ||
0035 | 80 | ||
0036 | m3: IN 04 | DB | Ожидание введения числа а1 |
0037 | 04 | ||
0038 | СPI 01 | FE | |
0039 | 01 | ||
003А | JNZ m3: 0036 | C2 | |
003B | 36 | ||
003C | 00 | ||
003D | IN 03 | DB | Запись старшего байта в регистр А |
003E | 03 | ||
003F | STA 8004 | 32 | Пересылка числа в ОЗУ |
0040 | 04 | ||
0041 | 80 | ||
0042 | IN 03 | DB | Запись младшего байта в регистр А |
0043 | 03 | ||
0044 | STA 8005 | 23 | Пересылка числа в ОЗУ |
0045 | 05 | ||
0046 | 80 | ||
0047 | MVI A 0000 0000b | 3E | Взять число с таймера |
0048 | 00 | ||
0049 | OUT 00 | D3 | Послать управляющее слово в таймер |
004A | 00 | ||
004B | IN 00 | DB | Взять значение с таймера (старшая часть) |
004C | 00 | ||
004D | MOV A,H | 7C | |
004E | IN 00 | DB | Взять значение с таймера(младшая часть) |
004F | 00 | ||
0050 | CPI 00 | FE | Проверка |
0051 | 00 | ||
0052 | JNZ m4: 006F | C2 | |
0053 | 6F | ||
0054 | 00 | ||
0055 | MVI A, 00110000b | 3E | Загружаем в МС КР580ВИ53 |
0056 | 30 | новое число | |
0057 | OUT 00 | D3 | |
0058 | 00 | ||
0059 | MVI A, FF | 3E | Отправляем в счетчик число |
005A | FF | ||
005B | OUT 00 | D3 | |
005C | 00 | ||
005D | MVI A, FF | 3E | |
005E | FF | ||
005F | OUT 00 | D3 | |
0060 | 00 | ||
0061 | NOP | 00 | Организуем небольшую задержку |
0062 | NOP | 00 | |
0063 | NOP | 00 | |
0064 | NOP | 00 | |
0065 | NOP | 00 | |
0066 | MVI A 0000 0000b | 3E | Взять число с таймера |
0067 | 00 | ||
0068 | OUT 00 | D3 | Послать управляющее слово в таймер |
0069 | 00 | ||
006A | IN 00 | DB | Взять значение с таймера (старшая часть) |
006B | 00 | ||
006C | MOV A,H | 7C | |
006D | IN 00 | DB | Взять значение с таймера(младшая часть) |
006E | 00 | ||
006F | m4: MOV A,L | 7D | Перемножение а1·J |
0070 | m14: MVI B, 80 | 06 | Взять а1 из ОЗУ |
0071 | 80 | ||
0072 | MVI C, 04 | 0E | |
0073 | 04 | ||
0074 | LDAX B | 0A | (A) ← [(BC)] |
0075 | MOV A, D | 7A | Старшая часть числа а1 в регистре D |
0076 | INX B | 03 | |
0077 | LDAX B | 0A | |
0078 | MOV A, E | 7B | Младшая часть числа а1 в регистре Е |
0079 | MOV H, B | 60 | |
007A | MOV L, C | 69 | |
007B | DCX D | 1B | Организация перемножения сложением |
007C | m5: DAD B | 09 | (HL) ← (HL)+(BC) |
007D | DCX D | 1B | |
007E | JNZ m5: 007C | C2 | Организация цикла сложения |
007F | 7C | ||
0080 | 00 | ||
0081 | SHLD 8006 | 22 | Сохранить результат в ОЗУ |
0082 | 06 | ||
0083 | 80 | Перемножение а2·J | |
0084 | MVI B, 80 | 06 | Взять а2 из ОЗУ |
0085 | 80 | ||
0086 | MVI C, 02 | 0E | |
0087 | 02 | ||
0088 | LDAX B | 0A | (A) ← [(BC)] |
0089 | MOV A, D | 7A | Старшая часть числа а2 в регистре D |
008A | INX B | 03 | |
008B | LDAX B | 0A | |
008C | MOV A, E | 7B | Младшая часть числа а2 в регистре Е |
008D | MOV H, B | 60 | |
008E | MOV L, C | 69 | |
008F | DCX D | 1B | Организация перемножения сложением |
0090 | m6: DAD B | 09 | (HL) ← (HL)+(BC) |
0091 | DCX D | 1B | |
0092 | JNZ m6: 0090 | C2 | Организация цикла сложения |
0093 | 90 | ||
0094 | 00 | Сложение результатов двух | |
0095 | MVI B, 80 | 06 | перемножений: (a1·J+a2·J) |
0096 | 80 | Взять a1·J из ОЗУ | |
0097 | MVI C, 08 | 0E | |
0098 | 08 | ||
0099 | LDAX B | 0A | (A) ← [(BC)] |
009A | MOV A, D | 7A | Старшая часть числа a1·J в регистре D |
009B | INX B | 03 | |
009C | LDAX B | 0A | |
009D | MOV A, E | 7B | Младшая часть числа a1·J в регистре Е |
009E | DAD D | 19 | Сложение a1·J+a2·J |
009F | MOV B, H | 44 | |
00A0 | MOB C, L | 4D | Вычисление (a1×Ij+a2×Ij) mod m |
00A1 | LHLD | 2A | Взять m из ОЗУ |
00A2 | 80 | ||
|
00 | ||
00A4 | MOV D, H | 54 | |
00A5 | MOV E, L | 5D | |
00A6 | m9: MOV H, B | 60 | |
00A7 | MOV L, C | 69 | |
00A8 | MOV A, C | 79 | Реализация (a1×Ij+a2×Ij) mod m |
00A9 | SUB E | 93 | |
00AA | JNC m7: 00B1 | D2 | |
00AB | B1 | ||
00AC | 00 | ||
00AD | DCR B | 05 | |
00AE | JC m8: 00B8 | DA | |
00AF | B8 | ||
00B0 | 00 | ||
00B1 | m7: MOV C, A | 4F | |
00B2 | MOV A, B | 78 | |
00B3 | SUB D | 92 | |
00B4 | MOV B, A | 47 | |
00B5 | JNC m9: 00A6 | D3 | |
00B6 | A6 | ||
00B7 | 00 | ||
00B8 | m8: IN 04 | DB | |
00B9 | 04 | ||
00BA | CPI 03 | FE | Проверка режима |
00BB | 03 | ||
00BC | JZ m10: 00C8 | CA | |
00BD | C8 | ||
00BE | 00 | Режим одиночной генерации | |
00BF | MOV A, H | 7C | Вывод на параллельный порт |
00C0 | OUT 80 | D3 | |
00C1 | 80 | ||
00C2 | MOV A, L | 7D | |
00C3 | OUT 81 | D3 | |
00C4 | 81 | ||
00С5 | JMP m11: 0014 | C3 | |
00С6 | 14 | ||
00С7 | 00 | ||
00С8 | m10: MVI B, 08 | 06 | Автоматический режим |
00С9 | 04 | Организация задержки | |
00СA | m13: MVI H, FF | 26 | |
00CB | FF | ||
00CC | MVI L, FF | 2E | |
00CD | FF | ||
00CE | m12: NOP | 00 | |
00CF | DCH H | 2B | |
00D0 | CPI 00 | FE | |
00D1 | 00 | ||
00D2 | JNZ m12: 00CE | C2 | |
00D3 | CE | ||
00D4 | 00 | ||
00D5 | DCR B | 05 | |
00D6 | CPI 00 | FE | |
00D7 | 00 | ||
00D8 | JNZ m13: 00CA | C2 | |
00D9 | CA | ||
00DA | 00 | ||
00DB | MOV A, H | 7C | Вывод на параллельный порт |
00DC | OUT 80 | D3 | |
00DD | 80 | ||
00DE | MOV A, L | 7D | |
00DF | OUT 81 | D3 | |
00E0 | 81 | ||
00E1 | JMP m14: 0070 | C3 | |
00E2 | 70 | ||
00E3 | 00 |
Заключение
В
ходе проделанной работы была реализована
ВС генератора псевдослучайных чисел.
ВС спроектирована на базе МПК КР580, основным
элементом ВС является МП КЗ580ВМ80А. Для
ВС была разработана как аппаратная, так
и программная часть.
Библиографический список
Список использованной литературы:
1. Шахнов, В. А. Микропроцессоры и микропроцессорные комплекты интегральных схем: Справочник. В 2-х т./ Под ред. В. А. Шахнова. – М.: Радио и связь, 1988г.
2. Быстров, Ю. А. Электроника: справочная книга/ Ю. А. Быстров, Я. М.
Великсон, В. Д. Вогман и др.; под ред. Ю. А. Быстрова. – СПб.: Энергоатомиздат, 1996. – 544 с., ил.
3. Нефедов, А. В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 2. – М.: ИП РадиоСофт, 2000. – 640 с., ил.
4. Нефедов, А. В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 5. – М.: КУбК-а, 1997. – 608 с., ил.
5. Нефедов, А. В. Интегральные микросхемы и их зарубежные аналоги: Справочник. Т. 3. – М.: ИП РадиоСофт, 2000. – 576 с., ил.
6. Орлов,
С. А. Организация ЭВМ и систем: учебник
для вузов/ С. А. Орлов, Б. Я. Цилькер. – СПб.:
Питер, 2004. – 668 с., ил.
Интернет источники:
7. http://www.computer-museum.ru/
8. http://www.acust.narod.ru/
9. http://cxem.net/beginner/
Приложения
Информация о работе Проектирование устройств на базе МПК КР580