Накопитель на базе бытового магнитофона
Сохранение программ на простом бытовом магнитофоне не только эффективно, но и необходимо для записи более длинных программ без использования дорогих цифровых магнитофонов, а также взамен записи на перфоленту. Дешевые бытовые магнитофоны имеют ограниченную полосу пропускания, высокий уровень шумов и непостоянную скорость протяжки. В отличие от принятой в цифровых магнитофонах схемы, где записываемый сигнал с помощью специального устройства модулируется разными частотами для логического 0 и логической 1, в описываемом здесь методе записи требования, предъявляемые к каналу передачи данных, минимальны. Вместо передачи уровней, соответствующих логическому 0 и логической 1, данные передаются в виде пачек импульсов заданной частоты (тона) с разным количеством импульсов в пачке. Основная частота должна лежать в пределах полосы пропускания магнитофона. Каждый бит передаваемой информации представляется в виде импульсной пачки, за которой следует пауза. Первая треть периода передачи бита всегда занята импульсами, во второй трети либо импульсы продолжаются, либо наступает пауза, что означает соответственно логическую 1 или логический 0, последняя треть периода — всегда пауза (рис. 10.4). Таким образом, значение бита данных задается отношением длины импульсной пачки к длине паузы. (Известны и другие системы записи, например основанные на количестве импульсов в пачке.) Для изучения методов формирования таких импульсных пачек введем в ПМ-ЭВМ следующую учебную программу: 014000016 MVIC, 252Q 014001 252 014002006 Ml: MVIB, 011Q 014003 Oil 014004257 М2: XRA A 014 005 323 OUT, OOOQ 014 006 000 014007315 CALL IMP 014011 014 014012171 MOV А, С 014013037 RAR 014014117 MOV С, А 014015322 JNC, МЗ
014 016 026 014 020 257 XRA A 014 021 323 OUT, OOOQ 014 022 000 014 023 303 JMP, M4 014 024 032 014025 014 014026076 МЗ: MVI A, 377Q 014 030 323 OUT, OOOQ 014031 000 014032315 М4: CALL, IMP 014 033 060 014 034 014 014035257. XRA A 014 036 057 СМА 014 037 323 OUT, OOOQ 014 040 000 014041315 CALL, IMP 014 042 060 014043 014 014044171 MOV А, С 014 045 323 OUT, 002Q 014 046 002 014 047 005 DCR В 014050302 JNZ,M2 014 051 004 014 053 166 HLT 014 060 026 IMP: MVI D, 010Q 014061 010 014062257 XRA A 014063323 M5: OUT, 001Q 014 064 001 014 065 036 MVI E, 040Q 014 066 040 014067315 M6: CALL DL 014 070 277 014071 000 014072035 DCRE 014073302 JNZ.M6 014 074 067 014075 014 014076074 INK A 014 077 025 OCR D 014100302 JNZ,M5 014 101 063 014 102 014 014103311 RET
Рис. 10.4. Диаграмма передачи одного двоичного разряда
Программа, начиная с младшего разряда, преобразует байт информации, хранящийся в регистре С, в последовательность посылок, наблюдаемую в портах 000 и 001. Индикаторы порта 000 погашены в тех частях периода передачи каждого бита, когда должна выдаваться импульсная пачка, и горят, когда она не должна выдаваться, т. е. логическому 0 соответствует последовательность: не горит — горит — горит, а логической 1 — не горит — не горит — горит. Импульсы с заданной частотой следования появляются в младшем разряде порта 001, а в целом индикаторы порта 001 подсчитывают эти импульсы. Частота следования импульсов — примерно 2 Гц. Порт 002 позволяет наблюдать преобразуемое число, каждый разряд которого последовательно анализируется программой путем сдвига в разряд переноса. В ячейке 014Q 003Q хранится параметр, заносимый в регистр В, задающий количество преобразуемых разрядов числа. Здесь этот параметр равен девяти, так как кроме восьми информационных пачек для обозначения конца передачи числа передается импульсная пачка, соответствующая нулю. Подпрограмма формирования импульсной пачки имеет метку IMP. Количество импульсов в пачке равно половине числа, хранящегося в ячейке 014Q 061Q, которое обязательно должно быть четным. Длительность импульса в пачке определяется задержкой, задаваемой числом в ячейке 014Q 066Q. В учебной программе длительность импульса для наблюдаемости задана равной произведению этого числа на задержку, определяемую ПП DL. Для использования ГШ в качестве рабочей необходимо из ПП IMP изъять обращение к ПП DL, из основного текста изъять команду вывода в порт 002 (адреса с 014Q 044Q по 014Q 046Q), а вместо команды HLT ввести команду RET. Чтобы сформировать сигнал, который можно подавать непосредственно на вход записи магнитофона, используем схему, представленную на рис. 10.5. Эта схема позволяет регулировать уровень записи и ликвидирует постоянную составляющую сигнала.
Рис. 10.5. Схема формирователя сигнала для записи на магнитофон Зададимся приемлемой для записи и воспроизведения на бытовом магнитофоне частотой импульсов в пачках, равной 2 кГц. Тогда легко подсчитать число, заносимое в регистр Е. Действительно, программный цикл от команды DCR Е до команды JNZ занимает 15 тактов. В ПМ-ЭВМ тактовая частота равна 1 МГц. Следовательно, чтобы получить задержку, равную половине периода повторения импульсов 1/(2000-2) = 250 мкс, необходимо задать 250/15 ~ 16 программных циклов. В регистр Е надо занести 020Q = 16. Если количество импульсов в пачке равно четырем (как задано в нашей программе), скорость передачи информации составит 2000/(4-3) ~ 167 бит/с. Рис. 10.6. Формирование выходного сигнала с магнитофона
Для ввода информации с бытового магнитофона необходимо из полученного сигнала сформировать нормальные логические посылки на ТТЛ-уровнях, причем воспроизведению импульсной пачки должен соответствовать уровень логической 1, а паузе -уровень логического 0 (рис. 10.6). Количество импульсов в пачке не принимается во внимание. Такую схему легко реализовать на операционных усилителях или на обычных транзисторах. Формирователь может быть подключен к одному из входов порта 003, например выводу 4 микросхемы D23. В этом случае дальнейшие операции имеют чисто логический характер, легко реализуемый программным путем. Введем в ПМ-ЭВМ следующую демонстрационную программу, которую потом можно преобразовать в рабочую ПП ввода информации с бытового магнитофона:
014 000 006 MAG: MVI В, 010Q 014001 010 014 002 026 MVI D, OOOQ 014 003 000 014004315 Ml: CALL IMP 014005 120 014 006 014 014007332 JC.M1 014011 014 014012315 CALL IMP
014013 120 014015332 JC.M1 014 016 004 014020315 M2: CALL IMP 014021 120 014023322 JNC, M2 014 024 020 014026315 CALL IMP 014027 120 014031 322 JNC, M2 014033 014 014034025 M3: OCR D 014035315 CALL IMP 014 036 120 014040332 JC, M3 014041 034 014043315 CALL IMP 014 044 120 014046332 JC, M3 014 047 034 014 050 014 014051024 M4: INR D 014052315 CALL IMP 014053 120 014054 014 014055322 JNC.M4 014056 051 014060315 CALL IMP 014061 120 014 062014 014 063 322 JNC, M4 014065 014 014 066 172 MOV A, D 014067.027 RAL 014070171 MOV А, С 014071037 RAR 014072117 MOVC, A 014 073 026 MVI D, OOOQ 014 074 000 014075005 OCR В 014076302 JNZ,M3 014 100014 014 101 171 MOV А, С 014 102 323 OUT, OOOQ 014 103 000 014104257 XRAA 014 105 117 MOVC, A 014106303 JMP.MAG 014 107000 014 110014 014120036 IMP: MVIE, 377Q 014 121 377 014122035 M5: DCR E 014123302 JNZ, M5 014 124 122 014 125 014 014126333 IN,003Q 014 127 003 014130037 RAR 014 131 311 RET
Программа поразрядно формирует в регистре С число, последовательно вводимое через младший разряд порта 003 с помощью ПП IMP, которая производит опрос порта в заданном темпе. В основной части программы в регистре D подсчитываются опросы и формируется знаковый разряд числа в зависимости от соотношения длительности пачки и паузы: если пачка длиннее паузы — в знаковом разряде 1, если короче — в знаковом разряде 0. Биты знакового разряда последовательно заносятся в регистр С. Темп опроса задается числом по адресу 014Q 121Q, заносимым в регистр Е. В данном случае задержка равна 15-256 = 3840 мкс, а частота опроса соответственно равна 1/0,003840 ~260 Гц. Следовательно, при длине импульсной пачки до 0,5 с в регистре D накопится число, не большее 130, что гарантирует отсутствие переполнения регистра. Перед вводом программы в ПМ-ЭВМ подключим к выводу 4 микросхемы D23 вывод 16 микросхемы D16 второй ПМ-ЭВМ, в которую введена описанная выше программа вывода, настроенная на длительность импульсной пачки не более 0,5 с. Вместо второй ПМ-ЭВМ можно подключить приведенный на рис. 10.6 формирователь и магнитофон, на ленту которого предварительно записаны с ПМ-ЭВМ импульсные последовательности для одиночных байтов, но тогда мы сталкиваемся с проблемами отладки всего тракта: ПМ-ЭВМ — выходной формирователь — магнитофон в режиме записи, а затем магнитофон в режиме воспроизведения — входной формирователь — ПМ-ЭВМ. В то же время при непосредственной связи между двумя ПМ-ЭВМ отпадают проблемы согласования уровней и при этом могут быть заданы любые временные характеристики сигналов.
Настроим программу вывода передающей ПМ-ЭВМ на выдачу одного байта информации из регистра С, т. е. используем программу в том виде, как она приведена в тексте. Для вывода байта необходимо нажать кнопки СБРОС и П. Если до этого в принимающей ПМ-ЭВМ были также нажаты кнопки СБРОС и П, через 3 — 4 с на индикаторах ее порта 000 можно будет наблюдать код числа, идентичный коду, хранящемуся в регистре С передающей ПМ-ЭВМ. Чтобы снова передать байт информации, нужно снова нажать кнопки СБРОС и П. Меняя содержимое регистра С передающей ПМ-ЭВМ, можно проверить правильность передачи для любых кодов. После такой проверки можно произвести проверку правильности передачи массива информации. Для этого в память передающей ПМ-ЭВМ нужно дополнительно ввести управляющую программу и внести в основную программу указанные выше изменения. Управляющая программа имеет вид
014110041 ММ1: LXI H, ADM 014 111 000 014 112 015 014113116 ММ2: MOV C.M 014114315 CALL M1 014 115 002 014 116 014 014117054 INR L 014120302 JNZ,MM2 014 121 113 014 122014 014 123 166 HLT
Здесь ADM = ADMHQ ADMLQ - символический адрес начала массива чисел, заносимый в регистровую пару H; Ml - метка начала программы вывода информации. Максимальная длина передаваемого массива - 256 байт, если он начинается с адреса ADMHQ OOOQ и кончается адресом ADMHQ 377Q. Для проверки правильности передачи необходимо нажать кнопки СБРОС и П принимающей ПМ-ЭВМ, нажать кнопку СБРОС, набрать адрес начала управляющей программы (метка ММ1) и нажать кнопку П передающей ПМ-ЭВМ. На индикаторах порта 000 принимающей ПМ-ЭВМ будут последовательно появляться коды передаваемого массива. Коды массива могут быть занесены в ОЗУ принимающей ПМ-ЭВМ. Для этого вместо команды MOV С, А по адресу 014Q 105Q необходимо занести команду RET и ввести дополнительно управляющую программу вида
014 041 МА1: LXIH,ADM 014 141 000 О14 143 161 МА2: MOVM,C 014 144 315 CALL MAG 014 145 000 014 146 014 014 147 054 iVrS» л 014 150 302 JNZ, MA2 014 151 143 014 152 014 014 153 166 HLT
Теперь для запуска программы принимающей ПМ-ЭВМ необходимо после нажатия кнопки СБРОС набрать адрес начала управляющей программы (метка МА1), а затем нажать кнопку П. Принимаемые коды по-прежнему наблюдаются на индикаторах порта 000, но после окончания передачи правильность принятого массива легко проверить, считывая его последовательно на индикаторах порта 002 принимающей ПМ-ЭВМ с помощью клавиатуры. После такой проверки можно уже отладить передачу информации с рабочей скоростью порядка 150 бит/с, затем включить между передающей и принимающей ПМ-ЭВМ выходные и входные формирователи, снова проверить передачу и лишь после этого включать магнитофон.
ДИСПЛЕЙ НА БАЗЕ БЫТОВОГО
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|