Windows 8        23.06.2023   

Подключение знакосинтезирующего ЖКИ к контроллеру (PIC16F628A). Многофункциональный частотомер на PIC16F84A Схемы на pic16f628a и lcd индикаторе

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

Электрическая схема частотомера на МК PIC16F870

Этот цифрвой ЖК частотомер обладает очень высокой скоростью измерения, его очень легко собрать и использовать. Счетчик чисел выполнен на основе ЖК-дисплея на 2 строки по 16 символов. Был использован HD44780 на основе очень распространенного дисплея. На микроконтроллере PIC16F870 собраны цепи управления подсчета и отображения результата.

Частотомер может измерять частоту вплоть до 2,5 ГГц . Это стало возможным благодаря предделителю на LMX2322 . Данная специализированная микросхема по даташиту берёт 2,5 ГГц с высокой чувствительностью.

В этой статье описано как подключить жидкокристаллический индикатор со знакогенератором к микроконтроллеру. Рассмотренные здесь методы и схемы подходят для подключения ЖКИ со встроенными контроллерами HD44780 (Hitachi), KS0070, KS0066 (Samsung), LC7985 (Sanyo), SED1278 (Epson) или с другими аналогичными. Эти, или совместимые с ними, контроллеры используются в большинстве выпускаемых в настоящий момент знакосинтезирующих ЖКИ, например, в таких, как ACM0802, ACM1601, ACM1602, ACM1604, ACM2002, ACM2004, ACM2402, ACM4002, ACM4004 фирмы Displaytronic, MT-10S1, MT-16S2D фирмы МЭЛТ, DV-0802, DV-16100, DV-16110, DV-16120, DV-16210, DV-16230, DV-16235, DV-16236, DV-16244, DV-16252, DV-16257, DV-16275, DV-16276, DV-20100, DV-20200, DV-20210, DV-20211, DV-20220, DV-24200, DV-40200 фирмы Data Vision, AC082A, AC161, AC162, AC164, AC202, AD202, AC204, AC242, AD242, AC402 фирмы Ampire.

Вообще, данная задача сводится к организации обмена данными между подключаемым контроллером и встроенным контроллером ЖКИ, потому что самой матрицей управляет именно встроенный контроллер. В дальнейшем, когда мы будем говорить о подключении к ЖКИ, следует понимать, что речь идет о подключении к встроенному контроллеру. Перечисленные выше контроллеры ЖКИ имеют аналогичные интерфейсы, наборы команд и распределение памяти, хотя размер встроенной ROM-памяти, последовательность команд инициализации, время выполнения команд и некоторые другие параметры могут несколько отличаться.

Итак, для начала, давайте разберемся с работой ЖКИ.

1) Интерфейс .

Обычно ЖКИ имеет 14 или 16 выводов, назначение которых представлено в таблице 1:

ТАБЛИЦА 1

номер контакта наименование описание
1 Vss GND — общий провод (земля)
2 Vdd Power supply — питание +5В
3 Vo контраст
4 RS Register select — выбор регистра
5 R/W Read/write — чтение/запись
6 E Enable — вкл/выкл передачи
7 DB0 Data bit 0
8 DB1 Data bit 1
9 DB2 Data bit 2
10 DB3 Data bit 3
11 DB4 Data bit 4
12 DB5 Data bit 5
13 DB6 Data bit 6
14 DB7 Data bit 7
15 BL+ питание подсветки
16 BL- общий провод подсветки

Таким образом, интерфейс имеет восемь информационных линий: DB7..DB0 и три управляющих: RS, R/W, E.

Линия RS определяет к какому регистру контроллера ЖКИ мы хотим обратиться, то есть какую информацию мы передаем — данные или команды.

Линия R/W определяет направление передачи данных — запись в ЖКИ или чтение из ЖКИ.

Линия E включает (когда на линии высокий уровень) или выключает (когда на линии низкий уровень) передачу информации, сформированной на остальных интерфейсных линиях.

Интерфейс работает следующим образом: сначала на интерфейсных линиях DB7…DB0, RS, R/W формируется информация, которую нужно передать, потом на некоторое время (>500 нс для f 0 =270 кГц) подается высокий уровень на линию E (в это время ЖКИ считывает информацию), после чего сигнал E переводится опять в состояние низкого уровня. f 0 — частота, на которой работает контроллер ЖКИ. Вообще, контроллеры ЖКИ могут работать на разных частотах (у них есть выводы для подключения внешнего резонатора), но обычно используется внутренний генератор на 270 кГц.

После получения каждой порции информации контроллеру ЖКИ требуется некоторое время для ее обработки, поэтому передавать информацию подряд нельзя. После каждой посылки требуется подождать некоторое время, чтобы контроллер ЖКИ освободился. Обычно в даташите указано, какой команде сколько времени требуется для выполнения. Также, в контроллере ЖКИ предусмотрена возможность сообщить внешнему устройству о своем состоянии (BUSY/READY). То есть, при передаче данных, можно либо анализировать состояние контроллера ЖКИ и посылать следующую порцию данных, как только контроллер ЖКИ освободится, либо просто выждать время, большее, чем время выполнения операции по даташиту, после чего посылать следующую порцию данных.

Для уменьшения количества проводов от ЖКИ к внешнему устройству можно использовать не 8, а 4 информационных сигнала (DB7…DB4). Все рассматриваемые контроллеры ЖКИ допускают такую возможность. В этом случае данные передаются в два этапа (кроме первой команды инициализации): 1) передаются управляющие биты и старший полубайт посылки 2) передаются управляющие биты и младший полубайт посылки.

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

Во время инициализации лучше не анализировать флаг BUSY, а тупо ждать положенное время перед посылкой следующей команды, так как флаг начинает выставляться не сразу, а после какой-то команды (смотрите даташит).

Инициализация для восьмибитного интерфейса (f 0 =270 кГц)

1) включение питания

2) пауза >30 мс

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 1 N F X X

4) пауза >39 мкс

5) DISPLAY ON/OFF CONTROL

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B

6) пауза >39 мкс

7) DISPLAY CLEAR

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1

8) Пауза >1.53 мс

9) ENTRY MODE SET

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D SH

Инициализация для четырехбитного интерфейса (f 0 =270 кГц)

1) включение питания

2) пауза >30 мс

RS R/W DB7 DB6 DB5 DB4
0 0 0 0 1 0
0 0 0 0 1 0
0 0 N F X X

N=0 — однострочный дисплей, N=1 — двустрочный дисплей

F=0 — шрифт 5х8, F=1 — шрифт 5х11

4) пауза >39 мкс

5) DISPLAY ON/OFF CONTROL

RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
0 0 1 D C B

D=0 — дисплей выключен, D=1 — дисплей включен

C=0 — курсор выключен, C=1 — курсор включен

B=0 — мерцание выключено, B=1 — мерцание включено

6) пауза >39 мкс

7) DISPLAY CLEAR

RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
0 0 0 0 0 1

8) Пауза >1.53 мс

9) ENTRY MODE SET

RS R/W DB7 DB6 DB5 DB4
0 0 0 0 0 0
0 0 0 1 I/D SH

I/D=0 — уменьшение указателя при операции с памятью, I/D=1 — увеличение указателя при операции с памятью

SH=0 — сдвигание дисплея выключено, SH=1 — сдвигание дисплея включено

2) Память

В ЖКИ есть 2 вида памяти: DDRAM, CGRAM (CGROM).

DDRAM — display data RAM (память дисплея) — то, что записано в этой памяти, — непосредственно отображается на дисплее. Эта память имеет следующее адресное пространство и соответственное отображение на дисплее (для дисплея 24х2):

Первая строка

Display position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
DDRAM address 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 10h 11h 12h 13h 14h 15h 16h 17h

Вторая строка

Display position 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
DDRAM address 40h 41h 42h 43h 44h 45h 46h 47h 48h 49h 4Ah 4Bh 4Ch 4Dh 4Eh 4Fh 50h 51h 52h 53h 54h 55h 56h 57h

То есть, то, что записано в DDRAM по адресу, например, 42h, будет отображаться в третьей позиции на второй строке дисплея. Для дисплеев других размеров доступное адресное пространство DDRAM будет другим (обычно первые 40h адресов — первая строка, вторые 40h адресов — вторая строка и т.д.)

CGRAM (CGROM) — character generator RAM (ROM) — память знакогенератора. Память знакогенератора разделена на CGRAM — доступна для записи/чтения, сюда можно залить 8 своих собственных символов и CGROM — доступна только для чтения, заранее прошитые шрифты. В разных ЖКИ могут быть прошиты разные шрифты, это надо смотреть по доке или можно определить самому, организовав вывод на дисплей последовательно всех прошитых символов.

При обращении к первым шестнадцати символам знакогенератора происходит обращение к CGRAM, при обращении к символам, с номерами старше шестнадцатого — обращение к CGROM. Причем, пользовательских символов ведь всего 8, поэтому первые восемь символов знакогенератора указывают на те же области CGRAM, что и вторые восемь символов.

Иногда, в CGROM могут быть прошиты не все символы, начиная с семнадцатого, а, например, начиная с номера 21h, а при обращении к символам от 10h до 21h на дисплей выводится всякий мусор. Это зависит от прошивки.

Для вывода на экран какого-либо символа, необходимо выполнить следующие действия:

1) установить курсор командой "set DDRAM address" в ту позицию, куда мы хотели бы вывести символ (информационные биты указывают адрес DDRAM, соответствующий выбранной позиции)

SET DDRAM ADDRESS (AC6…AC0 — адрес устанавливаемой позиции курсора в памяти дисплея)

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 1 AC6 AC5 AC4 AC3 AC2 AC1 AC0

2) вывести символ на экран командой "write data to RAM", при этом информационные биты указывают на номер символа, выводимого из CGRAM/CGROM.

WRITE DATA TO RAM (A7..A0 — номер символа, выводимого из памяти знакогенератора)

RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1 0 A7 A6 A5 A4 A3 A2 A1 A0

Полный список команд для работы с ЖКИ и время их выполнения можно узнать, скачав даташит на любой из рассматриваемых ЖКИ-контроллеров (все они имеют одинаковые наборы команд).

Разобравшись с работой ЖКИ, вернемся к вопросу его подключения к микроконтроллеру. В качестве примера возьмем контроллер PIC16F628A. Ниже показаны примеры схем подключения для восьмибитного и четырехбитного интерфейсов. Подключение подсветки на схемах не показано, поскольку полярность подключения подсветки, иногда, определяется перемычками на плате ЖКИ.

Вот и всё! Для того, чтобы схемы заработали, осталось только залить в микроконтроллер программу, реализующую обмен данными с ЖК-индикатором.

Пример готового девайса (8-битный интерфейс, ЖКИ — PM1623):

Примеры программ и готовые прошивки:

Скачать печатную плату (AutoCAD2000i) Эта плата разведена под использование SMD компонентов. Если вы будете использовать другие компоненты, то плату придется переделывать.

Идея сделать этот частотомер возникла после приобретения в магазине радиодеталей радиолюбительского набора, состоящего из пластмассового корпуса размерами примерно 120x80x30 мм с отсеком для «Кроны», окном для индикатора и установленной в него макетной печатной платой «решето». Вот на этой основе и был собран этот прибор.

Частотомер измеряет частоту до 100 МГц, чувствительность входа 30 мВ, входное сопротивление 500 кОм. Построен он на основе микроконтроллера PIC16F628A и жидкокристаллического модуля типа 1601.

Сигнал, частоту которого нужно измерить, поступает на входной разъем Х1. Конденсатор С1 служит для удаления из постоянной составляющей общего поступающего на вход. Резисторы R2 и диоды VD1-VD2 создают ограничитель, который ограничивает величину амплитуды входного сигнала и поэтому частотомер без переключений входа может измерить частоты сигналов от 0,03 до 50V.

Входной усилитель двухкаскадный на транзисторах VT1 и VT2. Полевой транзистор на входе позволяет получить высокое входное сопротивление.

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

Оптимальный режим работы усилителя устанавливается экспериментально подбором сопротивления резистора R4 по наилучшей работе (измеряя частоту сигналов разной формы с выхода функционального генератора нужно выбрать оптимальный режим).

Тактируется микроконтроллер кварцевым генератором на резонаторе Q1 (4 МГц).

На выходе жидкокристаллический модуль типа 1601. Резистором R7 можно регулировать контрастность знаков. Питается схема напряжением 5V, поступающим с интегрального стабилизатора А1. S1-выключатель питания, источник питания гальваническая батарея G1 напряжением 9V.

Некоторое время назад я сделал аудио-генератор с частотомером, который работал очень хорошо, но я его продал, и теперь я делаю новый. Частотомер в предыдущей конструкции был сделан на микросхемах КМОП логики, но поскольку на данный момент у меня есть программатор PIC микроконтроллеров — частотомер построен именно на микроконтроллере.

Как обычно идею для будущей конструкции я искал в интернете. Оригинальная идея пришла от этого проекта: Частотомер на PIC16F628A и ЖК индикаторе . Как вы можете заметить – схема очень простая и в то же время элегантная. Но я хотел использовать 7-сегментный светодиодный дисплей, а не жидкокристаллический, так что я нашел еще один интересный проект: Простой 100MHz счетчик частоты , в котором применен 6-разрядный светодиодный дисплей.

Описание частотомера

Конечно же, объединение двух проектов в один не простая задача. Прежде всего, я хотел чтобы это был частотомер на микроконтроллере, и не имел дополнительных микросхем. Помимо этого я выбрал 16F628A, и потому один из выводов (порта RA5) может быть использованы только в качестве входа.

Для мультиплексного управление 6 цифрами 7-сегментного дисплея требуется 7 + 6 = 13 выходов. Микроконтроллер16F628A имеет 16 выводов, два из которых используются для кварцевого генератора, один для входного сигнала и еще один может быть использован только для входа. Так что у нас остается только 12 свободных выводов. Решение — управление одним из общих катодов с помощью транзистора, который открывается, в момент, когда все другие цифры выключены.

В схеме частотомера применено два 3-разрядных 7-сегментных дисплея с общим катодом типа BC56-12SRWA . Цифры 2..5 включаются, когда соответствующие выводы устанавливаются на низком уровне. Когда на всех этих выводах находится высокий уровень, транзистор Q1 открывается и загорается первая цифра. Ток потребления для каждого сегмента составляет около 6-7mA.

Следует отметить, что выводы, связанные с общими катодами теоретически могут потреблять до 50 мА, если все сегменты светятся. Это, конечно же, немного выше характеристик микроконтроллера. Но так как каждая цифра включается на очень короткое время, то это безопасно. Вся схема частотомера потребляет в среднем около 30-40 мА.

Микроконтроллер тактируется от внутреннего 4 МГц генератора. Таймер1 использует внешний кварцевый генератор с частотой 32768Hz для установки односекундного интервала. Timer0 используется для подсчета входного сигнал на выводе RA4. И, наконец, Таймер2 используется для обновлений цифры. Частотомер может измерять частоту от 920 до 930 кГц, что для любительских целей вполне достаточно. В качестве источника питания используется стабилизатор напряжения 78L05.

(скачено: 1 182)

  • 28.09.2014

    Данный приемник работает в диапазоне 64-75 МГц и имеет реальную чувствительность 6 мкВ, выходную мощность 4 Вт, диапазон ЗЧ — 70…10000Гц, КНИ не более 1 %. При этих параметрах приемник имеет размеры 60*70*25 мм. Приемный тракт собран на КС1066ХА1(К174ХА42) по стандартной схеме. Антенна — провод длиной около метра, сигнал от …

  • 29.09.2014

    Схема выполнена на двух микросхемах ТВА1208. В основе лежит схема трансивера, напечатанная в Л,1, но этот тракт работает с промежуточной частотой 500 кГц, что, конечно несколько снижает eгo характеристики, но позволяет использовать готовый, нacтpoeнный на заводе электромеханический фильтр. Микросхемы ТВА1208 предназначены для работы в тракте второй ПЧ3 телевизоров, В них …

  • 20.09.2014

    Классификация магнитных материалов Магнитные материалы находят самое широкое распространение в электротехнике, без них в настоящее время немыслимы электрические машины, трансформаторы, электроизмерительные приборы. В зависимости от применения к магнитным материалам предъявляются различные, подчас противоположные, требования. По признаку применения магнитные материалы классифицируются на две большие группы: магнитомягкие магнитотвердые Рассмотрим кратко их характеристики. …

  • 10.12.2017

    На рисунке показана схема простого высоко чувствительного акустического выключателя, который управляет нагрузкой при помощи реле. В схеме используется электретный микрофон, при использовании ECM микрофона необходимо использовать резистор R1 сопротивление от 2,2 кОм до 10 кОм. Первые два транзистора представляют собой предварительный микрофонный усилитель, R4 С7 в схеме устраняют нестабильность усилителя. …