КОНТР-&-БАСИК
     

uCONSOLE
Микроконсоль для бейсик-контроллера

    Практически каждый, кто повторил тини бейсик-контроллер, отмечает, что хотелось иметь средства автономного ввода-вывода, хотя бы простейшую клавиатуру и индикатор. Ресурсы контроллера не позволяют подключить индикатор и кнопки непосредственно, но можно использовать имеющийся интерфейс RS-232 и модуль микроконсоли, описанный ниже. Так же как и бейсик-контроллер, микроконсоль выполнена на ATMEGA8. В качестве индикатора применён двухстрочный символьный индикатор 2x16 символов, клавиатура матричная 12-кнопочная. Ниже показаны схема микроконсоли и перечень элементов.

Схема в формате PDF

   

Схема и печатная плата в формате P-CAD 2002

Технологические (гербер) файлы для ЧПУ оборудования

Позиционное
обозначение

Кол.

Наименование компонентов
по классификации Чип и Дип

Примечание

C2..C8, C12, C13

9

Конденсаторы серии К10-17 импортные, 0.1 мкФ 50В

 

C1,C9

2

Электролитические конденсаторы, 47мкФ 25 В

 

C10,C11

2

Конденсаторы серии К10-17 импортные, 18 пФ 50 В

 

LS1

1

Пъезоизлучатель

 

R1,R2

2

С2-23-0.125 5%-330

 

R3

1

С2-23-0.125 5%-10K

 

U1

1

ICL232CPE=HIN232CP(MAX232CPE)PDIP16

 

U2

1

ATmega8-16PI PDIP28

 

CN1

1

PLS-6

Power and RS232

CN2

1

PLS-8

KeyPad

CN3

1

PBS-14

LCD

Y1

1

Кв.рез. 11.0592 МГц имп. HC-49U

 

    При сборке устройства необходимо учесть расположение первого контакта на вашем LCD. В нашем случае, в качестве разъёма CN2 мы применили линейку PBS-14 (гнёзда на плату) и запаяли с обратной стороны платы, а на индикаторе установили линейку штырей. Возможно запаять разъём CN2 со стороны компонентов, а высокие детали запаять с другой стороны, так, чтобы ничто не мешало соединению платы микроконсоли с индикатором.
    После сборки контроллер необходимо запрограммировать. Микроконсоль не имеет специального разъёма для программирования, но все необходимые сигналы имеются на контактах разъёмов клавиатуры и питания. Прошивку возьмите по ссылке, приведённой ниже.

Прошивка, версия 1.0A

    Первое включение следует произвести удерживая кнопку 0 на клавиатуре, при этом вступят в действие настройки по умолчанию и модуль готов к работе.

Клавиатура

Основная раскладка клавиатуры показана ниже

  1 

  2  

  3  

  4 

  5 

  6  

  7 

  8  

  9  

  F 

  0 

Ent

Следующая раскладка вступает в силу после нажатия клавиши F и доступна для ввода одного символа, после чего снова становится активной первая раскладка

  A  

  B  

  C  

  D  

  E  

 F  

  G  

  H  

  I  

   

  -  

   

Если удерживать клавишу F дольше одной секунды (это время настраивается), становится доступной раскладка, показанная ниже. Этот слой так же доступен для ввода одного символа, после чего снова становится активной первая расклккадка

  K  

  L  

  M  

  N  

  O  

  P  

  Q  

  R  

  S  

     

     

   

    Нажатие клавиш озвучено, короткий бип сопровождает нажатие клавиши, длинный бип вырабатывается при удержании клавиши F дольше некоторого порогового значения, что индицирует доступность третьей раскладки клавиатуры
    Микроконсоль имеет Setup, если по какой-либо причине не устраивают параметры по умолчанию, их можно изменить, для этого Setup нужно активизировать, проделав следующие действия:

1.Выключить питание микроконсоли
2.Нажать и удерживать клавишу F
3.Включить питание микроконсоли
4.Отпустить клавишу F

В результате на дисплее появится первый пункт Setup:

Contrast
2-Up 8-Down[nnn]

Это настройка контраста дисплея. В квадратных скобках показано текущее значение в относительных единицах. Изменить значение можно нажимая клавиши 2 и 8. Дикретность изменения 10 единиц. По умолчанию установлено число 10. Одновременно с изменением условного числа, изменяется и контрастность. Необходимо подобрать желаемый уровень и нажать клавишу Ent, после чего произойдёт переход к следующему пункту Setup:

Beep[nnn]>_

Это длительность короткого бипа. В квадратных скобках стоит длительность звука в милисекундах, по умолчанию это 60 мС. Нулевое значение отключает короткий бип. В этом и последующем пунктах настроек числовые значения вводятся с клавиатуры. Могут быть ввдены значения от 0 до 32767 мС Если значение устраивает или данный пункт необходимо пропустить, просто нажмите клавишу Ent.

F-beep[nnn]>_

Это длительность звуковой индикации перехода на третий слой раскладки клавиатуры, этот звук должен заметно отличаться по длительности от короткого бипа. Нулевое значение отключает этот звук. Значение по умолчанию 300.

Auto repeat
delay[nnn]>_


Задержка перед началом автопосылки кода нажатой клавиши. Значение по умолчанию 500. Автоповтор срабатывает для клавиш 2,8 и 4,6 основной раскладки

Symbol
delay[nnn]>_


Задержка между символами при автоповторе, значение по умолчанию 50

F-pressing
delay[nnn]>_


Задержка на срабатывание "долгого" удержания клавиши F, значение по умолчанию 1000.

Debounce
delay[nnn]>_


Защитная задержка от дребезга контактов, можно вводить значения от 1 до 255 мС, значение по умолчанию 20.

Setup:
1=Exit 2-Save>_


Это завершающий пункт Setup. 1- выход без сохранения введённых параметров, 2-выход с сохранением, Ent без ввода параметров возвращает к первому пункту Setup

Дисплей

   Дисплей отображает принятые по интерфейсу RS-232 символы. Если в потоке символов встречается управляющая ANSI последовательность, предварённая кодом 27 (Escape), производится распознавание, ниже приведены те последовательности, которые микроконсоль распознаёт и выполняет.

Управляющие ESC последовательности

ESC - символ с кодом 27 (1B - в шестнадцатеричном коде)

Управляющая последовательность

Выполняемое действие

ESC[2J

Очищает экран и устанавливает курсор в позицию строка=1, колонка=1

ESC[<строка>;<колонка>f или
ESC[<строка>;<колонка>H

Устанавливает курсор в позицию строка,колонка

ESC[f или ESC[H

Устанавлива6ет курсор в позицию 1,1

ESC[<кол_сдвигов>C

Сдвигает курсор на кол_сдвигов вправо

ESC[C

Сдвигает курсор на одну позицию вправо

ESC[<кол_сдвигов>D

Сдвигает курсор на кол_сдвигов влево

ESC[D

Сдвигает курсор на одну позицию влево

Нестандартные управляющие последовательности, только для данного терминала

Управляющая
последовательность

Выполняемое действие

ESC0D

Прячет курсор

ESC0С

Включает курсор

Реакция на некоторые одиночные символы

Символ

Реакция

0x08

Сдвигает курсор на одну позицию влево

0x0A

Игнорируется

0x0С

Очищает экран и устанавливает курсор
в позицию строка=1, колонка=1

0x0D

Игнорируется

    Пример, приведённый ниже, показывает как нужно выполнять позиционирование курсора при выводе значений. Необходимо отметить, что операция очистки экрана довольно медленная. Нужно дождаться её завершения, для этого следует вставить задержку, гарантированно перекрывающую длительность этой операции, что и сделано во второй строчке программы после очистки дисплея.


print "$";27;"[2J";
delay 100
print "$";27;"[1;1H ADC #1 ";
print "$";27;"[2;1H ADC #2 ";
10
adc x
setb 128
print "$";27;"[1;9H";x;"     "
adc y
clrb 128
print "$";27;"[2;9H";y;"     "
goto 10

    Можно полностью отладить вывод используя гипертерминал, если включить в его настройках эмуляцию ANSI терминала, а тексты стремиться выводить только в первые 16 позиций верхних двух строк.

14.02.2007