Страница 42 из 123
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 19:02:26
Alkul
Volgol_555 писал(а):CodeVision предлагает только порты D и B, но там мне нужны выходы под USART и внешний кварц. Оно то понятно что нет в настройках CodeWizard подключение к порту С, потому что С.6 - это RESET.
Я ж Вам уже писал в другой теме - пробуйте разные варианты.
Почему бы, например, не подключить LCD на старшие разряды порта D, которые свободны? А для цепей управления почему бы не задействовать разряды PB0, PB1, PB2 порта B?
Вам всего-то нужно 4 линии данных и 3 линии управления.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 19:37:06
Volgol_555
Alkul писал(а):Volgol_555 писал(а):CodeVision предлагает только порты D и B, но там мне нужны выходы под USART и внешний кварц. Оно то понятно что нет в настройках CodeWizard подключение к порту С, потому что С.6 - это RESET.
Я ж Вам уже писал в другой теме - пробуйте разные варианты.
Почему бы, например, не подключить LCD на старшие разряды порта D, которые свободны? А для цепей управления почему бы не задействовать разряды PB0, PB1, PB2 порта B?
Вам всего-то нужно 4 линии данных и 3 линии управления.
Затем, что я пользуюсь готовыми библиотеками. И программа уже заточена под них. Писать их с нуля не очень весело. А может тогда есть конкретное решение, разбить все по разным портам с использованием тех же библиотек подскажите, а?
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 19:46:01
ВитГо
Затем, что я пользуюсь готовыми библиотеками. И программа уже заточена под них. Писать их с нуля не очень весело. А может тогда есть конкретное решение, разбить все по разным портам с использованием тех же библиотек подскажите, а?[/quote]
а вы попробуйте с нуля.. у этого дисплея примитивный интерфейс - написать не сложно
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 19:52:13
Alkul
Volgol_555 писал(а):А может тогда есть конкретное решение, разбить все по разным портам с использованием тех же библиотек подскажите, а?
Ну, с Вашими библиотеками я не знаком. Я писал свои библиотеки на ассемблере.
У меня запись данных (4 бита) делалась в выбранный порт, неиспользуемая "половинка" порта в зависимости от конкретной схемотехники изделия либо забивалась нулями или единицами, либо перед записью данных порт вначале читался во временный регистр, неиспользуемые разряды сохранялись без изменения, в нужную "половину" регистра я писал данные для отправки в LCD и после этого записывал этот модифицированный временный регистр обратно в порт.
Линии же управления у меня всегда были совершенно независимыми друг от друга и могли принадлежать любым разрядам любого порта.
Посмотрите Ваши библиотеки, как в них реализован вывод данных и коммутация управляющих сигналов.
Я не отношусь к своим библиотекам, как к "священной корове", и не проношу единожды написанные библиотеки потом через годы, трепетно сохраняя их неизменными и подстраивая под них все схемотехнические решения.
У меня есть библиотека работы с LCD в "базовом" виде, который и хранится в архиве. Библиотека в базовом виде присоединяется к новому проекту и уже там вносятся необходимые изменения под каждое конкретное схемотехническое решение.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 20:19:17
Volgol_555
Взглянул я на библиотеки и вообще не понял как там и что реализовано - куча всего, а где конкретно порты читает не знаю((
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
вот так производится настройка на порт В в 4 бита, как мне сделать эту настройку на произвольные порты? я командами ассемблера вообще не владею
вот выкладываю 2 файла библиотеки. Может вы мне подскажете что мне с ними конкретно делать,
а на счет написать все самому - я не понимаю зачем, если другие уже написали, мне лишь нужно правильно обратиться к этому...
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Чт янв 19, 2012 22:34:45
clawham
бери мою либку - там можно на любую ногу любого порта любой вывод LCD вешать
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт янв 20, 2012 11:24:22
Volgol_555
О, спасибо. Надеюсь поможет. Осталось разобраться как правильно все сделать - комменты я видел, но я что-то в последнее время туплю(устал наверное(( ).
Как правильно прописать пины?
Вот так: PORTB.1=E; .....PORTC.3=DB1.....????
Сразу же непонятно как инклудить пинаутс, точнее что это за отдельная библиотека? Я подключал же библиотеки stdio.h и lcd.h
Объясни пожалуйста на примере - напиши что и как править - как человеку едва знающему Си).
Прошу прощения за неудобства, вызванные возможно нелепыми вопросами.
И сразу вопрос: выходит команда lcd_puts(char data) не прокатит? вместо нее
lcd_write_data(char data); ????
Я видел в твоей библиотеке коды для русских символов - как мне правильно написать, чтобы вывести на экран?
Объясни пожалуйста на примере - напиши что и как править - как человеку едва знающему Си).
Прошу прощения за неудобства, вызванные возможно нелепыми вопросами.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт янв 20, 2012 12:09:35
Volgol_555
Включил мозги - нашел вот такие строки в библиотеке LCD:
#asm
.equ __lcd_direction=__lcd_port-1
.equ __lcd_pin=__lcd_port-2
.equ __lcd_rs=0
.equ __lcd_rd=1
.equ __lcd_enable=2
.equ __lcd_busy_flag=7
#endasm
здесь ясно, что проходит запись пинов на основе строки основной программы:
#asm
.equ __lcd_port=0x18 ;PORTB
#endasm
Очевидно можно написать и на каждый пин в отдельности,но не совсем ясно что, есть что - код на ассемблере, я его не знаю. не понимаю Где конкретно происходит разбор команд по портам? (возможно не точно выразился, но надеюсь понятно). Помогите разобраться с этими строчками в отдельности!
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт янв 20, 2012 15:59:30
clawham
значиться так по тому что дал я
в кодевижне пишеш
Код: Выделить всё
#include <mega103.h>
#include <math.h>
#include <delay.h>
#include <1wire.h>
#include <stdio.h>
#include <stdlib.h>
#include <pinout.c>
#include <brezenhem.c>
#include <interupt.c>
#include <ports.c>
#include <hd44780.c>
#include <uart.c>
это мой набор инклюдов....конечно лишнее можно повыкидывать
а теперь про пользование
чтоб вывести на экран строку завершенную нулём из флеши(константа) нужно написать
чтоб написать на экране чтото из буффера в RAMe
Код: Выделить всё
char buf[20];
sprintf(buf, "helloworld from ram");
lcd_puts(buf);
чтоб вывести строку завершенную нулём из еепрома
Код: Выделить всё
eeprom unsigned char et1="Helloworld from eeprom";
lcd_putse(et1);
также можно "включить" перекодировку в русские буквы(чтоб понимало кириллицу) вот только у меня таких дисплеев нет...ровно один такой был потому если надо - ghbkj;bk вот другой файл библиотеки
файл пинаутс конечно один и тот же и в нём надо порасставлять всё как у тебя по разводке...он сам беспокоится о направлениях и сам переводит на время простоя выводы в Z состояние

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт янв 20, 2012 19:21:19
Volgol_555
Хорошо. Раз твоя библиотека, то пожалуйста ответь: пинауты прописать в основной проге?, если да, то как именно - приведи пример, пожалуйста.
И ещё вопрос, чем твоя библиотека отличается от библиотеки CodeVision? Или ответь на такой вопрос - что можно с твоей библиотекой и чего нельзя...я хочу знать с какими проблемами могу вдруг потом столкнуться!
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Пт янв 20, 2012 20:52:41
clawham
вы открывали файл pinouts.c ?
Код: Выделить всё
/// LCD ports configuration ///
/// Output pins definitions ///
#define RS PORTC.2
#define RW PORTC.1
#define E PORTC.0
#define D4 4
#define D5 3
#define D6 2
#define D7 1
#define DB4 PORTB.D4
#define DB5 PORTB.D5
#define DB6 PORTB.D6
#define DB7 PORTB.D7
/// Input pins definitions///
/// (bits locations must be the same as outputs) ///
#define DB4I PINB.D4
#define DB5I PINB.D5
#define DB6I PINB.D6
#define DB7I PINB.D7
/// Data directions ///
#define RS_DR DDRC.2
#define RW_DR DDRC.1
#define E_DR DDRC.0
#define DB4_DR DDRB.D4
#define DB5_DR DDRB.D5
#define DB6_DR DDRB.D6
#define DB7_DR DDRB.D7
///////////////////////
помоему тут вообще всё написано более чем подробно...просто отредактируйте этот файл в соответствии с Вашей разводкой/подключением и инклудните до 44780.c ....
что можно а что нельзя? можно всё что может экран....плюс пара вспомогательных функций...
чем отличается? меньше места, любые пины, открытый исходный код, правильная работы через бизифлаг а не тупо выдержками....что я ещё могу сказать ? поддержка кириллицы напрямую
берите пользуйтесь и когда возникнут вопросы - обращайтесь...я с ними достаточно намучался
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 10:03:28
Volgol_555
Всем привет. Я не совсем по теме, но это касается ЖКИ. У меня HD1602D - в даташите написано что питание подсветки 120 mA((. Соответственно, питать напрямую с ноги МК я не могу. Реле отпадает из-за ограниченности в свободном пространстве для элементов. Остается вроде как транзистор, но я увы не знаю как с ними до конца работать. Пробовал читать статьи и все равно(( Мне нужно, чтобы кто-то доходчиво объяснил на примере...
Можно ли с биполярного транзистора npn H8550 (просто у меня их куча) реализовать ток в 120 mA на подсветку дисплея, при этом, я так понимаю, к базе должна быть подключена нога ATmega8. Если да, то подскажите как именно подключить все и сделать именно 120 mA на выходе. Если с этим транзистором нельзя, то подскажите как подключить другой( Просто не понимаю как токи идут, и как знать какой именно ток будет на выходе...т.е. эмитере?
Заранее спс)
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 11:06:32
Alkul
Volgol_555 писал(а):Можно ли с биполярного транзистора npn H8550 (просто у меня их куча) реализовать ток в 120 mA на подсветку дисплея
Судя по даташиту, ток коллектора 1,5А. Значит, можно.
Но это если Вам нужно коммутировать подсветку. Если же подсветка должна постоянно светиться, то можно поступить проще - подать на выв.15 LCD через резистор 100 Ом 1 Вт напряжение +5В.
Volgol_555 писал(а):подскажите как именно подключить все и сделать именно 120 mA на выходе.
Если хотите коммутировать, тогда так:
базу подключить к выводу контроллера через резистор 390 Ом 0,125 Вт, коллектор на +5В через резистор 100 Ом 1 Вт, эмиттер на выв.15 LCD.
Естественно, что и в первом, и во втором случае выв.16 LCD нужно подключить к земле.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 11:20:45
Volgol_555
Большое спасибо. Мне нужно будет включать подсветку, когда освещение в комнате упадет ниже определенного уровня.
Остался вопрос: как вы подобрали номиналы резисторов? Было бы здорово научиться рассчитывать их.
И...ведь транзистор типа npn так устроен, что ток течет с базы в МК и с эмитера "внутрь" транзистора? или я не прав? Соответственно ток с эмитера будет не выходить на анод подсветки, а наоборот как бы стекать оттуда? Тогда как же подключать к подсветке: вот пример
Ведь ток должен течь с анода на катод, а здесь получается как-то наоборот? У меня какой-то офигенный провал в теории транзисторов. Помогите разобраться(
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 17:20:13
Arlleex
На указанной картинке токи текут абсолютно в противоположных нарисованному направлениях.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 21:57:06
Volgol_555
Arlleex писал(а):На указанной картинке токи текут абсолютно в противоположных нарисованному направлениях.
Странно. Зачем тогда публиковать неверную статью на сайте?
http://www.radiomaster.ru/articles/view/88/
Если эта инфо действительная не верна, то тогда остался вопросы, как вы произвели расчеты номиналов?
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 22:56:30
BVS
через резистор 100 Ом 120 мА ни как не потекут от 5 вольт, да и не надо, 20-50 хватит особенно ночью,
ваш транзистор PNP и стрелка на на эмиттере указывает направление тока через транзистор.
как вы произвели расчеты номиналов?
по закону ОМА
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Вт янв 31, 2012 22:58:55
Arlleex
Ну, теперь вы будете знать, что там на сайте картинки не верны.
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Ср фев 01, 2012 14:59:20
ВитГо
Arlleex писал(а):Ну, теперь вы будете знать, что там на сайте картинки не верны.
картинки верны, просто на них показано движение отрицательных частиц (т.е. электронов)...
Re: Работа с ЖКИ на контроллере HD44780 и его аналогах
Добавлено: Ср фев 01, 2012 17:16:17
Alkul
BVS писал(а):ваш транзистор PNP
Вы даташит-то открывали? Транзистор NPN.
http://www.alldatasheet.com/datasheet-p ... H8550.html