Таблица7
АдресHEX | Символ | Код ПККИ | КодКОИ – 7 | |
BIN | HEX | НЕХ | ||
07D2 | 1 | 000000 | 00 | 31 |
07D3 | 2 | 000001 | 01 | 32 |
07D4 | 3 | 000010 | 02 | 33 |
07D5 | 4 | 000011 | 03 | 34 |
07D6 | 5 | 000100 | 04 | 35 |
07D7 | 6 | 000101 | 05 | 36 |
07D8 | 7 | 000110 | 06 | 37 |
07D9 | 8 | 000111 | 07 | 38 |
07DA | 9 | 001000 | 08 | 39 |
07DB | 0 | 001001 | 09 | 30 |
07DC | / | 001010 | 0A | 2F |
07DD | Ц | 001011 | 0B | 63 |
07DE | У | 001100 | 0C | 75 |
07DF | К | 001101 | 0D | 6B |
07E0 | Е | 001110 | 0E | 65 |
07E1 | ВК | 001111 | 0F | 78 |
07E2 | Н | 010000 | 10 | 6E |
07E3 | Г | 010001 | 11 | 67 |
07E4 | Ш | 010010 | 12 | 7B |
07E5 | Щ | 010011 | 13 | 7D |
07E6 | З | 010100 | 14 | 7A |
07E7 | Х | 010101 | 15 | 68 |
07E8 | Ъ | 010110 | 16 | 5F |
07E9 | - | 010111 | 17 | 09 |
07EA | Ф | 011000 | 18 | 66 |
07EB | Ы | 011001 | 19 | 79 |
07EC | В | 011010 | 1A | 77 |
07ED | А | 011011 | 1B | 61 |
07EE | П | 011100 | 1C | 70 |
07EF | Р | 011101 | 1D | 72 |
07F0 | О | 011110 | 1E | 6F |
07F1 | - | 011111 | 1F | 41 |
07F2 | Я | 100000 | 20 | 71 |
07F3 | Ч | 100001 | 21 | 7E |
07F4 | С | 100010 | 22 | 73 |
07F5 | М | 100011 | 23 | 6D |
07F6 | И | 100100 | 24 | 69 |
07F7 | Т | 100101 | 25 | 74 |
07F8 | Ь | 100110 | 26 | 78 |
07F9 | SP | 100111 | 27 | 20 |
07FA | Л | 101000 | 28 | 6C |
07FB | Д | 101001 | 29 | 64 |
07FC | Ж | 101010 | 2A | 76 |
07FD | Э | 101011 | 2B | 7C |
07FE | Б | 101100 | 2C | 62 |
07FF | Ю | 101101 | 2D | 60 |
На каждую подпрограмму обработки специальных клавиш выделим по 200 байт, этого вполне достаточно если учитывать, что программа естественно выполняется на АССЕМБЛЕРЕ – который славится своей компактностью. Расположим подпрограммы в памяти непосредственно перед таблицей и после основной обрабатывающей программы, т.е. наши функциональные подпрограммы будут находиться между основной программой и таблицей КОИ-7. Рассчитаем адреса по которым будут записаны подпрограммы. Конечный адрес подпрограмм должен равняться 07ЕF. Отнимем от этого адреса 600 байт:
07EFh – 258h = 0578h.Следовательно подпрограммы начнутся с адреса 0578h. Теперь последовательно прибавляя по 200 байт вычислим адреса каждой подпрограммы двести байт в шестнадцатеричной системе счисления будут выглядеть как С8 , т.е. будем прибавлять к данному адресу это число получим соотвественно: 0640h, 0708h
Итак, с адреса 0578h запишем подпрограмму обработки клавиши "ВК" возврат, соответственно в таблицу занесем младшую часть адреса.
С адреса 0641h запишем подпрограмму обработки клавиши "-" редактирование и перемещение вправо, в таблицу занесем младшую часть адреса.
А с адреса 0709h запишем подпрограмму обработки клавиши "-" редактирование и перемещение влево, в таблицу занесем младшую часть адреса.
Выходные сигналы с ПККИ DSPA0 - DSPA3, DSPB0 - DSPB3 подадим на адресные входы ПЗУ знакогенератора. ПЗУ знакогенератора служит преобразователем кода КОИ – 7 в код индикатора, т.е. в код включения определенных сегментов. Необходимо включать 14 сегментов. Поэтому достаточно двух 8-разрядных микросхем ПЗУ. Для ПЗУ знакогенератора возьмем репрограммируемую ПЗУ К573РФ2. Данная интегральная микросхема представляет собой репрограммируемое ПЗУ обьемом 2 Кбайта, запись в которую производится электрическими сигналами, а стирание – ультрафиолетовым излучением. Программирование ПЗУ осуществляется с помощью специального устройства – программатора. По входным и выходным сигналам микросхема совместима с ТТЛ-микросхемами.
Для исключения потери информации при ее длительном хранении окно корпуса микросхемы при эксплуатации должно быть защищено от воздействия ультрафиолетового и светового облучения, например, светонепроницаемой пленкой.
Доступ к микросхеме осуществляется подачей напряжения уровня логического нуля на входы микросхемы CS и OE.
Приведем таблицы, по которым производится перекодирование из кода КОИ – 7 в позиционный код символа в знакогенераторе.
Таблица 8 - Перекодирование из кода КОИ – 7 в позиционный код символа для DD-14
Символ | Код КОИ-7 | Адрес ЗГ | код ЗГ | ||
HEX | BIN | A7 A6 A5 A4 A3 A2 A1 A0 | D7 D6 D5 D4 D3 D2 D1 D0 | HEX | |
1 | 31 | 00110001 | 00110 001 | 00000010 | 2 |
2 | 32 | 00110010 | 00110 01 0 | 01100100 | 64 |
3 | 33 | 00110011 | 00110 01 1 | 00100100 | 24 |
4 | 34 | 00110100 | 00110 1 00 | 00001000 | 8 |
5 | 35 | 00110101 | 00110 1 01 | 00100100 | 64 |
6 | 36 | 00110110 | 00110 1 1 0 | 10100110 | 26 |
7 | 37 | 00110111 | 00110 1 1 1 | 01000100 | 44 |
8 | 38 | 00111000 | 00111000 | 01100100 | 64 |
9 | 39 | 00111001 | 0 01 1 10 01 | 00101100 | 2С |
0 | 30 | 00110000 | 00110 000 | 00101110 | 2Е |
20 | 00100000 | 0 0 1 0 0 0 0 0 | 00100000 | 20 | |
/ | 2F | 00101111 | 0 0 1 0 1 1 1 1 | 01000000 | 40 |
Ц | 63 | 01100011 | 0 1 1 0 0 0 1 1 | 00111010 | 3А |
У | 75 | 01110101 | 0 1 1 1 0 1 0 1 | 00101000 | 28 |
К | 6B | 01101011 | 0 1 1 0 1 0 1 1 | 10000010 | 82 |
Е | 65 | 01100101 | 0 1 1 0 0 1 0 1 | 10100110 | А6 |
ВК | 78 | 01111000 | 0 1 1 1 1 0 0 0 | 10000000 | 80 |
Н | 6E | 01101110 | 0 1 1 0 1 1 1 0 | 10001010 | 8А |
Г | 67 | 01100111 | 0 1 1 0 0 1 1 1 | 00000110 | 06 |
Ш | 7B | 01111011 | 0 1 1 1 1 0 1 1 | 00101010 | 2А |
Щ | 7D | 01111101 | 0 1 1 1 1 1 0 1 | 00111010 | 3А |
З | 7A | 01111010 | 0 1 1 1 1 0 1 0 | 10101100 | АС |
Х | 68 | 11101000 | 1 1 1 0 1 0 0 0 | 01000000 | 40 |
Ъ | 5F | 01011111 | 0 1 0 1 1 1 1 1 | 10100110 | |
- | 09 | 00001001 | 0 0 0 0 1 0 0 1 | 00000000 | 00 |
Ф | 66 | 01100110 | 0 1 1 0 0 1 1 0 | 00000100 | 04 |
Ы | 79 | 01111001 | 0 1 1 1 1 0 0 1 | 00101010 | 2А |
В | 77 | 01110111 | 0 1 1 1 0 1 1 1 | 10100110 | А6 |
А | 61 | 01100001 | 0 1 1 0 0 0 0 1 | 01001000 | 48 |
П | 70 | 01110000 | 0 1 1 1 0 0 0 0 | 00001110 | 08 |
Р | 72 | 01110010 | 0 1 1 1 0 0 1 0 | 10000110 | 86 |
О | 6F | 01101111 | 0 1 1 0 1 1 1 1 | 01010110 | 56 |
- | 41 | 01000001 | 0 1 0 0 0 0 0 1 | 11000000 | С0 |
Я | 71 | 01110001 | 0 1 1 1 0 0 0 1 | 01001100 | 4С |
Ч | 7E | 01111110 | 0 1 1 1 1 1 1 0 | 00001000 | 48 |
С | 73 | 01110011 | 0 1 1 1 0 0 1 1 | 00100110 | 26 |
М | 6D | 01101101 | 0 1 1 0 1 1 0 1 | 00001010 | 0А |
И | 69 | 01101001 | 0 1 1 0 1 0 0 1 | 01001010 | 4А |
Т | 74 | 01110100 | 0 1 1 1 0 1 0 0 | 00000100 | 4 |
Ь | 78 | 01111000 | 0 1 1 1 1 0 0 0 | 10100010 | А2 |
SP | 20 | 00100000 | 0 0 1 0 0 0 0 0 | 11000000 | С0 |
Л | 6C | 01101100 | 0 1 1 0 1 1 0 0 | 01001000 | 48 |
Д | 64 | 01100100 | 0 1 1 0 0 1 0 0 | 01111001 | 79 |
Ж | 76 | 01110110 | 0 1 1 1 0 1 1 0 | 01000000 | 40 |
Э | 7C | 01111100 | 0 1 1 1 1 1 0 0 | 00101100 | 2С |
Б | 62 | 01100010 | 0 1 1 0 0 0 1 0 | 10100110 | А6 |
Ю | 60 | 01100000 | 0 1 1 0 0 0 0 0 | 10001010 | 8А |
Таблица 9 - Перекодирование из кода КОИ – 7 в позиционный код символа для DD-15
Символ | Код КОИ-7 | Адрес ЗГ | код ЗГ | ||
HEX | BIN | A7 A6 A5 A4 A3 A2 A1 A0 | D7 D6 D5 D4 D3 D2 D1 D0 | HEX | |
1 | 31 | 00110001 | 00110 001 | 00000000 | 00 |
2 | 32 | 00110010 | 00110 01 0 | 00000100 | 4 |
3 | 33 | 00110011 | 00110 01 1 | 00010100 | 14 |
4 | 34 | 00110100 | 00110 1 00 | 00001001 | 9 |
5 | 35 | 00110101 | 00110 1 01 | 00010001 | 11 |
6 | 36 | 00110110 | 00110 1 1 0 | 00010000 | 10 |
7 | 37 | 00110111 | 00110 1 1 1 | 00000100 | 4 |
8 | 38 | 00111000 | 00111000 | 00010011 | 13 |
9 | 39 | 00111001 | 0 01 1 10 01 | 00001001 | 9 |
0 | 30 | 00110000 | 00110 000 | 00000000 | 00 |
20 | 00100000 | 0 0 1 0 0 0 0 0 | 00000000 | 00 | |
/ | 2F | 00101111 | 0 0 1 0 1 1 1 1 | 00000010 | 2 |
Ц | 63 | 01100011 | 0 1 1 0 0 0 1 1 | 00000000 | 00 |
У | 75 | 01110101 | 0 1 1 1 0 1 0 1 | 00001001 | 09 |
К | 6B | 01101011 | 0 1 1 0 1 0 1 1 | 00010100 | 14 |
Е | 65 | 01100101 | 0 1 1 0 0 1 0 1 | 00001000 | 08 |
ВК | 78 | 01111000 | 0 1 1 1 1 0 0 0 | 00000000 | 00 |
Н | 6E | 01101110 | 0 1 1 0 1 1 1 0 | 00001000 | 08 |
Г | 67 | 01100111 | 0 1 1 0 0 1 1 1 | 00000000 | 00 |
Ш | 7B | 01111011 | 0 1 1 1 1 0 1 1 | 00000010 | 02 |
Щ | 7D | 01111101 | 0 1 1 1 1 1 0 1 | 00000010 | 02 |
З | 7A | 01111010 | 0 1 1 1 1 0 1 0 | 00001000 | 08 |
Х | 68 | 11101000 | 1 1 1 0 1 0 0 0 | 00010101 | 15 |
Ъ | 5F | 01011111 | 0 1 0 1 1 1 1 1 | 00010000 | 10 |
- | 09 | 00001001 | 0 0 0 0 1 0 0 1 | 00011100 | 1С |
Ф | 66 | 01100110 | 0 1 1 0 0 1 1 0 | 00000111 | 7 |
Ы | 79 | 01111001 | 0 1 1 1 1 0 0 1 | 00010000 | 10 |
В | 77 | 01110111 | 0 1 1 1 0 1 1 1 | 00000100 | 04 |
А | 61 | 01100001 | 0 1 1 0 0 0 0 1 | 00001100 | 0С |
П | 70 | 01110000 | 0 1 1 1 0 0 0 0 | 00000000 | 00 |
Р | 72 | 01110010 | 0 1 1 1 0 0 1 0 | 00000100 | 04 |
О | 6F | 01101111 | 0 1 1 0 1 1 1 1 | 00000000 | 00 |
- | 41 | 01000001 | 0 1 0 0 0 0 0 1 | 00000001 | 01 |
Я | 71 | 01110001 | 0 1 1 1 0 0 0 1 | 00001001 | 09 |
Ч | 7E | 01111110 | 0 1 1 1 1 1 1 0 | 00001001 | 09 |
С | 73 | 01110011 | 0 1 1 1 0 0 1 1 | 00000000 | 00 |
М | 6D | 01101101 | 0 1 1 0 1 1 0 1 | 00000101 | 05 |
И | 69 | 01101001 | 0 1 1 0 1 0 0 1 | 00000100 | 04 |
Т | 74 | 01110100 | 0 1 1 1 0 1 0 0 | 00000010 | 02 |
Ь | 78 | 01111000 | 0 1 1 1 1 0 0 0 | 00010000 | 10 |
SP | 20 | 00100000 | 0 0 1 0 0 0 0 0 | 00000000 | 00 |
Л | 6C | 01101100 | 0 1 1 0 1 1 0 0 | 00000100 | 04 |
Д | 64 | 01100100 | 0 1 1 0 0 1 0 0 | 00000100 | 04 |
Ж | 76 | 01110110 | 0 1 1 1 0 1 1 0 | 00010111 | 07 |
Э | 7C | 01111100 | 0 1 1 1 1 1 0 0 | 00001000 | 10 |
Б | 62 | 01100010 | 0 1 1 0 0 0 1 0 | 001010000 | 10 |
Ю | 60 | 01100000 | 0 1 1 0 0 0 0 0 | 00011100 | 1С |
Код символа в форме для непосредственного вывода на индикатор занимает 1 адрес.