1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Знаком ли Вам код Джонсона?

Тема в разделе "WASM.ZEN", создана пользователем Paguo_86PK, 5 янв 2010.

  1. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    907
    Адрес:
    Ташкент
    Он достаточно прост
    0: 0000
    1: 0001
    2: 0011
    3: 0111
    4: 1111
    5: 1110
    6: 1100
    7: 1000
    и многим электронщикам знаком.
    Всё началось с того, что я собирал PC-AT 286 с EGA картой. Там сзади у неё имеется 5 переключателей. Я использовал обычный ТВ и нужно было перебрать все 32 режима в поиске оптимального. А мануалов не было...
    Естественно, если в соответствии с двоичной системой счисления перебирать режимы по порядку, то за раз нужно будет переключать от 1 до 5 тумблеров. А это не оптимально!

    Я включил PC-XT и запустил GW-BASIC. Взял бумагу и накидал несколько комбинаций. Истратив дюжину листов, я нашёл оптимальный последовательный код. А в Бейсике составил алгоритм. Он прост:
    DEF FN Xcode(X) = X XOR INT(X / 2)
    И даёт код, когда последовательно нужно переключить лишь один бит:
    0: 00000
    1: 00001
    2: 00011
    3: 00010
    4: 00110
    5: 00111
    6: 00101
    7: 00100
    8: 01100
    9: 01101
    10: 01111
    11: 01110
    12: 01010
    13: 01011
    14: 01001
    15: 01000
    16: 11000
    17: 11001
    18: 11011
    19: 11010
    20: 11110
    21: 11111
    22: 11101
    23: 11100
    24: 11100
    25: 10101
    26: 10111
    27: 10110
    28: 10010
    29: 10011
    30: 10001
    31: 10000
    Как можно заметить, всегда переключается только один бит! Условно я назвал его SWY-кодом (Single sWitching onlY). Как можно видеть, из слов я взял буквы номер 1, 2 и 4. Назвал как Свай-код :)

    Затем на К155ТВ1 я сделал схему счётчика. ТВ1 удобен тем, что J- и K-входов достаточно, чтобы синхронно переключать все триггеры по swy-последовательности.
    Смешно вспоминать, но я даже пошёл в местное патентное ведомство! Но получил игнор...

    Код удобен тем, что он сам генерирует синхронизирующий импульс и не имеет паразитных помех при переключении. Так, если код подать на К155ИР1, то с помощью схем паритета на входе и выходе регистра можно фиксировать моменты изменения кода и стробировать регистр. Это полезно, например, планировал я даже кодовый замок с ключём, который надо было вставлять с изменением глубины, тем самым набирая нужный код.

    Позже я разработал схемы с каскадным включением таких счётчиков, чтобы наращивать разрядность. Но на ТВ1 они переставали считать на частотах выше 15мГц...

    Десятилетие спустя, с доступом в интернет, я пытался искать подобные схемы. Не может быть, что код и схему я придумал первым. Но пока не нашёл... Может вы поможете? ;)

    Ниже я представляю файл, который хотел выбить на железе в виде маски для экранирования потока электронов в кинескопе. Какрас об этих "гвоздях" в кинескопе я и писал ранее. Я хотел срезать экран кинескопа, ставить эту маску-экран, 9 вертикальных электродов за ней и снова запаять стеклянным экраном. Луч должен быть горизонтальным (не бегающим, а размазанным по горизонтали) и бегать по вертикали. Первый электрод - для контроля, не вышел ли луч за пределы маски. А восемь других - идут на схему регистрации и оцифровки.
    Если идея интересная и я её зря тут опубликовал, то я естественно уже потерял авторство. :dntknw:
    Я планировал сделать заказ в местный завод. Изготовить эту конструкцию не из кинескопа, а в микросхеме! Ведь моторчики-шестерёнки на кристаллах вертятся. А ЭЛП наверное не сложнее сделать на кристалле. Своебразный АЦП получиться должен.
     
  2. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    http://ru.wikipedia.org/wiki/Код_Грея
     
  3. Dian

    Dian Member

    Публикаций:
    0
    Регистрация:
    19 июн 2008
    Сообщения:
    222
    А почему для 23 и 24 одинаковые значения?
     
  4. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    907
    Адрес:
    Ташкент
    Эм-ммм. А потому что код набирал руками прямо при создании темы на скорую руку. А не с готовой таблицы :p
    Во-вторых, молодец! Внимательный...
    Спасибо! Интересно, но мало сведений о аппаратных реализациях.
     
  5. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
  6. Paguo_86PK

    Paguo_86PK Руслан

    Публикаций:
    0
    Регистрация:
    8 окт 2007
    Сообщения:
    907
    Адрес:
    Ташкент
    Ух ты! Интересно... :dntknw:
    Правда в моей версии луч ходит лишь по вертикали, а по горизонтали сфокусирован так, чтобы охватывать все электроды (строку экрана)...
    А если дальше. Реально было бы в чипе это сделать? :-\