Адрес ЯП | 83F8 | 83F9 | 83FA | 83FB | 83FC | 83FD | 83FE | 83FF | |||
|
Рис.2. Состояние индикаторов EJE после выполнения программы по заданию примера 1 (83F8 – 73H; 83F9 – CBH; 83FF – FFH)
3. Подготовка к выполнению работы
3.1. Изучить задание на лабораторную работу.
3.2. Изучить последовательность действий (табл.1) и программу (табл.2) примера 1.
3.3. Изучить учебный материал по [1, c. 18-134].
3.4. Разработать схему алгоритма решения задачи.
3.5. Используя ППП Word, выполнить заготовки для табл. 1 и рис. 2.
4. Задание на выполнение исследований
4.1. В соответствии с заданием (табл.3) рассчитать число циклов для формирования требуемой временной задержки.
4.2. Перевести полученное значение NЦ в шестнадцатеричное представление.
4.3. В соответствии с алгоритмом и полученными исходными данными разработать программу и внести ее в заготовку табл. 1.
4.4. Рассчитать схему отображения результатов на индикаторах УОУ.
4.5. Ввести программу в память УОУ, начиная с адреса 8200.
4.6. Запустить программу на выполнение.
4.7. Сверить полученные результаты с рассчитанными.
4.8. При совпадении результатов, показать решение преподавателю, при несовпадении – отыскать ошибку и отладить программу.
4.9. Подготовить отчет о выполнении работы.
5. Содержание отчета
Отчет о выполненной лабораторной работе должен содержать:
5.1. Тему и цель выполнения работы.
5.2. Расчет числа циклов по заданному варианту исходных данных.
5.3. Схему алгоритма решения задачи.
5.4. Таблицу с программой модуля временной задержки.
5.5. Схему индикаторов с результатами решения задачи.
5.6. Выводы по проведенным исследованиям.
6. Контрольные вопросы
6.1. Изобразите и поясните временную диаграмму работы ГТИ МП К580.
6.2. Изобразите и поясните общую структуру машинного цикла.
6.3. Изобразите и поясните общую структуру командного цикла.
6.4. Изобразите и поясните структуру командного цикла (для заданной преподавателем команды).
6.5. Перечислите и поясните типы машинных циклов.
6.6. Поясните сущность способа косвенного адресования, использованного в программе.
6.7. Поясните порядок выполнения лабораторного задания.
Лабораторная работа № 4
Тема: Разработка программных модулей кодирующих устройств помехоустойчивых кодов на четность, нечетность, с повторением, кода Бауэра
1. Цель работы: привитие навыков разработки программных модулей кодирующих устройств на языке ассемблера.
2. Краткие сведения из теории
Обработка информации в микропроцессорных системах всегда связана с ее перемещением – перемещением во времени (процессы хранения) и перемещением в пространстве (процессы передачи на расстояние). И в том, и в другом случае в процессе перемещения информации на нее осуществляется воздействие, как преднамеренное, так и непреднамеренное, стремящееся или способное исказить ее содержание.
С увеличением объемов и скорости перемещаемой информации обыкновенные неизбыточные коды не способны выполнить требования к достоверности этих процессов, поэтому все большее значение приобретают различные способы помехоустойчивого кодирования, обеспечивающие обнаружение и (или) исправление возникающих в процессе перемещения ошибок.
В настоящее время в значительной мере кодирующие и декодирующие устройства строятся аппаратным способом. Однако в последние годы, в силу развития микроконтроллерных устройств и СБИС программируемой логики, все большее применение находят программные способы реализации различных способов помехоустойчивого кодирования: от самых простых (кодирования на четность и нечетность) до сложных каскадных и сверточных кодов.
2.1. Код с одной проверкой на четность (нечетность)
Данный код независимо от длины кодовой комбинации содержит всего один проверочный символ. Этот символ выбирается таким, чтобы его сумма по модулю два со всеми информационными символами равнялась нулю.
Пример 1
Исходная кодовая комбинация с четырьмя информационными символами имеет вид Х = 1001.
Закодированная помехоустойчивым кодом на четность кодовая комбинация примет вид Y = 10010, где правый крайний символ является проверочным, а общее число единиц по модулю два в кодовой комбинации Y равно 0.
Признаком искажения кодовой комбинации является нечетное число единиц в комбинации Y (сумма единиц по модулю два не равна нулю).
Данный код не позволяет исправлять ошибки, а способен только обнаруживать 100% однократных ошибок и 100% ошибок нечетной кратности.
При кодировании на нечетность число единиц в кодовой комбинации Y должно быть нечетным (сумма единиц по модулю два равна 1). Обнаруживающие способности кода аналогичны коду на четность.
2.2. Код с простым повторением
В основу построения данного кода положен принцип повторения исходной кодовой комбинации.
Пример 2
Исходная кодовая комбинация имеет вид Х = 1010.
Тогда кодовая комбинация, закодированная кодом с простым повторением, примет вид Y = 1
Данный код также относится к классу только обнаруживающих кодов, но помехоустойчивые возможности его выше, чем у кодов на четность (нечетность), при этом и длина его значительно больше.
Декодирование кодовой комбинации осуществляется путем сравнения информационной и проверочной части (поразрядное сложение их по модулю два). Несовпадение хотя бы одного символа (наличие в сумме по модулю два хотя бы одной единицы) ведет к браковке принятой кодовой комбинации.
Такой помехоустойчивый код позволяет обнаружить все ошибки, за исключением «симметричны» ошибок, т. е. ошибок, возникших в одноименных символах информационной и проверочной части кодовой комбинации Y.
3. Инверсный код с повторением (код Бауэра)
Инверсный код с повторением (код Бауэра) является разновидностью кода с повторением. Его отличие от кода с простым повторением заключается в том, что в тех случаях, когда исходная кодовая комбинация содержит четное число единиц, проверочная часть полностью повторяет информационную, если же число единиц в информационной части нечетно, то символы проверочной части инвертируются относительно информационной.
Пример 3
Исходная кодовая комбинация имеет вид Х = 1010.
Число единиц в информационной части четно, тогда кодовая комбинация, закодированная инверсным кодом с повторением, примет вид
Y = 1
Исходная кодовая комбинация имеет вид
Х – 1110.
Число единиц в кодовой комбинации нечетно, следовательно, кодовая комбинация, закодированная кодом Бауэра, примет вид
Y = 1
Декодирование принятой кодовой комбинации осуществляется в следующей последовательности:
1) суммирование по модулю два единиц в информационной части;
2) если число единиц окажется четным (сумма по модулю два равна 0), элементы проверочной части поразрядно сравнивают с элементами информационной;
3) если число единиц окажется нечетным (сумма по модулю два не равна 0), то сначала символы проверочной части поразрядно инвертируют, а затем посимвольно сравнивают с информационной.
Принятая кодовая комбинация бракуется, если обнаружено хотя бы одно несовпадение символов информационной и поверочной частей.
Такой способ построения помехоустойчивого кода позволяет обнаруживать все ошибки, за исключением одновременного искажения двух, четырех и т. д. элементов в исходной и проверочной частях кодовой комбинации (парных «симметричных» ошибок).
Кодирующие и декодирующие устройства могут реализовываться как аппаратно, так и программно.
3. Пример программной реализации помехоустойчивого кодирования сообщений
Пример программной реализации кодирующего устройства в машинных кодах для УОУ типа «Электроника 580» приведен в табл. 1.
Подготовительная часть. Пусть информационная часть сообщения представлена в виде четырехразрядного двоичного кода 1110. Тогда контрольная часть в соответствии с правилом образования кода с повторением примет вид 1110. Таким образом, сообщение, закодированное кодом с простым повторением, будет записано в виде 1
Учитывая, что в УОУ «Электроника 580» в качестве отображающего устройства используется восьмиразрядный дисплей с восьмисегментыми индикаторами, закрепленными за ячейками памяти по принципу прямого доступа к памяти так, как показано на рис.1, необходимо предварительно перевести десятичное отображение символов «1» и «0» в позиционное отображение на восьмисегментных индикаторах.
Адрес ЯП | 83F8 | 83F9 | 83FA | 83FB | 83FC | 83FD | 83FE | 83FF |
|
|
|
|
|
|
|
|
Рис.1. Закрепление индикаторов за ячейками памяти
Отображение числа «1» имеет вид, представленный на рис.2.
a
![]()
f b

![]()
g

e c
d h
Рис.2. Представление десятичного числа «1»
на восьмисегментном индикаторе
Для отображения числа «1» в соответствующей ячейке памяти должно быть записано шестнадцатеричное число, как показано в табл. 1.
Таблица 1
Соответствие сегментов индикатора и разрядов регистра
Обозначение сегмента | h | g | f | e | d | c | b | a |
Разряд регистра (ЯП) | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
Значения разрядов | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
Как следует из табл.1, шестнадцатеричное число, записанное в ячейку памяти, равно 06Н.
Проведя аналогичные действия, получим, что для отображения десятичного числа «0» , необходимо в соответствующую ячейку памяти записать шестнадцатеричное число 3F.
Таблица 2
Пример программной реализации
кодирующего устройства кода с повторением
Адрес | Код | Метка | Мнемоника | Комментарий |
8200 | 3Е | MVI A, 06H | Загрузить в аккумулятор число 06H (отображение»1») | |
8201 | 06 | |||
8202 | 06 | MVI B, 3FH | Загрузить в регистр В число 3FH (отображение «0») | |
8203 | 3F | |||
8204 | 21 | LXI H, 83F8 | Загрузить пару регистров HL константой 83F8 (адрес ЯП, закрепленной за первым слева индикатором ) | |
8205 | F8 | |||
8206 | 83 | |||
8207 | 77 | MOV M, A | Переслать число 06Н в ЯП с адресом 83F8 | |
8208 | 2С | INC L | Увеличить на 1 адрес в регистровой паре HL | |
8209 | 77 | MOV M, A | Переслать число 06Н в ЯП с адресом 83F9 | |
8210 | 2С | INC L | Увеличить на 1 адрес в регистровой паре HL | |
8211 | 77 | MOV M, A | Переслать число 06Н в ЯП с адресом 83FA | |
8212 | 2С | INC L | Увеличить на 1 адрес в регистровой паре HL | |
8213 | 70 | MOV M, В | Переслать число 3FН в ЯП с адресом 83FB | |
8214 | 3E | MVI A, 04H | Загрузить в аккумулятор число 04H | |
8215 | 04 | |||
8216 | 46 | MOV B, M | Загрузить содержимое ЯП по адресу 83FC в регистр В | |
8217 | 85 | ADD L | Сложение содержимого регистра L с аккумулятором | |
8218 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8219 | 70 | MOV M, B | Переслать число из регистра В в память с адресом, указанным в HL | |
8220 | D6 | SUI A, 05 | Вычитание константы (05) из аккумулятора | |
8221 | 05 | |||
8222 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8223 | 46 | MOV В, M | Загрузить содержимое ЯП по адресу, указанному в HL, в регистр В | |
8224 | C6 | ADI | Сложить содержимое аккумулятора с константой 04 | |
8225 | 04 | |||
8226 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8227 | 70 | MOV M, B | Переслать число из регистра В в память с адресом, указанным в HL | |
8228 | D6 | SUI A, 05 | Вычитание константы (05) из аккумулятора | |
8229 | 05 | |||
8230 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8231 | 46 | MOV В, M | Загрузить содержимое ЯП по адресу, указанному в HL, в регистр В | |
8232 | C6 | MOV Н, M | Сложить содержимое аккумулятора с константой 04 | |
8233 | 04 | |||
8234 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8235 | 70 | MOV M, B | Переслать число из регистра В в память с адресом, указанным в HL | |
8236 | D6 | SUI A, 05 | Вычитание константы (05) из аккумулятора | |
8237 | 05 | |||
8238 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8239 | 46 | MOV В, M | Загрузить содержимое ЯП по адресу, указанному в HL, в регистр В | |
8240 | C6 | ADI | Сложить содержимое аккумулятора с константой 04 | |
8241 | 04 | |||
8242 | 6F | MOV L, A | Переслать содержимое аккумулятора в регистр L | |
8243 | 70 | MOV M, B | Переслать число из регистра В в память с адресом, указанным в HL | |
8244 | 76 | HLT | Останов |
ИТОГО – 45 команд
Задание 1. Разработать программное средство кодирования простым кодом с повторением последней цифры номера своей зачетной книжки, представив ее в четырехразрядном двоичном коде (по аналогии с табл. 1).
Задание 2. Выполнить задание 1, разработав программное средство с использованием стека.
Задание 3. Разработать программное средство кодирования кодом на четность/нечетность последней цифры номера своей зачетной книжки, представив ее в четырехразрядном двоичном коде (четность/нечетность задается преподавателем). Отображение осуществить: информационная часть – на левых четырех индикаторах; контрольный символ - на индикаторе с номером Х (задается преподавателем).
Задание 4. Разработать программное средство кодирования кодом Бауэра последней цифры номера своей зачетной книжки, представив ее в четырехразрядном двоичном коде.
Подготовить отчет о выполнении заданий
4. Подготовка к выполнению работы
4.1. Изучить задание на лабораторную работу.
4.2. Изучить пример программы (табл.2).
4.3. Изучить учебный материал по [1, c. 153-161].
4.4. Разработать схемы алгоритмов решения задач.
4.5. Используя ППП Word, выполнить заготовки для таблиц и рисунков (по аналогии с табл. 2 и рис. 1) для всех заданий.
5. Содержание отчета
Отчет по лабораторной работе должен содержать:
5.1. Тему и цель лабораторной работы.
5.2. Схему алгоритма, таблицу с программой решения задачи и схему отображения результатов по заданию 1.
5.3. Схему алгоритма, таблицу с программой решения задачи и схему отображения результатов по заданию 2.
5.4. Схему алгоритма, таблицу с программой решения задачи и схему отображения результатов по заданию 3.
5.5. Схему алгоритма, таблицу с программой решения задачи и схему отображения результатов по заданию 4.
6. Контрольные вопросы
6.1. Поясните необходимость помехоустойчивого кодирования.
6.2. Поясните способ кодирования (декодирования) и возможности кода на четность (нечетность).
6.3. Поясните способ кодирования (декодирования) и возможности кода с простым повторением.
6.4. Поясните способ кодирования (декодирования) и возможности инверсного кода с повторением.
6.5. Поясните программы решения задач по заданиям 1-4.
6.6. Поясните полученные по заданиям 1-4 результаты.
Литература
1. Микропроцессоры: Курс и упражнения/ Пер. с англ.; Под ред. . - М.: Энергоатомиздат, 1998.
2. Микропроцессорные сиcтемы: Учебное пособие для вузов; Под общей ред. . – С.-Пб.: Политехника, 2002.
3. Смирнов системы. Часть 1. Принципы построения микропроцессорных систем: Учебное пособие. –М.: МГТУ ГА, 2004.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 |


