Здравствуйте!
Помогите написать инициализацию под индикатор TIC107 на базе драйвера PCF2119 (I2C-интерфейс).
http://gamma.spb.ru/news.php?id=335
ссылка на описание драйвера http://gamma.spb.ru/files//PCF2119.pdf
заранее благодарен!
Программирование ATMEL в BASCOM. |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » TIC-107
Здравствуйте!
Помогите написать инициализацию под индикатор TIC107 на базе драйвера PCF2119 (I2C-интерфейс).
http://gamma.spb.ru/news.php?id=335
ссылка на описание драйвера http://gamma.spb.ru/files//PCF2119.pdf
заранее благодарен!
Используя как пример http://kvorb.ru/2010/02/13/primer-raboty-s-tic107/ исходник на Си, написал инициализацию для дисплея
'===============================================================================
$regfile = "m8def.dat"
$crystal = 8000000
$framesize = 64
'--------------------------------- установки -----------------------------------
Declare Sub 107_init()
Declare Sub 107_clear()
107_reset Alias Portd.2 'сигнал сброса дисплея
Config 107_reset = Input 'изначально в Z-состоянии
Config Scl = Portd.1 'сигнал SCL дисплея
Config Sda = Portd.0 'сигнал SDA дисплея
I2cinit 'инициализируем шину
Call 107_init() 'инициализируем дисплей
'------------------------------ пример программы -------------------------------
Example:
I2cstart 'установка состояния
I2cwbyte &H74 'адрес дисплея
I2cwbyte &H40 'Co=0, RS=1
' Как здесь вывести какую то букву??????????????
Goto Example
End
'-------------------------------------------------------------------------------
'===============================================================================
'================================= Подпрограммы ================================
'===============================================================================
'============================ Инициализация дисплея ============================
Sub 107_init()
Config 107_reset = Output
Waitms 100
Reset 107_reset 'подаем сигнал сброса
Waitms 100 'ждем
Config 107_reset = Input 'снимаем сигнал сброса
'ждем
I2cstart 'установка состояния
I2cwbyte &H74 'адрес дисплея
I2cwbyte &H00 'Co=0, RS=0
I2cwbyte &H34 ' DL=1, M=1, SL=0, H=0
I2cwbyte &H0C 'D=1, C=0, B=0
I2cwbyte &H06 'I/D=1, S=0
I2cwbyte &H35 'DL=1, M=1, SL=0, H=1
I2cwbyte &H03 ' L=1
I2cwbyte &H04 'P=0, Q=0
I2cwbyte &H08 'IM=0, IB=0
I2cwbyte &H10 'TC1=0, TC2=0
I2cwbyte &H42 'S1=1, S0=0 (4x)
I2cwbyte &H80 'V=0 (Va) контраст ???????????????????Как здесь задать параметр контраста ( на Си написано так WriteI2C(0b10000000 | 23);
I2cstop
'Call 154_clear() 'очищаем дисплей
End SubКак правильно прописать параметр контраста и выбрать знак с таблицы знакогенератора????
Вот хорошая статейка по I2C, там внизу есть пример индикатора, может поможет.
http://www.qsl.net/pa3ckr/bascom and avr/i2c/index.html
Ну никак не получается сделать инициализацию дисплея 
107_init:
Config 107_reset = Output
Reset 107_reset
Waitms 100
'æäåì
Config 107_reset = Input 'ñíèìàåì ñèãíàë ñáðîñà
Waitms 10 'æäåì
I2cstart
I2cwbyte &H74 '// Àäðåñ èíäèêàòîðà
I2cwbyte &H00 '; // Co=0, RS=0
I2cwbyte &B00110100 '; // DL=1, M=1, SL=0, H=0
I2cwbyte &B00001100 '; // D=1, C=0, B=0
I2cwbyte &B00000110 '; // I/D=1, S=0
I2cwbyte &B00110101 '; // DL=1, M=1, SL=0, H=1
I2cwbyte &B00000011 '; // L=1
I2cwbyte &B00000100 '; // P=0, Q=0
I2cwbyte &B00001000 '; // IM=0, IB=0
I2cwbyte &B00010000 '; // TC1=0, TC2=0
I2cwbyte &B01000010 ''; // S1=1, S0=0 (4x)
I2cwbyte &HA3 '; // V=0 (Va) контраст?
I2cstopв последней строчке, установка контраста, если увеличивть цифру, то должны появиться черные знакоместа?
Как проверить, прошла инициализация дисплея или нет?
наверное никто не знает 
здесь смотрел?
http://radiokot.ru/forum/viewtopic.php?t=16530
http://kvorb.ru/2010/02/13/primer-raboty-s-tic107/
Отредактировано zhelezyaka (2012-02-18 22:46:41)
Спасибо за помощь!!!
Вся проблемма была с контрастностью.... пришлось подбирать значение опытным путём 
код инициализации, может кому пригодиться.
'======================= инициализация дисплея ================================= Set 107_reset Waitms 10 Reset 107_reset Waitms 5 I2cstart I2cwbyte &H74 ' адрес дисплея I2cwbyte &H00 ' Co=0, RS=0 I2cwbyte &H34 ' DL=1, M=1, SL=0, H=0 I2cwbyte &H0C ' D=1, C=0, B=0 I2cwbyte &H06 ' I/D=1, S=0 I2cwbyte &H35 ' DL=1, M=1, SL=0, H=1 I2cwbyte &H03 ' L=1 I2cwbyte &H04 ' P=0, Q=0 I2cwbyte &H08 ' IM=0, IB=0 I2cwbyte &H10 ' TC1=0, TC2=0 I2cwbyte &H42 ' S1=1, S0=0 (4x) I2cwbyte &H93 ' V=0 (Va) контраст 93 I2cstop
Сброс обязателен или можно без него обойтись?
Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » TIC-107