Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как подключить LCD к МК
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
klin-2006
Подскажите пожалуйста как подключить LCD (нужно только 3 цифры) к МК ATmega16. Рисую принципиалку, непонятно какую ножку к какой подключать. ЖКИ взял INTECH E0812.
SasaVitebsk
Цитата(klin-2006 @ Jun 2 2009, 22:13) *
Подскажите пожалуйста как подключить LCD (нужно только 3 цифры) к МК ATmega16. Рисую принципиалку, непонятно какую ножку к какой подключать. ЖКИ взял INTECH E0812.

Любую линию порта. Поскольку шина у LCD паралельная. Если вы имеете ввиду самый распространённый символьный ЖКИ на основе контроллера HD44780.

Скачайте даташит на выбранный вами ЖКИ и посмотрите в нём типовую схему подключения.
rezident
INTECH E0812 это же всего лишь стекло с выводами. К нему контроллер LCD какой-либо нужно. Причем без мультиплексирования, т.к. управление у E0812 - статическое.
В простейшем случае можно кучкой элементов с логической функцией XOR-ов обойтись. Но элементов нужно по количеству сегментов этого LCD, т.е. не менее 23 штуки. 6 корпусов 74HC86 наверное подойдут. На один из входов каждого элемента XOR подается частота (меандр) несколько десятков-сотен Гц до единиц кГц. На второй вход каждого элемента XOR подается информация о сегменте включен/выключен. Вывод COM индикатора подключается к выходу 24-го элемента XOR. Сигнал на информационном входе этого 24-го элемента будет определять полярность информационных входов (прямой/инверсный) остальных 23-х элементов XOR.
Для того, чтобы сократить количество управляющих выводов, можно 3 корпуса 74HC595 поставить перед 74HC86. Уровень напряжения питания 74HC86, будет определять контраст изображения этого LCD.
singlskv
Цитата(rezident @ Jun 3 2009, 00:19) *
Причем без мультиплексирования, т.к. управление у E0812 - статическое.
В простейшем случае можно кучкой элементов с логической функцией XOR-ов обойтись.

В простейшем случае такие LCD управляются микросхемками типа AY0438 от микрочипа(дорого...),
ну или еще были всякие PcfXXXX от филипса, правда что из этого сейчас можно купить хз...

ЗЫ: AY0438 таки можно купить: http://www.symmetron.ru/cgi-bin/search.cgi...amp;radio=sklad
Сергей Борщ
Цитата(rezident @ Jun 2 2009, 23:19) *
Для того, чтобы сократить количество управляющих выводов, можно 3 корпуса 74HC595 поставить перед 74HC86. Уровень напряжения питания 74HC86, будет определять контраст изображения этого LCD.
А можно обойтись и без 74HC86, перегружая 74HC595 инверсным значением с частотой 30...50Гц. Общий провод (подложку, COM) также подключить к одному из выходов 74HC595.
akl
Цитата(klin-2006 @ Jun 3 2009, 00:13) *
Подскажите пожалуйста как подключить LCD (нужно только 3 цифры) к МК ATmega16. Рисую принципиалку, непонятно какую ножку к какой подключать. ЖКИ взял INTECH E0812.

Здравствуйте. Если есть свободные 23 лапы, то можно так. На схеме использован AT90S4414 в связке с ITS-E0803 и программным управлением.
Нажмите для просмотра прикрепленного файла
klin-2006
Вот еще непонятно, я к МК подклячаю еще интерфейс и ножки rxd и txd задействованы, и к lcd их тоже нужно подключить. Можно с одной ножки на 2 микросхемы подключить или нет?
XVR
Цитата(klin-2006 @ Jun 3 2009, 10:28) *
Вот еще непонятно, я к МК подклячаю еще интерфейс и ножки rxd и txd задействованы, и к lcd их тоже нужно подключить. Можно с одной ножки на 2 микросхемы подключить или нет?
Нет.
PS. А может вам взять LCD с встроенным контролером, что бы не надо было такой многоногий зоопарк городить?
Сергей Борщ
Цитата(klin-2006 @ Jun 3 2009, 09:28) *
и ножки rxd и txd задействованы, и к lcd их тоже нужно подключить.
Зачем? Если вы решили идти путем, предлженным akl, то индикатор можно подключать к любым ножкам, которые могут быть выходами. Но больше к этим ногам ничего подключать нельзя.
klin-2006
Решил взять ЖКИ FDCC0801A фирмы Fordata со встроенным контроллером – SPLC780D.
klin-2006
В принципиалке нарисовал микросхему ЖКИ FDCC0801A соединил с МК Atmega16, а преподаватель говорит, ты что будешь на плату LCD устанавливать? Так что тогда надо, вместо микросхемы разъем рисовать?
Сергей Борщ
Цитата(klin-2006 @ Jun 4 2009, 17:07) *
Так что тогда надо, вместо микросхемы разъем рисовать?
Если на плате ставится разъем - да.
klin-2006
Нарисовал принципиальную электрическую схему, только не знаю правильно или нет. Может кто-нибудь посмотреть, проверить? Пожалуйста.
Принцип работы: Имеются 2 аналоговых датчика температуры DS600 (разьемы X1, X2), которые опрашивает МК Atmega16 (DD1 (со встроенным АЦП)), в нем происходят необходимые действия, затем с МК поступает значение температуры на LCD FDCC0801A фирмы Fordata со встроенным контроллером – SPLC780D (разьем X6), также МК сравнивает измеренную температуру с заданной, если она входит в заданный диапазон, то цикл повторяется, если меньше заданной, то формируется управляющий сигнал (напряжение) по ПИД-закону и подается через таймер ОСn (ШИМ) через гальваническую развязку DD2 (ADUM1401) на исполнительный элемент (разьем X4). Также необходимо передавать значения текущей температуры и сигнал о нештатной ситуации на ПК оператору через интерфейс RS-485 (микросхема DD3 adm485 с выходом на разьем X4). Разьем X2 питание с DA1 (7805L).
XVR
ADUM1401 включен неправильно - нафига ты ему входные и выходные сигналы вместо входа и выхода на питание посадил?
RS485 тоже рекомендуется гальванически развязать, хз куда его воткнут smile.gif
rezident
Цитата(klin-2006 @ Jun 5 2009, 00:06) *
Нарисовал принципиальную электрическую схему, только не знаю правильно или нет. Может кто-нибудь посмотреть, проверить?
Явная ошибка только в подключении DD2. На выводы VDD1 и VDD2 нужно подавать питание. Причем на VDD2 другое, отлИчное от тех +5В, что имеются на схеме, гальванически изолированное от него. Т.е. как минимум DC/DC 5В->5В не хватает.
А во всем остальном, если учитывать, что это студенческая работа и "в железе" реализовываться не будет (или будет? cranky.gif ), то сойдет. Хотя, на мой взгляд, при наличии локальной индикации в схеме не хватает локального устройства ввода - клавиатуры, пускай бы даже из трех-четырех-шести кнопок.
Кстати, из R4 лучше pull-down сделать, а не pull-up как сейчас. В противном случае R4 вообще не нужен (бесполезен).
Сергей Борщ
Добавлю:
- Не хватает емкостей на питании процессора, вход Reset процессора не подтянут к питанию, не хватает разъема внутрисхемного программирования (не будете же вы использовать процессор в DIP-корпусе, да еще и в панельке wink.gif ).
- У разъема X4 цепи подписаны как для RS-232C, а не для RS-485.
- Цепь питания процессора и датчиков подписана как Vcc у разъемов датчиков, но не соединена с +5в.
- Индикатор можно перекинуть на PORTB. Если не будете перекидывать - не забудьте при программировании снять фуз JTAGEN (поиск по форуму объяснит - почему).
- Vee индикатора должна быть подключена через резистор к земле, а не к питанию. Хотя совсем правильно было бы подключить ее к движку подстроечного резистора, а крайние выводы резистора - к земле и питанию.
- Если подсветка не используется, то выводы 15 и 16 индикатора можно вообще не подключать, если используется - то вывод 16 надо подключать не к земле, а к питанию через резистор. А совсем хорошо - 16 к питанию напрямую, а между 15 и землей поставить источник тока на транзисторе (иначе будет неприятное мерцание при резких изменениях напряжения питания или тока потребления схемы).
klin-2006
Цитата(XVR @ Jun 5 2009, 01:23) *
ADUM1401 включен неправильно - нафига ты ему входные и выходные сигналы вместо входа и выхода на питание посадил?
RS485 тоже рекомендуется гальванически развязать, хз куда его воткнут smile.gif

А какие pin'ы тогда у ADUM1401 входные и выходные, я на гальваническую развязку как я понял подаю же напряжение в виде ШИМ?

Цитата(rezident @ Jun 5 2009, 01:30) *
Явная ошибка только в подключении DD2. На выводы VDD1 и VDD2 нужно подавать питание. Причем на VDD2 другое, отлИчное от тех +5В, что имеются на схеме, гальванически изолированное от него. Т.е. как минимум DC/DC 5В->5В не хватает.
А во всем остальном, если учитывать, что это студенческая работа и "в железе" реализовываться не будет (или будет? cranky.gif ), то сойдет. Хотя, на мой взгляд, при наличии локальной индикации в схеме не хватает локального устройства ввода - клавиатуры, пускай бы даже из трех-четырех-шести кнопок.
Кстати, из R4 лучше pull-down сделать, а не pull-up как сейчас. В противном случае R4 вообще не нужен (бесполезен).

Да, в железе реализовываться это не будет. А чтобы питание VDD2 отличалась от VDD1, что нужно между ножкой VDD2 и питанием поставить? Подскажите где можно найти схему подключения простого устройства ввода - клавиатуры к МК?
Вроде все исправил кроме того что ниже и гальванической развязки
Цитата(Сергей Борщ @ Jun 5 2009, 01:59) *
- Не хватает емкостей на питании процессора, не хватает разъема внутрисхемного программирования (не будете же вы использовать процессор в DIP-корпусе, да еще и в панельке wink.gif ).

непонял, что такое разъем внутрисхемного программирования, и куда он подключается? Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно?
Насчет источника тока, тоже сам чтото соорудил, проверьте пожалуйста (на 2-х транзисторах).
Цитата(Сергей Борщ @ Jun 5 2009, 01:59) *
- А совсем хорошо - 16 к питанию напрямую, а между 15 и землей поставить источник тока на транзисторе (иначе будет неприятное мерцание при резких изменениях напряжения питания или тока потребления схемы).
akl
Здравствуйте.
Для ADUM1401 3,4,5 входы, а 14, 13,12 соответствующие выходы
Нажмите для просмотра прикрепленного файла
В качестве DC-DC можно установить SPRL
Нажмите для просмотра прикрепленного файла
Не пренебрегайте советом гальванической развязки RS485, нарисуйте ADM2483.Нажмите для просмотра прикрепленного файла
Источник тока можно заменить резистором.
XVR
Цитата(klin-2006 @ Jun 5 2009, 11:05) *
А какие pin'ы тогда у ADUM1401 входные и выходные, я на гальваническую развязку как я понял подаю же напряжение в виде ШИМ?
Можете рассматривать ADUM как буферный элемент. Вход у него IA выход OA. Питания с каждой стороны должны быть свои. Гальваническая развязка для того и делается, что бы гальванически развязать 2 цепи, соответственно и питания у этих цепей должны быть гальванически развязанны. Кстати, 4х канальный ADUM здесь явно избыточен, достаточно будет одно канального (ADUM1100)
Можно взять ADUM со встроенным DC-DC (ADUM6132), тогда отдельное развязанное питание не понадобится

Цитата
А чтобы питание VDD2 отличалась от VDD1, что нужно между ножкой VDD2 и питанием поставить?
Батарейку rolleyes.gif

Цитата
непонял, что такое разъем внутрисхемного программирования, и куда он подключается? Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно?
Нет. Нужно по 1му конденсатору на КАЖДУЮ м/сх, за исключением ADUM - для него 2 шт (по одному на каждое питание)
klin-2006
Цитата(XVR @ Jun 5 2009, 12:58) *
Можно взять ADUM со встроенным DC-DC (ADUM6132), тогда отдельное развязанное питание не понадобится

То есть я подключаю к 1 ножке +5В через емкость, 2 и 8 ножку цепляю на землю, на 4 входной сигнал, с 12 ножки выходит выходной сигнал. К 16 ножке тоже +5В через емкость? 15, 14 и 9 на землю?


Здраствуйте
Цитата(akl @ Jun 5 2009, 11:38) *
Не пренебрегайте советом гальванической развязки RS485, нарисуйте ADM2483.

к 1 ножке подключается питание +5В через емкость, 2 и 8 идет на землю, 3, 4, 5 и 6 на МК, 9 и 15 на землю, 12 и 13 на разьем. А вот к 16 надо свое питание да? SPR01 это что-то вроде блока питания? через него нужно 16 ножку питать?
Цитата(akl @ Jun 5 2009, 11:38) *
Источник тока можно заменить резистором.

просто с 15 вывода разъема X6 через один резистор на землю?
Сергей Борщ
Цитата(klin-2006 @ Jun 5 2009, 10:05) *
непонял, что такое разъем внутрисхемного программирования, и куда он подключается?
Это разъем для программирования MK прямо на плате, не вынимая (выпаивая) его. Сигналы должны быть описаны в даташите в разделе Serial Programming. Используются 6 проводов - +5в, земля, MISO, MOSI, SCK, RESET.
Цитата(klin-2006 @ Jun 5 2009, 10:05) *
Про емкости на питание: сколько необходимо емкостей? я подумал просто поставить одну емкость между ножкой vcc на МК и +5В. Так будет правильно?
Да, для таких низкочастотных схем - одна емкость на каждый вход питания.
Цитата(klin-2006 @ Jun 5 2009, 10:05) *
Насчет источника тока, тоже сам чтото соорудил, проверьте пожалуйста (на 2-х транзисторах).
м... Я имел ввиду несколько другую схему. В вашей можно убрать R7, R8 и VT2. Ток задается R11. В моей ток задается R1.
klin-2006
Цитата(Сергей Борщ @ Jun 5 2009, 14:42) *
Это разъем для программирования MK прямо на плате, не вынимая (выпаивая) его. Сигналы должны быть описаны в даташите в разделе Serial Programming. Используются 6 проводов - +5в, земля, MISO, MOSI, SCK, RESET.

а XTAL1 не надо использовать? если надо, то соединяться нужно между кварцевым генератором и ножкой XTAL1? и насчет reset: он же подключен к питанию. Или можно тоже к нему подсоедениться?
klin-2006
Цитата(klin-2006 @ Jun 5 2009, 15:23) *
а XTAL1 не надо использовать? если надо, то соединяться нужно между кварцевым генератором и ножкой XTAL1? и насчет reset: он же подключен к питанию. Или можно тоже к нему подсоедениться?

С внутрисхемным разъемом программирования разобрался. Осталось разобраться только с микросхемами ADM2483 и ADUM6132.
klin-2006
Вы уж извините меня за может для кого-то простые вопросы, просто вся проблема в том, что я не знаю английского языка, т.к. изучаю немецкий, и даташит мне особо не помошник.
XVR
Цитата(klin-2006 @ Jun 5 2009, 16:55) *
С внутрисхемным разъемом программирования разобрался. Осталось разобраться только с микросхемами ADM2483 и ADUM6132.
Для ADUM6132:
  • Концы VDD и VDDL (1 и 3) объединить и повесить на +5В
  • Между объединенными концами VDD и VDDL и землей повесить блокировочный конденсатор
  • Концы VISO и VDDA объединить, между ними и GNDISO повесить блокировочный конденсатор
  • Земли GND и GNDISO разорвать
В остальном правильно
nikulem
Цитата(klin-2006 @ Jun 5 2009, 16:55) *
С внутрисхемным разъемом программирования разобрался. Осталось разобраться только с микросхемами ADM2483 и ADUM6132.

позвольте и мне добавить..

Между +5В и Vdd конденсатор ставить не надо (в приведенной схеме), соединить напрямую.
И также и между Viso и +5В - соединяется напрямую.
klin-2006
Цитата(XVR @ Jun 5 2009, 19:56) *
Для ADUM6132:
  • Концы VDD и VDDL (1 и 3) объединить и повесить на +5В
  • Между объединенными концами VDD и VDDL и землей повесить блокировочный конденсатор
  • Концы VISO и VDDA объединить, между ними и GNDISO повесить блокировочный конденсатор
  • Земли GND и GNDISO разорвать
В остальном правильно

то есть как я понял это будет выглядеть так

Так какое все же питание нужно подводить к Vdd2 микросхемы ADM2483, и еще к ножке PV той же микросхемы подводить что-нибудь нужно?
XVR
Цитата(klin-2006 @ Jun 5 2009, 21:03) *
то есть как я понял это будет выглядеть так
Почти. +5В в левой и правой половине соединяться не должны - это РАЗНЫЕ цепи. То же самое касается замель слева и справа
Цитата
Так какое все же питание нужно подводить к Vdd2 микросхемы ADM2483,
На нее понадобится еще один DC-DC, на сей раз отдельный. Подключать к Vdd2 & Gnd2
Цитата
и еще к ножке PV той же микросхемы подводить что-нибудь нужно?
Повесить на +5В (те, что слева)

Кстати, в DS на ADUM6132 указано, что Vddb тоже надо подавать (12В), иначе оно работать не будет sad.gif
klin-2006
Цитата(XVR @ Jun 5 2009, 22:06) *
Почти. +5В в левой и правой половине соединяться не должны - это РАЗНЫЕ цепи. То же самое касается замель слева и справа

То есть к правой половине +5В вообще не подключать?
XVR
Цитата(klin-2006 @ Jun 5 2009, 22:49) *
То есть к правой половине +5В вообще не подключать?
Да
klin-2006
Хочу для обеспечения питания во время отключения электроэнергии использовать стандартный UPS ИБП-200, а как сигнал об отключении питания использовать стандартный сигнал UPS, поступающий с разъема. Непойму только к какой ножке МК Atmega16 этот сигнал подводить. Знаю что у Atmega128 его на PG2 (ALE) цепляют, а у Atmega16 непойму.
XVR
Цитата(klin-2006 @ Jun 8 2009, 15:25) *
Хочу для обеспечения питания во время отключения электроэнергии использовать стандартный UPS ИБП-200, а как сигнал об отключении питания использовать стандартный сигнал UPS, поступающий с разъема. Непойму только к какой ножке МК Atmega16 этот сигнал подводить.
На любую свободную
klin-2006
Подскажите, если у меня есть 6 цифровых датчиков и 1 МК Atmega16, к каким ножкам их можно подключить?
klin-2006
Добрый день. Помогите пожалуйста разобраться с программой.
Необходимо написать программу для Atmega16, которая реализуют следующие задачи:
1) МК должен с периодичностью 0,5 с считывать данные с аналогового датчика температуры через встроенный в МК АЦП;
2) произвести проверку на достоверность принятого сигнала;
3) произвести сглаживание;
4) перевести цифровой сигнал в физическую величину (градусы);
5) отобразить текущую температуру на ЖКИ;
6) отправить текущую температуру оператору на ПК по интерфейсу RS-485;
7) сравнить текущую температуру с заданной:
а) если текущая температура выше заданной, то весь цикл повторяется;
б) если ниже, то формируется управляющий сигнал по ПИД-закону и генерируется с помощью таймера-счетчика, с поддержкой ШИМ на нагреватель.
Начал писать программу на языке Pascal в среде E-Lab, но чуствую не разбирусь. Уже наверное столько наворотил ошибок.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.