roboforum.ru

Технический форум по робототехнике.
Текущее время: 30 ноя 2024, 07:09

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: ЖК дисплей + AVR
СообщениеДобавлено: 20 авг 2005, 02:53 
Не в сети
Аватара пользователя

Зарегистрирован: 10 янв 2005, 12:18
Сообщения: 189
Откуда: Санкт-Петербург
Народ, подскажите, кто делал нечто подобное?
Собрался подключить AT90S2313  к LCD дисплейчику,
и чтоб на дисплей выводилось направление, куда робот движется
или просто текст при прерывании int1. Нужна схема подключения ЖК
к контроллеру и если есть исходник на C++
Проги пишу на AVRedit 3.5, слегка пробовал CodeVision.
ЖК дисплей еще не купил, кто посоветует какую модель жк купить?
Желательно маленьких размеров на несколько строк.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2005, 08:23 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
http://www.atmel.ru/Articles/Atmel17.htm


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2005, 13:14 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
В CV AVR все элементарно: при создании проекта указать что хочешь использовать LCD и на каком порту. Распайку он сам подскажет. А если глянуть пример то стаонвится вообще все понятно.

По поводу LCD: использовал DV-16236NRT/T - 16х2 - не понравился - символы мелкие, контрастность плохая, углы обзора маленькие. Русские символы есть, но в какойто хитрой кодировке. Еще он у меня слегка глючил - в чем проблема так и не понял.Подсветки нет, может из-за этого так плохо видно.

Потом купил МЭЛТ MT-10SI 10х1 - очень понравился - отличная контрастность даже без подсветки, хорошие углы, а еще путем небольшого изменения библиотеки lcd.h удалось поставить на нем кодовую страницу Windows-1251.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 20 авг 2005, 13:17 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Да, кстати, в 2313 LCD займет весь порт B.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 фев 2006, 23:15 
Не в сети

Зарегистрирован: 11 фев 2006, 23:11
Сообщения: 3
dx40 писал(а):
Потом купил МЭЛТ MT-10SI 10х1 - очень понравился - отличная контрастность даже без подсветки, хорошие углы, а еще путем небольшого изменения библиотеки lcd.h удалось поставить на нем кодовую страницу Windows-1251.

купил такой индикатор, подключил к атмеге8515, но не получается запустить. либо код кривой, либо жк дохлый. если не затруднит, кинь пример под кодевижен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 13:35 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Переменный резистор управления контрастом запаян? Выводы распаяны правильно?

Код простейший, вручную написана только 1 строчка.

Код:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.5 Standard
Automatic Program Generator
й Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project :
Version :
Date    : 08.05.2005
Author  : Artem                          
Company : Art Inc. UnLTD.                
Comments:


Chip type           : AT90S2313
Clock frequency     : 8,000000 MHz
Memory model        : Tiny
External SRAM size  : 0
Data Stack size     : 32
*****************************************************/

#include <90s2313.h>

// Alphanumeric LCD Module functions
#asm
  .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
#include <delay.h>
// Declare your global variables here


void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port D initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1 output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
OCR1H=0x00;
OCR1L=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
GIMSK=0x00;
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;

// LCD module initialization
lcd_init(16);


lcd_putsf("System started");

while (1)
     {

     // Place your code here

     };
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 12 фев 2006, 13:38 
Не в сети

Зарегистрирован: 11 фев 2006, 23:11
Сообщения: 3
сенкс, сегодня попробую. Вместо переменника кинул 1ком на +5 вольт, так пойдёт? или всёже лучше переменник?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 фев 2006, 07:26 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
Только не забывайте, ребята, что есть ЖКИ, работающие и при отрицательных температурах. У таких на вывод, управляющий контрастностью нужно подавать ОТРИЦАТЕЛЬНОЕ напряжение! Я сам долго парился с одним случайным дисплейчиком.

P.S. Когда не получается - читай Datasheets!!!  :D

_________________
В электронике чудес не бывает! Бывают плохие контакты!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 фев 2006, 12:55 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2005, 11:49
Сообщения: 201
Откуда: Мск
Вместо переменника 1ком не пойдет!!!! Скоре всего просто ничего не будеет видно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 13 фев 2006, 16:17 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2005, 16:34
Сообщения: 147
Откуда: Москва, область...
gambit6
Что за дисплей? Не наш случаем?  :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 11:01 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
У меня тоже дисплеи наши. И че-то в 4-битном режиме оба не работают...  :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 12:49 
Не в сети
Аватара пользователя

Зарегистрирован: 04 окт 2005, 16:34
Сообщения: 147
Откуда: Москва, область...
Цитата:
4-х битный режим в буквенно-цифровых ЖК индикаторах.

1. В 4-х битном режиме включения ЖК индикаторов недопустимо изменение состояний сигналов R/W и A0 в течении всего цикла передачи байта, в том числе и при неактивном сигнале E между двумя передачами полубайтов. По любому изменению сигналов R/W и A0 внутренний счётчик полубайтов в ЖК индикаторе сбрасывается в состояние приёма старшего полубайта. Это является отличием наших ЖК индикаторов от импортных аналогов и направлено на повышение надёжности работы ЖК индикатора.

2. Также, до сих пор у нас в документации не исправлена процедура инициализации 4-х битного режима включения ЖК индикатора. Должно быть так:
в первых трёх командах подаётся код 0x3 на шину данных и один (вместо нормально двух) импульс E;
обязательно делается задержка между командами не менее 40мкс без опроса состояния ЖК индикатора;
четвёртая команда подаётся также одним импульсом E без опроса состояния ЖК индикатора перед командой, но уже с кодом 0x2 на шине данных;
пятую и все последующие команды можно подавать как обычно, с ожиданием готовности индикатора (если необходимо) или формированием задержки между командами не менее 40мкс.

3. Все циклы обращения к индикатору должны быть парными (обязательно передавать и старший и младший полубайты). Единственное исключение - первые четыре команды в процедуре инициализации.
Или перед передачей старшего полубайта использовать возможность сброса внутреннего счётчика полубайтов в ЖК индикаторе из пункта 1. В последнем случае теряется совместимость с импортными ЖК индикаторами.

4. Младшие 4 бита шины данных можно оставлять неподключенными - в ЖК индикаторе вся шина данных подтянута к Ucc через высокоомные резисторы.

5. И не надо забывать выбирать правильный тип интерфейса (4 или 8 бит) при смене страницы кодировки знакогенератора.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 13:04 
Не в сети
Аватара пользователя

Зарегистрирован: 01 мар 2005, 14:54
Сообщения: 70
Откуда: г. Томск
А вообще во:
http://www.atmel.ru/Spec/LCD.htm

Я когда знакосимвольные ЖКИ осваивал - мне очень помогло. Там есть готовые модули (достаточно грамотно написаны), подключая которые можно здорово упростить себе задачу. Вот только в 4-х битном режиме я не пробовал их, но в 8-ми битном программа работала отлично.

_________________
В электронике чудес не бывает! Бывают плохие контакты!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 13:28 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
берете примеры в CodeVisionAVR - компилируете и проверяете в VMLAB - если работате то и в железе будет работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 14 фев 2006, 15:08 
Не в сети
Мастер Самоделкин
Аватара пользователя

Зарегистрирован: 11 окт 2004, 19:20
Сообщения: 3678
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич
В том-то все и дело: в симуляторе все ОК, а в железе работать отказывается. Уже не знаю сколько времени на это угробил и все никак...  :cry:  И коды все эти попробовал и контакты все проверил, а вот хоть убей - в 8-битном работает, а в 4-битном никак. Конечно может глюк где-то совсем в другом месте, но тогда я уже не знаю где его еще искать...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO