Постоянное запоминающее устройство КР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 - Напряжение питания

 


Оперативное запоминающее устройство КР537РУ8А

 

Рис 3.8 Оперативное запоминающее устройство КР537РУ8А

 


Микросхема представляет собой статическое оперативное запоминающее устройство ёмкостью 16 кбит (2к 8). Предназначено для хранения стека и переменных величин.

 

Таблица 3.71. Таблица истинности

Вход

Вход/выход

Режим работы

CS1 CS2 WR/RD
1 1 X Третье состояние Хранение
0 1 X Третье состояние Хранение
1 0 X Третье состояние Хранение
0 0 1 Выход Считывание
0 0 0 Вход Запись

 

Таблица 3.72. Назначение выводов микросхемы

Вывод Обозначение Тип вывода Функциональное назначение выводов
1-8,19,22,23 A7,A6,A5,A4,A3, A2,A1,A0,A10, A9,A8 Входы Адресные входы
9-17 D0,D1,D2,D3,D4, D5,D6,D7 Выходы Выходы данных
12 GND - Общий
18,20 Входы Входы выборки кристалла
21 WR/WD Входы Вход разрешения записи считывания
24 Ucc - Напряжение питаания

 

Дешифратор возбуждения одноразрядного семисегментного цифрового светодиодного индикатора АЛС324А

 

Рис 3.10 Дешифратор возбуждения одноразрядного семисегментного цифрового светодиодного индикатора АЛС324А


Микросхема состоит из 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

 




Индикатор цифровой АЛС324А

 

Рис.3.11 Индикатор цифровой АЛС324А.

 

Выводит на экран цифры в зависимости от сигналов на входах в семисегментном коде. Состоит из семи светодиодов. Единица, пришедшая на вход, приводит к свечению соответствующего сегмента.

 



КАРТА ПАМЯТИ

Адрес Назначение адреса
0000h – 07D0h ПЗУ
0000h – 0083 область ПЗУ, занимаемая программой
В000h – В7D0h ОЗУ

 



ПРИНЦИП РАБОТЫ ПРОГРАММЫ

Принцип работы программы основан на том, что с использованием модифицированного кода Хемминга можно проводить проверку считанной информации на наличие ошибок. Существует возможность исправить однократные ошибки и обнаружить двойные. Программа управляет считыванием информации с порта, затем заносит их в оперативную память. По нажатию кнопки начинается проверка содержимого на наличие ошибок. На основе маскирования определенных бит и контроля четности формируется четырехбитная характеристическая комбинация, каждому значению которой соответствует свое решение. Таких решений в результате получается четыре:

1. Нет ошибки. Программа просто начинает проверку следующего байта данных, занесенных в ОЗУ.

2. Есть двойная ошибка, тогда выводится сообщение о двойной ошибке в виде адреса, где она зафиксирована, но только с тем различием, что у выводимого адреса будут обнулены четыре старших бита. То есть такое сообщение об ошибке будет иметь вид 0ххх. Программа ждет нажатия кнопки для дальнейшей работы.

3. Ошибка в контрольном бите. Исправляется с помощью заданной маски. Номер ячейки выводится на индикаторы. Программа ждет нажатия кнопки для дальнейшей работы.

3. Есть одиночная ошибка. Ее исправление начинается с формирования маски, в которой все биты будут установлены в ноль и лишь один в единицу. Как раз тот, что должен будет быть исправлен. Далее, с помощью операции XOR (Исключающее ИЛИ) над содержимым ячейки памяти и маской ошибка будет исправлена. Номер ячейки, в которой была ошибка, выводится на индикаторы. Программа ждет нажатия кнопки для дальнейшей работы.

 



ЛИСТИНГ ПРОГРАММЫ

Адрес

Мнемонический код

Код

Комментарии

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, а также некоторого числа дополнительных элементов. Была разработана как аппаратная, так и программная часть системы. Так как система состоит из интегральных микросхем, то она отличается малыми размерами и высокой надежностью.

 




Дата: 2019-12-22, просмотров: 219.