КОНТР-&-БАСИК | ||
uCONSOLE
Микроконсоль для бейсик-контроллера
Практически каждый, кто повторил тини бейсик-контроллер, отмечает,
что хотелось иметь средства автономного ввода-вывода, хотя бы простейшую клавиатуру и индикатор.
Ресурсы контроллера не позволяют подключить индикатор и кнопки непосредственно, но можно использовать имеющийся
интерфейс RS-232 и модуль микроконсоли, описанный ниже. Так же как и бейсик-контроллер, микроконсоль выполнена на ATMEGA8.
В качестве индикатора применён двухстрочный символьный индикатор 2x16 символов, клавиатура матричная 12-кнопочная.
Ниже показаны схема микроконсоли и перечень элементов.
Схема и печатная плата в формате 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 со стороны компонентов, а высокие детали запаять с другой стороны, так, чтобы ничто не мешало
соединению платы микроконсоли с индикатором.
После сборки контроллер необходимо запрограммировать. Микроконсоль не имеет специального разъёма для программирования, но все необходимые сигналы имеются на контактах
разъёмов клавиатуры и питания. Прошивку возьмите по ссылке, приведённой ниже.
Первое включение следует произвести удерживая кнопку 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[f или ESC[H |
Устанавлива6ет курсор в позицию 1,1 |
ESC[<кол_сдвигов>C |
Сдвигает курсор на кол_сдвигов вправо |
ESC[C |
Сдвигает курсор на одну позицию вправо |
ESC[<кол_сдвигов>D |
Сдвигает курсор на кол_сдвигов влево |
ESC[D |
Сдвигает курсор на одну позицию влево |
Нестандартные управляющие последовательности, только для данного терминала
Управляющая |
Выполняемое действие |
ESC0D |
Прячет курсор |
ESC0С |
Включает курсор |
Реакция на некоторые одиночные символы
Символ |
Реакция |
0x08 |
Сдвигает курсор на одну позицию влево |
0x0A |
Игнорируется |
0x0С |
Очищает экран и устанавливает курсор |
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 |