Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



TIC-107

Сообщений 1 страница 8 из 8

1

Здравствуйте!
Помогите написать инициализацию под индикатор TIC107  на базе драйвера PCF2119 (I2C-интерфейс).
http://gamma.spb.ru/news.php?id=335
ссылка на описание драйвера http://gamma.spb.ru/files//PCF2119.pdf

заранее благодарен!

0

2

Используя как пример 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

Как правильно прописать параметр контраста и выбрать знак с таблицы знакогенератора????

0

3

Вот хорошая статейка по I2C, там внизу есть пример индикатора, может поможет.
http://www.qsl.net/pa3ckr/bascom and avr/i2c/index.html

0

4

Ну никак не получается сделать инициализацию дисплея :(

Код:
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

в последней строчке, установка контраста, если увеличивть цифру, то должны появиться черные знакоместа?
Как проверить, прошла инициализация дисплея или нет?

0

5

наверное никто не знает :)

0

6

здесь смотрел?
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)

0

7

Спасибо за помощь!!!
Вся проблемма была с контрастностью.... пришлось подбирать значение опытным путём :)
код инициализации, может кому пригодиться.

Код:
'======================= инициализация дисплея =================================
   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

0

8

Сброс обязателен или можно без него обойтись?

0