реклама на сайте
подробности

 
 
> ЖКИ SD1602X
wingbladeZ
сообщение Dec 8 2008, 06:01
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 7-12-08
Пользователь №: 42 274



имеется эта радость. SD1602X фирмы SUNLIKE. из интерфейсов - только послеовательный, I2C.

Как ее правильно адресовать и инициализировать? (адрес на шине, команды)
делал по докам на контроллер NT7651, пока - 0 реакции. Тупо горит подсветка, экран пустой.

проверьте распиновку заодно(мб в ней косяк)
выводы подключал так:
1-земля
2-питальник
3-вроде контрастность, заземлил - сомневаюсь, мб это косяк
4-SDA
5-SCL
6-Enable - подал питание
7-ресет, ничего не подключал

все что может сказать про него производитель - во вложении (страничка бумаги, качеством близкой к туалетной. выводы и электрические характеристики)
Прикрепленные файлы
Прикрепленный файл  SD1602X.pdf ( 58.16 килобайт ) Кол-во скачиваний: 49
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Texnik
сообщение Dec 8 2008, 06:21
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 14-01-05
Пользователь №: 1 945



В своё время я тестировал их, вот исходничек на бейсике (BASCOM-AVR)

$regfile = "m8def.dat"
$crystal = 1000000

CONFIG SDA = PORTB.6
CONFIG SCL = PORTB.7
CONFIG I2CDELAY = 100

dim tmp as byte
dim sa as byte
dim n as byte
dim t as string * 1
dim ts as string * 16

'rem const sa = &b01110000 ' slave address
'rem const sa = &b01110100 ' slave address

declare sub WriteCData(dat as byte)
declare sub WriteData()

Init:
sa = &b01110100

DDRD = &b00001000
set PORTD.3
waitms 1
reset PORTD.3

tmp = &b00110110 '8,
call WriteCData(tmp)
tmp = &b00001111 'D=1 C=1 B=1
call WriteCData(tmp)

tmp = &b00110101 'M=1 SL=0 H=1
call WriteCData(tmp)
tmp = &b10010111 'VALCD
call WriteCData(tmp)
tmp = &b11000000 'VBLCD
call WriteCData(tmp)
tmp = &b00110100 'M=1 SL=0 H=0
call WriteCData(tmp)

Main:
ts = "{211}{196}{177}{182}{176}{178}{216}{213}{204}{194}{173}{206}{211}{173}{199}
{194}"
call WriteData()
tmp = &b10101000 ' locate (2,1)
call WriteCData(tmp)
' ts = "{1}{1}{1}{1}{1}{1}"
' call WriteData()
' ts = "{089}{240}{089}{091}{091}{089}"
' call WriteData()
ts = "{050}{201}{178}{195}{034}{145}{203}{089}{240}{089}{091}{091}{089}{093}{225}"
call WriteData()
wait 1


mEnd:
sleep
goto mEnd


sub WriteCData(dat as byte)
I2CStart
' slave address
I2CWByte sa
I2CWByte &b00000000
I2CWByte dat
' stop
I2CStop
waitms 40
end sub

sub WriteData()
for n = 1 to len(ts)
t = mid(ts , n , 1)
tmp = asc(t)

I2CStart
' slave address
I2CWByte sa
I2CWByte &b01000000
I2CWByte tmp
' stop
I2CStop
next n
end sub


По схематехнике, вывод VLCD - это выход, точно уже не помню, давно это было, ИМХО оставить в воздухе.
А в процедуре инициализации еще надо настроить напряжение встроенного генератора отрицательного напряжения (в исходнике есть).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 07:05
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016