Реализация устройства контроля переданной информации с использованием модифицированного кода Хемминга
Реализация устройства контроля переданной информации с использованием модифицированного кода Хемминга
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ВОЛОГОДСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Дисциплина: Организация ЭВМ и систем
Кафедра: УВС
Курсовой проект
Реализация устройства контроля переданной информации с использованием модифицированного кода Хемминга
Выполнил: Кириллов А. С.
Группа: ЭВ-31
Проверил: Машкин А. В.
Вологда 2011
СОДЕРЖАНИЕ
ВВЕДЕНИЕ1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ2. Разработка структурной схемы устройства3. РАЗРАБОТКА ПРИНЦИПИАЛЬНОЙ ЭЛЕКТРИЧЕСКОЙ СХЕМЫ3.1 Центральный процессор КР580ВМ80А
3.2 Генератор тактовых импульсов КР580ГФ24
3.3 Системный контроллер и шинный формирователь КР580ВК28
ВВЕДЕНИЕВычислительная техника развивалась такими быстрыми темпами, что давно уже принято говорить о поколениях вычислительных машин. За 30 лет своего бурного развития микропроцессорные системы прошли путь от специализированных комплектов интегральных схем к сложным однокристальным микроконтроллерам, имеющих в своем составе целый набор самых различных программируемых элементов. Низкая стоимость, малые габаритные размеры и энергопотребление таких машин позволяет встраивать их во вновь проектируемые устройства. Широкое применение микропроцессоров ставит задачу подготовки специалистов, способных обслуживать эту сложную технику.1. ТЕХНИЧЕСКОЕ ЗАДАНИЕРеализация устройства контроля переданной информации c использованием модифицированного кода Хемминга.С порта А5h считать 2000 байт, разместив их в ОЗУ, начиная с адреса B000h. Считать информационными 4 бита, расположенные во 2, 4, 5 и 6 разрядах передаваемых байт. Остальные разряды в байте отведены для хранения кода Хемминга. Индицировать номер ячейки ОЗУ, в которой была произведена коррекция ошибки или выдать сообщение о невозможности коррекции. Считывание последовательности байт с порта осуществлять путем нажатия кнопки. Переход к проверке содержимого следующих ячеек памяти так же осуществлять путем нажатия на кнопку.2. Разработка структурной схемы устройства
Необходимыми элементами в любой системе являются: микропроцессор, генератор импульсов, системный контроллер микропроцессора, буферные схемы адреса и данных, запоминающие устройства и устройства ввода-вывода (рис 2.1.)
Рис. 2.1. Структурная схема устройства
Главным элементом этой системы является микропроцессор т.к. он управляет работой всей системы. Генератор тактовых импульсов фаз С1, С2 предназначен для синхронизации работы микропроцессора. ПЗУ (постоянное запоминающее устройство) используется для хранения констант и программы работы устройства. Для хранения стека и переменных величин используется ОЗУ (оперативное запоминающее устройство). Устройство ввода вывода предназначено для сопряжения различных типов периферийных устройств с магистралью данных систем обработки информации. Фиксатор состояния применяется для формирования управляющих сигналов и как буферный регистр данных. Для ввода информации используется клавиатура, для вывода - дисплей.
Общий принцип функционирования микропроцессорного устройства заключается в следующем. Из микропроцессора на шину адреса выдается адрес очередной команды. Считанная по этому адресу из памяти (например, из ПЗУ) команда поступает на шину данных и принимается в микропроцессор, где она и исполняется. В счетчике команд микропроцессора формируется адрес следующей команды. После окончания исполнения данной команды на шину адреса поступает адрес следующей команды и т. д.
В процессе исполнения команды могут потребоваться дополнительные обращения к памяти для вызова в микропроцессор дополнительных байтов команды (в случае двух-, трехбайтовых команд), операндов или записи в память числа, выдаваемого из микропроцессора.
Микропроцессор КР580ВМ80А способен адресовать до 64 килобайт памяти, но так как такой объем памяти не требуется, то старшие биты адреса будут использоваться как сигналы выбора микросхем (CS).
3. Разработка принципиальной электрической схемы
3.1 Центральный процессор КР580ВМ80А
Рис 3.1 Центральный процессор КР580ВМ80А
Центральный процессорный элемент КР580ВМ80А является функционально законченным однокристальным параллельным 8-разрядным микропроцессором с фиксированной системой команд. В состав БИС входят: 8-разрядное арифметико-логическое устройство (ALU); регистр признаков (RS), фиксирующий признаки, вырабатываемые ALU в процессе выполнения команд; аккумулятор (А); блок регистров для приема, выдачи и хранения информации в процессе выполнения программ, содержащий программный счетчик (РС), указатель стека (SP), регистр адреса (RGA), шесть регистров общего назначения (B, C, D, E, H, L) и вспомогательные регистры (W и Z); схема управления и синхронизации (CU), формирующая последовательности управляющих сигналов для работы ALU и блока регистров; 16-разрядный буферный регистр адреса (ВА); 8-разрядный буферный регистр данных (BD).
Таблица 3.1 Назначение выводов микросхемы КР580ВМ80А
Вывод
Обозначение
Тип
вывода
Функциональное назначение выводов
1, 25-27,
29-40
A10, A0-A2, A3-A9, A15, A12-A14,A11
Выходы
Канал адреса
2
GND
-
Общий
3-10
D4-D7, D3-D0
Входы/
Выходы
Канал данных
11
UIO
-
Напряжение источника смещения
12
SR
Вход
Установка в исходное состояние, сброс триггеров разрешения прерывания и захвата шины
13
HLD
Вход
Захват
14
INT
Вход
Вход сигнала - запрос прерывания
15,22
С2, С1
Входы
Вход фаз 1 и 2
16
INTE
Выход
Выход сигнала - разрешение прерывания
17
RC
Выход
Прием информации
Вывод
Обозначение
Тип
вывода
Функциональное назначение выводов
18
TR
Выход
Выдача информации
19
SYN
Выход
Сигнал синхронизации
20
UCC1
Напряжение питания +5В
21
HLDA
Выход
Выход сигнала - подтверждение захвата
23
RDY
Вход
Сигнал «Готовность»
24
WI
Выход
Сигнал «Ожидание»
28
Ucc2
-
Напряжение питания +12В
3.2 Генератор тактовых импульсов КР580ГФ24
Рис 3.2 Генератор тактовых импульсов КР580ГФ24
ГТИ формирует тактовые импульсы частотой до 2.5мГц, амплитудой 12 В, тактовые импульсы амплитудой до 5 В для ТТЛ-схем, а также некоторые управляющие сигналы для микропроцессорной системы. Генератор тактовых сигналов состоит из генератора опорной частоты, счетчика-делителя на 9, формирователя фаз С1, С2 и логических схем. Для работы ГТИ необходимо подключение внешнего кварцевого резонатора с частотой колебаний в 9 раз больше чем частота выходных тактовых импульсов ГТИ.
Назначение выводов микросхемы приведено в таблице 3.2.
Таблица 3.2. Назначение выводов микросхемы КР580ГФ24
Вывод
Обозначение
Тип вывода
Функциональное назначение выводов
1
SR
Выход
Установка в исходное состояние микропроцессора и системы
2
RESIN
Вход
Установка 0
3
RDYIN
Вход
Сигнал «Готовность»
4
RDY
Выход
Сигнал «Готовность»
5
SYN
Вход
Сигнал синхронизации
6
C
Выход
Тактовый сигнал, синхронный с фазой С2
7
STB
Выход
Стробирующий сигнал состояния
8
GND
--
Общий
9
UCC2
Вход
Напряжение питания +12В
10
C2
Выход
Тактовые сигналы -- фаза С2
11
C1
Выход
Тактовые сигналы -- фаза С1
12
OSC
Выход
Тактовые сигналы опорной частоты
13
TANK
Вход
Вывод для подключения колебательного контура
14,15
XTAL1,
XTAL2
Вход
Выводы для подключения резонатора
16
UCC1
Вход
Напряжение питания +5В
3.3 Системный контроллер и шинный формирователь КР580ВК28
Рис 3.3 Системный контроллер и шинный формирователь КР580ВК28
Системный контроллер и шинный формирователь КР580ВК28 предназначен для фиксации слова-состояния МП, выработки системных управляющих сигналов, буферизации шины данных МП и управлением передачи данных. Системный контроллер формирует управляющие сигналы по сигналам состояния микропроцессора при обращении к ЗУ: RD и WR; при обращении к УВВ: RD IO и WR IO, а также обеспечивает прием и передачу 8-разрядной информации между каналом данных микропроцессора по выводам D7-D0 и системным каналом по выводам DB7-DB0. Регистр состояния по входному сигналу STB фиксирует информацию состояния микропроцессора в первом такте каждого машинного цикла. Дешифратор управляющих сигналов формирует один из управляющих сигналов в каждом машинном цикле: RD, WR, RD IO, WR IO, INTA. Асинхронный сигнал BUSEN управляет выдачей данных с буферной схемы и управляющих сигналов: при напряжении высокого уровня все выходы микросхемы переводятся в высокоомное состояние.
Назначение выводов микросхемы приведено в таблице 3.3.
Таблица 3.3. Назначение выводов микросхемы
Вывод
Обозначение
Тип вывода
Функциональное назначение выводов
1
STB
Вход
Стробирующий сигнал состояния (от ГТИ)
2
HLDA
Вход
Подтверждение захвата
3
TR
Вход
Выдача информации
4
RC
Вход
Прием информации
5,7
9,11,
13,16,
18,20,
DB4,DB7,
DB3,DB2,
DB0,DB1,
Вход/выход
Канал данных системы
6,8,10,
12,15,17,
19,21
D4,D7,D3,
D2,D0,D1,
D5,D6
Входы/выходы данных со стороны МП
14
GND
--
Общий
22
BUSEN
Вход
Управление передачей данных и выдачей сигналов
23
INTA
Выход
Подтверждение запроса прерывания
24
RD
Выход
Чтение из ЗУ
25
RD IO
Выход
Чтение из УВВ
26
WR
Выход
Запись в ЗУ
27
WR IO
Выход
Запись в УВВ
28
UCC
Вход
Напряжение питания +5В
3.4 Буферный регистр КР580ИР82
Рис 3.4 Буферный регистр КР580ИР82
Буферный регистр КР580ИР82, выполняет роль буфера между МП и шиной данных. Буферный регистр КР580ИР82 представляет собой 8-разрядный параллельный регистр с трехстабильными выходами. Обладает повышенной нагрузочной способностью.
Таблица 3.4. Назначение выводов микросхемы
Вывод
Обозначение
Тип вывода
Функциональное назначение выводов
1
D0-D7
Вход
Информационная шина
2
OE
Вход
Разрешение передачи (управление 3-м состоянием)
10
GND
--
Общий
11
STB
Вход
Стробирующий сигнал
12-19
Q0-Q7
Выход
Информационная шина
20
UCC
--
Напряжение питания +5В
3.5 Параллельный интерфейс КР580ВВ55А
Произведя запись управляющего слова в РУС, можно перевести микросхему в один из трех режимов работы. При подаче SR РУС устанавливается в состояние, при котором все каналы настраиваются на работу в режиме 0 для ввода информации. Формат управляющего слова определения режима работы показан в таблице 3.51.
Параллельный интерфейс КР580ВВ55А предназначен для ввода/вывода параллельной информации различного формата. БИС программируемого параллельного интерфейса (ППИ) может использоваться для сопряжения микропроцессора со стандартным периферийным оборудованием.
В состав БИС входят: двунаправленный 8-разрядный буфер данных (BD), связывающий ППИ с системной шиной данных; блок управления записью/чтением (RWCU), обеспечивающий управление внешними/внутренними передачами данных, управляющих слов и информации о состоянии ППИ; три 8-разрядных канала ввода/вывода (PA, PB, PC) для обмена информацией с внешними устройствами. Режим работы каждого из каналов определяется содержимым регистра управляющего слова (РУС).
Таблица 3.51 Формат управляющего слова, определяющего режим работы:
Разряд УС
Значение разряда УС
Задаваемый режим работы
D7
1
-
D6D5
00
Режим 0 для канала ВА и 4-7 разрядов канала ВС
01
Режим 1 для канала ВА и 4-7 разрядов канала ВС
1X
Режим 2 для канала ВА и 4-7 разрядов канала ВС
D4
0
Вывод из канала ВА
1
Ввод в канал ВА
D3
0
Вывод из 4-7 разрядов канала ВС
1
Ввод в 4-7 разряд канала ВС
D2
0
Режим 0 для канала ВВ и 0-3 разрядов канала ВС
1
Режим 1 для канала ВВ и 0-3 разрядов канала ВС
D1
0
Вывод из канала ВВ
1
Ввод в канал ВВ
D0
0
Вывод из 0-3 разрядов канала ВС
1
Ввод в 0-3 разряды канала ВС
Рис 3.5 Параллельный интерфейс КР580ВВ55А
Назначение выводов микросхемы приведено в таблице 3.52.
Таблица 3.52. Назначение выводов микросхемы
Вывод
Обозначение
Тип
Вывода
Функциональное назначение
вывода
1-4,
37-40
BA3-BA0,
BA7-BA4
Входы/
Выходы
Информационный канал А
5
RD
Вход
Чтение информации
6
CS
Вход
Выбор микросхемы
7
GND
-
Общий
8,9
A1,A0
Вход
Младшие разряды адреса
10-17
BC7-BC4
BC0-BC3
Входы/
Выходы
Информационный канал C
18-25
BB0-BB7
Входы/
Выходы
Информационный канал B
26
Ucc
-
Напряжение питания
27-34
D7-D0
Входы/
Выходы
Канал данных
35
SR
Вход
Установка в исходное состояние
36
WR
Вход
Запись информации
В нашем случае получено управляющее слово 89h - 10001001 - переводит DD7 в режим ввода/вывода (режим 0). Соответственно данное УС определяет: каналы ВА и ВВ - вывод, а все восемь бит канала ВС - ввод.
3.6 Постоянное запоминающее устройство КР556РТ7
Рис 3.7 Постоянное запоминающее устройство КР556РТ7
Микросхема представляет собой однократно программируемое постоянное запоминающее устройство ёмкостью 16 к (2к8) с тремя состояниями на выходе. Предназначено для хранения программы работы устройства и констант.
Таблица 3.61. Таблица истинности
Наличие перемычки в матрице
Состояние входа
Состояние
выхода
Операция
ESE1
ESE2
ESE3
Есть
0
1
1
0
Чтение
Независимо от наличия
Любая другая комбинация
Z
Хранение
Нет
0
1
1
1
Чтение
Таблица 3.62. Назначение выводов микросхемы
Вывод
Обозначение
Тип вывода
Функциональное назначение
выводов
1,2,3,4,5,6,7,8,
21,22,23
A0,A1,A2,A3,A4,
A5,A6,A7,A8, A9,A10
Входы
Адресные входы
9,10,11,13,14,
15,16,17,
D0,D1,D2,D3,D4,
D5,D6,D7
Выходы
Выходы данных
12
GND
-
Общий
18,19,20
ESE3, ESE2,
Входы
Входы разрешения выборки
24
Ucc
-
Напряжение питания
3.7 Оперативное запоминающее устройство КР537РУ8А
Рис 3.8 Оперативное запоминающее устройство КР537РУ8А
Микросхема представляет собой статическое оперативное запоминающее устройство ёмкостью 16 кбит (2к8). Предназначено для хранения стека и переменных величин.
Микросхема состоит из 7 узлов, формирующих управляющий сигнал для одного из семи сегментов индикатора.
Таблица 3.81. Назначение выводов микросхемы
Выход
Обозначение
Тип вывода
Функциональное назначение выводов
2, 3, 4, 5
A2, A1,A3, A0
Входы
Входы BCD чисел
6
DF
Вход
8
GND
-
Общий
9-14,15
a, b, c,
d, e,
f,g
Выходы
Семисегментные выходы “a”, “b”, “c”, “d”, “e”
“f”, “g”
1
DF0
Выход
16
Ucc
Напряжение питания
Таблица 3.82. Таблица истинности
Входы
Выходы
5
3
2
4
9
10
11
12
13
14
15
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
3.9Индикатор цифровой АЛС324А
Рис.3.11 Индикатор цифровой АЛС324А.
Выводит на экран цифры в зависимости от сигналов на входах в семисегментном коде. Состоит из семи светодиодов. Единица, пришедшая на вход, приводит к свечению соответствующего сегмента.
4. КАРТА ПАМЯТИ
Адрес
Назначение адреса
0000h - 07D0h
ПЗУ
0000h - 0083
область ПЗУ, занимаемая программой
В000h - В7D0h
ОЗУ
5. ПРИНЦИП РАБОТЫ ПРОГРАММЫ
Принцип работы программы основан на том, что с использованием модифицированного кода Хемминга можно проводить проверку считанной информации на наличие ошибок. Существует возможность исправить однократные ошибки и обнаружить двойные. Программа управляет считыванием информации с порта, затем заносит их в оперативную память. По нажатию кнопки начинается проверка содержимого на наличие ошибок. На основе маскирования определенных бит и контроля четности формируется четырехбитная характеристическая комбинация, каждому значению которой соответствует свое решение. Таких решений в результате получается четыре:
1. Нет ошибки. Программа просто начинает проверку следующего байта данных, занесенных в ОЗУ.
2. Есть двойная ошибка, тогда выводится сообщение о двойной ошибке в виде адреса, где она зафиксирована, но только с тем различием, что у выводимого адреса будут обнулены четыре старших бита. То есть такое сообщение об ошибке будет иметь вид 0ххх. Программа ждет нажатия кнопки для дальнейшей работы.
3. Ошибка в контрольном бите. Исправляется с помощью заданной маски. Номер ячейки выводится на индикаторы. Программа ждет нажатия кнопки для дальнейшей работы.
3. Есть одиночная ошибка. Ее исправление начинается с формирования маски, в которой все биты будут установлены в ноль и лишь один в единицу. Как раз тот, что должен будет быть исправлен. Далее, с помощью операции XOR (Исключающее ИЛИ) над содержимым ячейки памяти и маской ошибка будет исправлена. Номер ячейки, в которой была ошибка, выводится на индикаторы. Программа ждет нажатия кнопки для дальнейшей работы.
6. ЛИСТИНГ ПРОГРАММЫ
Адрес
Мнемонический код
Код
Комментарии
0000
MVI A, 89h
3E
заносим упр. слово в аккумулятор
0001
89
0002
OUT 3h
D3
отправляем 89 (10001001) в РУС
0003
03
0004
LXI D,B000h
11
Задаем начальное значение регистровой паре, содержащей адрес ячейки памяти
0005
00
0006
B0
0007
LXI B,7D0h
01
Задаем начальное значение регистровой паре, содержащей счетчик
0008
D0
0009
07
000A
IN 2h
DB
Прием сигнала от кнопки для начала записи последовательности байт в ОЗУ
000B
02
000C
m1: IN A5h
DB
Начало цикла, записывающего в ОЗУ принимаемую с порта информацию
000D
A5
000E
STAX D
12
Запись содержимого аккумулятора в ячейку памяти, адрес которой хранится в DE
000F
INX D
13
Выбираем адрес следующей ячейки
0010
DCX B
0B
Счетчик записанных байт уменьшаем
0011
JNZ m1
C2
Если записаны не все 2000 байт, то переходим на следующий оборот цикла
0012
0C
0013
00
0014
LXI D, AFFFh
11
Задаем начальное значение регистровой паре, содержащей адрес ячейки памяти
0015
FF
0016
AF
0017
LXI B,7D1h
01
Задаем начальное значение регистровой паре, содержащей счетчик
0018
D1
0019
07
001A
m2: IN 2h
DB
Прием сигнала от кнопки для начала проверки
001B
02
001C
m7: DCX B
0B
Уменьшаем регистр-счетчик
001D
JZ m11
CA
Если обработаны все занесенные в память байты, то переход на завершение программы
001E
83
001F
00
0020
INX D
13
Выбор следующей ячейки памяти изменением регистра, содержащего адрес
0021
LDAX D
1A
Запись байта информации в аккумулятор из ячейки по адресу из DE
0022
ANI 78h
E6
Используем маску для отделения бит, важных для составления и анализа первого синдрома
0023
78
0024
JPO m3
E2
Если количество бит, выставленных в единицу - четное, то ошибки в анализируемых битах нет
0025
29
0026
00
0027
MVI Н,4h
26
Выполняется только тогда, когда есть ошибка. Запись в Н 100b
0028
04
0029
m3:LDAX D
1A
Запись байта информации в аккумулятор из ячейки по адресу из DE
002A
ANI 66h
E6
Используем маску для отделения бит, важных для составления и анализа второго синдрома
002B
66
002C
JPO m4
E2
Если количество бит, выставленных в единицу - четное, то ошибки в анализируемых битах нет
002D
33
002E
00
002F
MVI A, 2h
3E
Начало участка, выполняемого только тогда, когда есть ошибка. Запись в (А) 10b
0030
02
0031
ADD H
84
Прибавляем регистр H к (А)
0032
MOV H,A
67
Заносим в регистр Н результат суммирования. Т.е. в Н оказывается х10b
0033
m4:LDAX D
1A
Запись байта информации в аккумулятор из ячейки по адресу из DE
0034
ANI 55h
E6
Используем маску для отделения бит, важных для составления и анализа третьего синдрома
0035
55
0036
JPO m5
E2
Если количество бит, выставленных в единицу - четное, то ошибки в анализируемых битах нет
0037
3D
0038
00
0039
MVI A, 1h
3E
Начало участка, выполняемого только тогда, когда есть ошибка. Запись в (А) 1b
003A
01
003B
ADD H
84
Прибавляем регистр H к (А)
003C
MOV H,A
67
Заносим в регистр Н результат суммирования. Т.е. в Н оказывается хх1b
003D
m5:LDAX D
1A
Запись байта информации в аккумулятор из ячейки по адресу из DE
003E
ANI FFh
E6
Операция И по результатам которой производится проверка четности. Реализация проверки по контрольному биту
003F
FF
0040
JPO m6
E2
Если количество бит, выставленных в единицу - четное, то ошибки в анализируемых битах нет
0041
47
0042
00
0043
MVI A, 8h
3E
Начало участка, выполняемого только тогда, когда есть ошибка. Запись в (А) 1000b
0044
08
0045
ADD H
84
Прибавляем регистр H к (А)
0046
MOV H,A
67
Заносим в регистр Н результат суммирования. Т.е. в Н оказывается 1хххb
0047
m6: MOV A, H
7C
Заносим в регистр А результат предыдущих проверок.
0048
CPI 0h
FE
Сравнение с нулем. В регистре Н может оказаться 0 только, если ошибки нет
0049
00
004A
JZ m7
CA
Если ошибки нет, то переход на анализ следующего байта
004B
1C
004C
00
004D
CPI 8h
FE
Значение регистра Н от 1h до 7h говорит, что зафиксирована двойная ошибка
004E
08
004F
JP m8
F2
Если в ходе сравнения вычитанием получилось положительное число, значит двойной ошибки нет. Переход к исправлению одинарной.
0050
5D
0051
00
0052
MOV A,D
7A
Заносим в регистр А старший байт адреса
0053
ANI 0Fh
E6
С помощью операции И обнуляем четыре старших бита
0054
0F
0055
OUT 0h
D3
Вывод содержимого А на индикаторы, предназначенные для отображения старшей части адреса
0056
00
0057
MOV A,E
7B
Заносим в регистр А младший байт адреса
0058
OUT 1h
D3
Вывод содержимого А на индикаторы, предназначенные для отображения младшей части адреса
0059
01
005A
JMP m2
C3
Переход на запрос продолжения обработки данных, поступивших в ОЗУ
005B
1A
005C
00
005D
m8: CPI 8h
FE
Значение регистра Н 1000b говорит, что зафиксирована ошибка в контрольном бите
005E
08
005F
JNZ m9
C2
Если ошибка не в контрольном бите, то одинарная ошибка в одном из оставшихся семи битах. Переход к его исправлению
0060
6D
0061
00
0062
XRI 80h
EE
Исправление в контрольном бите
0063
80
0064
MOV A,D
7A
Заносим в регистр А старший байт адреса
0065
OUT 0h
D3
Вывод на индикаторы старшего байта адреса
0066
00
0067
MOV A,E
7B
Заносим в регистр А младший байт адреса
0068
OUT 1h
D3
Вывод на индикаторы младшего байта адреса
0069
01
006A
JMP m2
C3
Переход на запрос продолжения обработки данных, поступивших в ОЗУ
006B
1A
006C
00
006D
m9: SUI 8h
D6
Вычитая 1000b, преобразуем содержимое регистра к номеру бита, где зафиксирована ошибка
006E
08
006F
MOV H,A
67
Содержимое аккумулятора переносим в Н
0070
MVI A, 80h
3E
Записываем в А байт, который будет использоваться для коррекции ошибки
0071
80
0072
m10: RAL
17
Сдвигаем единицу столько раз, сколько указано в Н
0073
DCR H
25
0074
JNZ m10
C2
0075
72
0076
00
0077
MOV H,A
67
Переносим в Н получившуюся маску для исправления ошибки
0078
LDAX D
1A
Заносим в А подлежащий исправлению байт
0079
XRA H
AC
С помощью операции XOR исправляем ошибку
007A
MOV A,D
7A
Заносим в регистр А старший байт адреса
007B
OUT 0h
D3
Вывод на индикаторы старшего байта адреса
007C
00
007D
MOV A,E
7B
Заносим в регистр А младший байт адреса
007E
OUT 1h
D3
Вывод на индикаторы младшего байта адреса
007F
01
0080
JMP m2
C3
Переход на запрос продолжения обработки данных, поступивших в ОЗУ
0081
1A
0082
00
0083
m11: NOP
00
Конец программы
0084
0085
0086
0087
0088
0089
008A
008B
008C
008D
008E
008F
0090
ЗАКЛЮЧЕНИЕ
В ходе данной работы была спроектирована микропроцессорная система для контроля переданной информации использованием модифицированного кода Хемминга. Эта система собрана на базе микропроцессорного комплекта КР580, а также некоторого числа дополнительных элементов. Была разработана как аппаратная, так и программная часть системы. Так как система состоит из интегральных микросхем, то она отличается малыми размерами и высокой надежностью.
СПИСОК СПРАВОЧНОЙ ЛИТЕРАТУРЫ
1. Абрайтис В.Б. Микропроцессоры и микропроцессорные комплекты интегральных микросхем: Справочник. В 2 т. / Абрайтис В.Б., Аверьянов Н.Н., Белоус А.И. и др.; Под ред. В.А. Шахнова. - М.: Радио и связь, 1988. - 368 с.
2. Горбунов В.Л. Справочное пособие по микропроцессорам и микроЭВМ / В.Л. Горбунов, Д.И. Панфилов, Д.Л. Преснухин. - М.: Высш. шк., 1988 . - 272 с.: ил.
3. Калабеков Б. А. Микропроцессоры и их применение в системах передачи и обработки сигналов: Учеб. Пособие для ВУЗов. -- М.: Радио и связь, 1988.
4. Угрюмов Е. Цифровая схемотехника / Е. Угрюмов - БХВ Санкт-Петербург, 2000 - 528с.