Преобразование кодов (1086952)
Текст из файла
Преобразование кодов
-
1. Простейшие преобразования
-
2. Преобразование параллельных и последовательных кодов
-
3. Цифро-аналоговые и аналого-цифровые преобразования
В задачах управления может возникнуть необходимость преобразования информации из одной формы представления в другую. Это связано с тем, что обработка данных в МК осуществляется в параллельном двоичном коде, а поступать в МК и выводиться из него информация может в иной форме представления.
Наиболее распространены в задачах логического управления следующие преобразования: из унитарного кода в двоичный (при вводе информации с клавиатуры или от оцифрованных переключателей) и из двоичного в унитарный; из одной системы счисления в другую (при работе со специальными клавиатурами); специальные преобразования (для организации индикации и при выводе информации на периферийные устройства); из последовательного кода в параллельный (при вводе) и из параллельного в последовательный (при выводе) ; из аналоговой формы представления в цифровую и наоборот (для связи с аналоговыми датчиками и исполнительными механизмами) .
1. Простейшие преобразования
Преобразование унитарного кода в двоичный позиционный. Двоичный эквивалент унитарного кода равен номеру бита, в котором находится единственная единица. Поэтому преобразование унитарного кода в двоичный позиционный удобно осуществлять путем сдвига исходного унитарного кода в сторону младших бит с одновременным подсчетом числа сдвигов. При "выдвигании" из младшего бита значения 1 сдвиги прекращаются, а в счетчике сдвигов будет содержаться двоичный эквивалент унитарного кода.
Преобразование двоичного позиционного кода в унитарный. Необходимость такого преобразования возникает, например, при выборке одного из исполнительных устройств, мультиплексирующих шину BUS (Р0) по его номеру.
Пусть, например, требуется преобразовать 3-битный двоичный код из регистра R4 в 8-битный унитарный:
;версия для МК48
DECODE: CLR A ;сброс аккумулятора
CLR C ;сброс флага переноса
CPL C ;установка флага переноса
ROTATE: RLC A ;сдвиг унитарного кода
DJNZ R4, ROTATE ;декремент и цикл, пока не нуль
Преобразование осуществляется путем "вдвигания" единицы из флага переноса. Результат формируется в аккумуляторе за N сдвигов (где N - эквивалент исходного двоичного кода). Недостатком приведенной программы является то,что для преобразования N=0 понадобится 256 сдвигов. Избежать этого можно, "модифицировав программу DECODE следующим образом:
DECODE: |
|
|
Преобразование в этом случае осуществляется за N + 1 сдвигов.
Преобразование кодов из одной системы счисления в другую. Преобразование кода из одной позиционной системы счисления в другую осуществляется делением исходного числа на основание новой системы счисления. При этом деление должно выполняться по правилам исходной системы счисления. Например, для преобразования двоичного числа в двоично-десятичное исходное двоичное число должно быть поделено на 10. Деление должно осуществляться по правилам двоичной арифметики.
Пусть требуется выполнить преобразования 8-битного двоичного числа в двоично-десятичное. Исходный двоичный код хранится в аккумуляторе. Результат преобразования состоит из 12 бит: младшие 4 бита - единицы, представляют собой остаток от деления исходного числа на 10; следующее 4 бита - десятки, представляют собой остаток от деления на 10 полученного частного; старшие 4 бита - сотни, являются частным от второго деления:
;версия для МК48
BBD: |
|
|
В результате выполнения процедуры в младшей тетраде R1 хранятся сотни, в аккумуляторе - десятки и единицы двоично-десятичного эквивалента исходного двоичного числа.
Обратное преобразование (из двоично-десятичного кода в двоичный) осуществляется делением исходного числа на 16 по правилам десятичной арифметики. Программа преобразования приведена ниже. Исходный двоично-десятичный код хранится в аккумуляторе. После окончания работы программы в A находится двоичный эквивалент исходного двоично-десятичного числа.
Программа универсальна и может выполняться в МК48 и в МК51, так как команда DIV AB (МК51) не может быть использована для деления чисел по правилам десятичной арифметики:
BDB: |
|
|
Кроме рассмотренного способа преобразования чисел из одной системы счисления в другую можно воспользоваться более медленным, но зато и более простым способом "двух счетчиков". При этом способе из исходного кода вчитается, а к новому коду прибавляется по единице до обнуления исходного кода, причем вычитание осуществляется "в старой", а прибавление - в "новой" системе счисления. Пример программы преобразования двоичного числа в двоично-десятичное методом двух счетчиков приводится ниже. Для упрощения программы принято, что исходное двоичное число, заданное в A, не превышает его десятичного эквивалента 99:
;версия для МК48
BBD: |
|
|
После выхода из процедуры в A находится двоично-десятичный эквивалент исходного двоичного кода.
2. Преобразование параллельных и последовательных кодов
Преобразование данных из параллельного кода в последовательный. Наиболее важным применением процедур преобразования формы представления данных "параллельный/последовательный" является связь с удаленными датчиками, исполнительными механизмами и другими МК по однопроводным линиям передачи информации. Обычно при передаче байта данных в прямом последовательном коде для обеспечения согласования работы приемника и передатчика используют старт-стопный (асинхронный) режим обмена. Передача последовательного кода байта предваряется посылкой старт-бита (0) и завершается выдачей стоп-бита (1).
Процедура выдачи одного бита последовательного кода реализуется выдачей в линию передачи статического сигнала 0 или 1 и вызовом подпрограммы временной задержки заданной длительности:
;версия для МК48
| ANL P1,#0F7H | ;выдача старт-бита |
В МК51 имеются средства аппаратурного преобразования параллельного кода в последовательный с использованием УАПП. Вся программа преобразования параллельного кода в последовательный сводится при этом к одной команде передачи байта в буфер УАПП: MOV SBUF,A.
Преобразование данных из последовательного кода в параллельный. Эта процедура является составной частью процедуры приема информации в последовательном коде. При обмене информацией в последовательном коде необходима предварительная настройка приемника на начало слова. При асинхронном обмене процедура настройки сводится к ожиданию старт-бита.
После обнаружения старт-бита на входе приемника начинается преобразование кода, совмещенное с процедурой в вода последовательного кода. Схема алгоритма процедуры SPCONV, реализуемой в МК48, представлена на рис.6.11. МК48 обеспечивает прием бита последовательного кода и его распознавание (конкретный вид этого блока зависит от способа представления бита информации в последовательном коде). При длине слова не более 8 бит для формирования параллельного кода удобно воспользоваться аккумулятором; тогда дешифрированный бит "вдвигается" в аккумулятор через флаг переноса. Поскольку последовательный код принимается младшими битами вперед, сдвиг параллельного кода осуществляется вправо. Аккумулятор предварительно сбрасывается, а после N сдвигов (где N - разрядность слова, передаваемого в последовательном коде) в нем фиксируется параллельный код принятого слова данных.
Для обеспечения временного согласования работы приемника и передатчика, а также для снижения вероятности неправильного прочтения сигнала при вводе стартовый бит после его обнаружения необходимо стробировать в середине интервала его представления. С этой целью программа повторяет анализ старт-бита через время, равное половине периода бита, и если старт-бит не подтвердился, то процедура ожидания повторяется.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.