Меню

 

Форум

Список форумов :: ЖК-индикаторы :: Проблема с МТ-10Т7-7
Gurvinok
28 октября 2006 21:11

Id сообщения: 2430
Проблема с МТ-10Т7-7
При включении питания на индикаторе горят все сегменты.
Индикатор подключил к LPT порту.
Как сбросить все сегменты?
Пробывал как написано выше, ничего.
Только пропадает первый разряд, а второй становится нулём.
Если можно объясните пожалуйста поробно как начать работать с индикатором.
Зарание спасибо.
Петухов
29 октября 2006 02:48

Id сообщения: 2431

Ну, если подробно, то вот основная идея.
Нужны следующие процедурки:
Write4bit(int);//Выдаёт 4 бита данных в индикатор, сопровождая их правильным стробом.
WriteAddr(int);//Выдаёт адрес в индикатор, устанавливая при выходе A0=1.
WriteBuf(byte *);//Выдаёт в индикатор содержимое буфера размером 10 байт (заполняет весь индикатор информацией из буфера).
После вызова последней весь индикатор будет корректно обновлён новой информацией из буфера.

WriteBuf(byte * ptr) {
int i;
WriteAddr(0xF);//Установим адрес триггера блокировки
Write4bit(0xF);//Сброс триггера блокировки
WriteAddr(0x0);//Установка адреса начала индикатора
for(i=0; i<10; i++) {//Цикл записи по всему индикатору
Write4bit(Buf[i]&0xF);//Выдача младших 4-х бит знакоместа в индикатор
Write4bit(Buf[i]>>4);//Выдача старших 4-х бит знакоместа в индикатор
}
}

WriteAddr(int a) {
Out &H378, a&0xF;//Выдача адреса на шину данных индикатора
Out &H37A, 08;//Выдача A0=0 (число надо изменить для Вашей схемы подключения!)
Out &H37A, 09;//Выдача фронта строба (число надо изменить для Вашей схемы подключения!)
Out &H37A, 08;//Выдача спада строба (число надо изменить для Вашей схемы подключения!)
Out &H37A, 12;//Выдача A0=1 (число надо изменить для Вашей схемы подключения!)
}

Write4bit(int b) {
Out &H378, b&0xF;//Выдача 4-х бит на шину данных индикатора
Out &H37A, 13;//Выдача фронта строба (число надо изменить для Вашей схемы подключения!)
Out &H37A, 12;//Выдача спада строба (число надо изменить для Вашей схемы подключения!)
//Здесь остаётся A0=1
}
Gurvinok
29 октября 2006 20:11

Id сообщения: 2433

Кажется становится ясно. Но вот ещё вопрос. Вы писали

"1. Запишем адрес 0xF (для снятия блокировки): DB3-DB0=1111b, A0=0, WR2=0, Delay(100нс), WR2=1, Delay(200нс). "

Здесь стоят задершки Delay по 100нс и 200нс. В подпрограмме их нужно тоже ставить? Если да, то насколько критичны временные интервалы?


Петухов
29 октября 2006 23:21

Id сообщения: 2434

Да, задержки разумеется нужны.
Интервалы критичны как минимально допустимые. Меньше нельзя, больше - сколько угодно.
С другой стороны, Вы сказали, что индикатор подключен к LPT порту. А выдать в LPT порт сигналы с задержками менее 200нс - нельзя в принципе (по разным причинам). Т.е. чтобы Вы не писали в программе, времена будут выдержаны всегда. Поэтому я и не стал их специально указывать. Но это справедливо только для LPT порта, а в процитированном Вами сообщении речь шла просто об работе с индикатором и там задержки необходимы.
Гость
30 октября 2006 22:37

Id сообщения: 2438

Мне это важно, так как я его буду подключать к Atmega8515, а там кварц на 10 МГц. К LPT порту я подключил чтобы попробывать как он работает.
Огромное спасибо за помощь.


Код подтверждения:
Для зарегистрированых:
Логин
Пароль
Забыл пароль Регистрация Поиск


Телефоны офиса компании МЭЛТ:
тел: (495) 662-4414
e-mail: sales@melt.com.ru
ICQ: 221-319-648
Skype имя: melt-mos

Фактический адрес: 111024, Москва, Андроновское шоссе, д.26

Adress: 111024, Moscow, Andronovskoe highway, 26.

Адрес для корреспонденции: 109145, г. Москва, а/я 37, ООО "МЭЛТ".

Address for mail:  109145, Moscow, post box 37, MELT Ltd..

Продукция | Печатные платы | Сборочно-монтажные услуги | Документация | Цены | Новости | Контакты | Купить | Форум
создание - prorock web-soft