| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Проблема подключения ЖКИ 16х4 к ATtmega8515
27.10.2011, 12:31
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Сообщение от orionSSV
|
|
откинет меня нехило по времени назад
|
Машина времени еще не придумана. Назад откинуть невозможно. Немножко задержитесь, но приобретение знаний будет стоить того. Иначе будете обречены останавливаться каждый раз, встретив код, отличающийся от того, к которому вы "приучены".
|
|
|
|
27.10.2011, 13:18
|
|
|
Временная регистрация
Регистрация: 04.07.2010
Адрес: город Омск
Сообщений: 72
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
ut1wpr, )))Отлично сказано.
|
|
|
|
27.10.2011, 13:21
|
|
|
Временная регистрация
Регистрация: 04.07.2010
Адрес: город Омск
Сообщений: 72
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Easyrider83, Да кстати благодарю именно за эти команды, хотя как я понял из описания ЖКИ 16х4 третья стока является продолжением первой, а четвёртая -второй
|
|
|
|
27.10.2011, 13:33
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,613
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Сообщение от orionSSV
|
|
Easyrider83, Да кстати благодарю именно за эти команды, хотя как я понял из описания ЖКИ 16х4 третья стока является продолжением первой, а четвёртая -второй
|
Так оно и есть. См. последний пост Стаса ST_1.
|
|
|
|
27.10.2011, 20:52
|
|
|
Временная регистрация
Регистрация: 04.07.2010
Адрес: город Омск
Сообщений: 72
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Парни, ну ни как не могу запустить этот ЖКИ. Разобрался, даже код написал по даташиту (в протеусе работает на ура), но на ЖКИ как висели подсвеченные знакоместа (причём через одну строку, т.е. 1 и 3) так и висят ни каких признаков жизни (через LPT и стороннюю прогу ЖКИ работает опять же на ура).
Принципы я усвоил, но вот сомнения по поводу временных интервалов мучают... и ктати проверка флага BF тоже не заработала хотя я сам допёр как его проверять и позже нашёл в инете подтверждение моим соображениям... Вот собственно код, он простой, но на железе не работает(((
#include ‹delay.h›
#include ‹mega8515.h›
#define RS PORTE.0 // 0-команда; 1-данные
#define RW PORTE.1 // 0-запись в ЖКИ; 1-чтение из ЖКИ
#define E PORTE.2
#define D PORTC
// Проверка занятости ЖКИ
void BF(void)
{
RS=0;RW=1;
delay_us(45);
E=1;
delay_us(1);
E=0;
PORTC=0xFF;//порт С на "вход"
DDRC=0x00;//с подтягивающими резюками
while(PINC.7 == 1)
{};
delay_us(1);
DDRC=0xFF;//порт С на "выход"
}
void LCD_init(void)
{
delay_ms(35);
RS=0;RW=0;D=0x3C;//8 bit mode ON, 2 lines, 5*10 font,
E=1;
delay_us(1); //Время предустановки данных попало сюда (tDSW)
E=0;
delay_us(45); //Пауза между командами
E=1;
delay_us(1); //Минимально допустимая длительность сигнала E=1
E=0;
delay_us(45); //Пауза между командами
E=1;
delay_ms(1);
E=0;
delay_ms(1);
RS=0;RW=0;D=0b00111100;//8 bit mode ON, 2 lines, 5*10 font,
E=1;
delay_us(1);
E=0;
delay_ms(45);
RS=0;RW=0;D=0b00001111;//display ON, cursor ON, blink ON, для большей наглядности
E=1;
delay_us(1);
E=0;
delay_ms(45);
RS=0;RW=0;D=0b00000001;//Clear display.
E=1;
delay_us(1);
E=0;
delay_ms(2);
RS=0;RW=0;D=0b00000110;//increase cursor position, scroll display OFF,
E=1;
delay_us(1);
E=0;
};
void WriteData(char s)
{
//BF();
RS=1;RW=0;
E=1;
delay_us(45);
D=s;
delay_us(1);
E=0;
delay_us(45);
}
void CurLeft(void)
{
RS=0;RW=0;D=0x10;
E=1;
delay_us(1);
E=0;
delay_us(45);
}
void CurRight(void)
{
RS=0;RW=0;
E=1;
delay_us(1);
D=0x14;
E=0;
delay_us(45);
}
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0x00;
PORTE=0x00;
DDRE=0x07;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
MCUCR=0x00;
EMCUCR=0x00;
TIMSK=0x00;
UCSRB=0x00;
ACSR=0x80;
SPCR=0x00;
LCD_init();
delay_ms(100);
WriteData(0x53);//S
WriteData(0x45);//E
WriteData(0x52);//R
WriteData(0x47);//G
WriteData(0x45);//E
WriteData(0x59);//Y
while (1)
{
//тупо проверка работы МК как такового)))
delay_ms(200);
PORTA.0=1;
PORTA.1=!PORTA.0;
delay_ms(200);
PORTA.0=0;
PORTA.1=!PORTA.0;
delay_ms(200);
}
}
Последний раз редактировалось orionSSV; 27.10.2011 в 21:03.
|
|
|
|
28.10.2011, 00:10
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
orionSSV, вчера менял 16х2 с похожими симптомами. Аппарат зажигал первый ряд знакомест и больше ничего не делал. Замена дисплея помогла.
|
|
|
|
28.10.2011, 00:50
|
|
|
Прописка
Регистрация: 25.11.2006
Адрес: Харьков
Сообщений: 295
Сказал спасибо: 25
Сказали Спасибо 71 раз(а) в 60 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Сообщение от Easyrider83
|
|
...Замена дисплея помогла...
|
Но ТС уже не раз повторил, что при подключении через LPT его индикатор работает.
Может все-таки в монтаже что-то не так (не к тем ножкам, обрыв дорожки, "сопля")?
Перепроверьте тщательно еще раз.
|
|
|
|
28.10.2011, 04:35
|
|
|
Временная регистрация
Регистрация: 04.07.2010
Адрес: город Омск
Сообщений: 72
Сказал спасибо: 6
Сказали Спасибо 7 раз(а) в 7 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
tsb, к сожалению это исключено... монтаж произведён на макетной плате, проводами со штырьками, надёжность электрического контакта проверена тестером....
|
|
|
|
28.10.2011, 10:22
|
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,821
Сказал спасибо: 919
Сказали Спасибо 4,289 раз(а) в 2,570 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Выложите вашу схему. Чует одно место, что забыли про какой-нибудь ANSEL или компаратор отключить.
|
|
|
|
28.10.2011, 13:55
|
|
|
Супер-модератор
Регистрация: 09.06.2011
Сообщений: 2,762
Сказал спасибо: 76
Сказали Спасибо 1,840 раз(а) в 668 сообщении(ях)
|
Re: Проблема подключения ЖКИ 16х4 к ATtmega8515
Сообщение от orionSSV
|
|
Парни, ну ни как не могу запустить этот ЖКИ. Разобрался, даже код написал по даташиту (в протеусе работает на ура), но на ЖКИ как висели подсвеченные знакоместа (причём через одну строку, т.е. 1 и 3) так и висят ни каких признаков жизни (через LPT и стороннюю прогу ЖКИ работает опять же на ура).
|
Очень странная инициализация, хотя и по Вашему даташиту... Возможно, у них там ошибка, для 8-разрядного интерфейса инифиализирующая команда должна быть 38h, а не 3Ch, как у Вас. Проверьте.
Во-вторых, паузы при инициализации тоже не те. У Вас должна быть примерно такая последовательность (универсальная для всех индикаторов на HD44780):
1) Пауза после включния питания 50 мс (как минимум).
2) Команда 30h - инициализация, 8-разрядный режим.
3) Пауза 5 мс
4) Команда 30h - повторно посылаем команду инициализации.
5) Пауза 100 мкс
6) Команда 30h - еще раз посылаем команду инициализации.
7) Пауза 40 мкс.
8 ) Команда 38h - полная команда выбора 8-ми разрядной шины, 2 строки, 0-я страница знакогенератора.
9) Пауза 40 мкс
10) Команда 0Ch - дисплей вкл, курсор не виден.
11) Пауза 40 мкс
12) Команда 06h - установка направления вывода на дисплей.
Сообщение от orionSSV
|
|
Принципы я усвоил, но вот сомнения по поводу временных интервалов мучают... и ктати проверка флага BF тоже не заработала хотя я сам допёр как его проверять и позже нашёл в инете подтверждение моим соображениям...
|
Если у Вас проверяется флаг BF, то временные интервалы выдерживать не нужно. Как только получаете от контроллера подтверждение готовности, сразу можно посылать следующую команду. Исключение - инициализация дисплея. Там следует выдерживать рекомендованные временные интервалы между 3-мя первыми командами 30h, а так же после включения питания "вручную", без проверки флага BF.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:30.
|
|