ВУЗ:
Составители:
43
прием бита последовательного кода и его распознавание (конкретный вид этого блока
зависит от способа представления бита информации в последовательном коде).
При длине слова не более 8 бит для формирования параллельного кода удобно
воспользоваться аккумулятором; тогда дешифрированный бит "вдвигается" в
аккумулятор через флаг переноса. Поскольку последовательный код принимается
младшими битами
вперед, сдвиг параллельного кода осуществляется вправо.
Аккумулятор предварительно сбрасывается, а после М сдвигов (где N - разрядность слова,
передаваемого в последовательном коде) в нем фиксируется параллельный код принятого
слова данных.
Для обеспечения временного согласования работы приемника и передатчика, а
также для снижения вероятности неправильного прочтения сигнала при вводе стартовый
бит после его обнаружения
необходимо стробировать в середине интервала его
представления. С этой целью программа повторяет анализ старт-бита через время, равное
половине периода бита, и если старт-бит не подтвердился, то процедура ожидания
повторяется.
В МК48 для приема последовательного кода удобно использовать тестовый вход
ТО. Опрос входа ТО повторяется через время Т, равное
периоду представления бита и
смещенное на полпериода относительно его начала. Для синхронизации приема/передачи
подпрограмма DELAYT приемника должна реализовать ту же самую задержку, что и
подпрограмма DELAYT передатчика:
; Версия для МК 48
WAIT: JT0 WAIT ; Ожидание старт-бита
CALL DELAYX ; Задержка Т/2
JTO WAIT ; Если Т=0, то повторить
SPCONV: MOV R7,8 ; Загрузка счётчика бит, N=8
CLR A ; Сброс аккумулятора
LOOP: CLR C ; Сброс флага переноса
CALL DELAYT ;
Задержка на время Т
JNT0 ROTATE ; Если Т=0, то сохранение нулевого
; состояния флага переноса, иначе
CPL C ; установка флага переноса
ROTATE: RRC A ; Сдвиг параллельного кода
DJNZ R7,LOOP ; Декремент счётчика байт, и если не
; ноль, то цикл
Страницы
- « первая
- ‹ предыдущая
- …
- 41
- 42
- 43
- 44
- 45
- …
- следующая ›
- последняя »