Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
HOLTEK 1621
PINCOD Дата: Пн, 07.12.2015, 19:56  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Приветствую жителей и гостей электронного сообщества.Досталась мне от друзей плата от электронного счетчика электроэнергии,на борту проц.PIC16F73 связан тремя проводами с контроллером ЖКИ HOLTEK1621. Вопрос такой,кто-нибудь сталкивался или у кого есть опыт работы с контроллером ЖКИ HOLTEK1621.В протэусе нет модели этой микросхемы,поэтому это немного усложняет ситуацию.Я думаю для проталкивания 9 битов необходимы эти операторы SHOut WR, DN, MsbFirst.Прошу помочь кодом на протоне,чтобы управлять ЖК индикатором ,организовать простой счетчик от 0 до 99999999
Вот здесь подробно описано,но на Си     http://radiokot.ru/forum....0777ab       
       

Device 16F73
'Declare  SHOW_SYSTEM_VARIABLES = On
Declare Reminders NO
Config   DEBUG_OFF, WRT_OFF, CPD_OFF, LVP_OFF, BODEN_OFF, PWRTE_ON, WDT_OFF, HS_OSC
Declare Xtal = 4
Declare Create_Coff = 1
Declare All_Digital = On
Declare PortB_Pullups = OFF    ' Выключить подтягивающие резисторы на PORTB
TRISB = %00000000
TRISC = %00000000
'---------------------------------------------------------------------------------------------------
Symbol CS = PORTB.3
Symbol WR = PORTB.2
Symbol DN = PORTB.1

'---------------------------------------------------------------------------------------------------
Dim s As Byte
'Dim j As Word 'Переменная для хранения цифрового значения числа
Dim n As Byte 'Число для вывода на индикатор ССИ
Dim Value As Byte 'Переменная для осуществления табличного конвертирования цифры
'Dim Dot As Byte 'Символ точки для вывода на ССИ
Dim dwrd As Dword
Dim dig1 As Byte
Dim dig2 As Byte
Dim dig3 As Byte
Dim dig4 As Byte
Dim dig5 As Byte
Dim dig6 As Byte
Dim dig7 As Byte
Dim dig8 As Byte
'Dot = 128
'-------------------------------Инициализация микроконтроллера--------------------------------------

dwrd = 0
'-------------------------------------------
CS = 0
WR = 0 : DN = 1 : WR = 0
WR = 1 : DN = 0 : WR = 0
WR = 1 : DN = 0 : WR = 0
CS = 1
'-------------------------------------------
Start: 'Бесконечный цикл
While  dwrd < 99999999
Inc dwrd
GoSub Ind
Wend
GoTo Start
'-
Ind:
dig8 = (dwrd / 10000000) // 10
dig7 = (dwrd / 1000000) // 10
dig6 = (dwrd / 100000) // 10
dig5 = (dwrd / 10000) // 10
dig4 = (dwrd / 1000) // 10
dig3 = (dwrd / 100) // 10
dig2 = (dwrd / 10) // 10
dig1 = (dwrd / 1) // 10
'---------------Зажигание первого справа разряда индикатора и вывод на него цифры-------------------
n = dig1 'Выделяем из числа единицы
GoSub Convert 'и конвертируем в код ССИ
SHOut WR, DN, MsbFirst, [10100011100010000100101100010100] 'Проталкиваем в нижний регистр бит для зажигания разряда № 8
SHOut WR, DN, MsbFirst, [Value]'Проталкиваем в верхний регистр сконвертированный код для единиц
CS = 1 'Защелкиваем данные
CS = 0 'Обнуляем защелку данных
'---------------Зажигание второго справа разряда индикатора и вывод на него цифры-------------------

Return
'---------------Зажигание первого справа разряда индикатора и вывод на него цифры-------------------
Convert:
Value = LookUp n, [192,249,164,176,153,146,130,248,128,144,156]
Return
'---------------------------------------------------------------------------------------------------
Прикрепления: 9549326.jpg (165.5 Kb) · 2883298.jpg (37.8 Kb) · HT1621.pdf (651.9 Kb)

Сообщение отредактировал PINCOD - Вт, 08.12.2015, 09:19
ЯНДЕКС Дата: 07.12.2015
Matrix252005 Дата: Вт, 08.12.2015, 08:24  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!!!

Давно это было... Я работал с НТ1611,  здесь есть мой проект в разделе "Статьи" и модель НТ1621 есть в протеусе!!!!

http://kazus.ru/forums/showpost.php?p=691031&postcount=1539

Может Вам, ну и не только Вам, будет интересен эта ссылка:
"Proteus модели"
http://kazus.ru/forums/showthread.php?t=8902&page=154


THE TRUTH IS OUT THERE.

С уважением, Николай.
PINCOD Дата: Чт, 10.12.2015, 18:31  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Спасибо Николай,будем разбираться

Добавлено (10.12.2015, 18:31)
---------------------------------------------
Привет друзья,Хочу отнять у Вас  не много вашего драгоценного времени.А дело такое,есть камень 16ф628 и две кнопки,  кнопочка №0 и кнопочка №1  .как сделать в проге так,что при нажатии на №0 у меня шла запись нолика,а при нажатии №1,у меня шла запись единички.Вообщем если я нажал 4раза подряд0 и 4 раза подряд 1,то у меня получится 00001111.Вопрос,как полученный байт присвоить какой-нибудь переменной,допустим А

xvovanx Дата: Пт, 11.12.2015, 00:38  |                                                                                                                Сообщение # 4
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 328
Репутация: 59   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата PINCOD ()
как сделать в проге так,что при нажатии на №0 у меня шла запись нолика,а при нажатии №1,у меня шла запись единички.Вообщем если я нажал 4раза подряд0 и 4 раза подряд 1,то у меня получится 00001111.Вопрос,как полученный байт присвоить какой-нибудь переменной,допустим А

А если так попробовать прописывать побитно А.7, A.6, A.5,...A.0:

For N =7 To 0 Step -1

Opros_knopok:

If KN0=1 Then
A.N=0
GoTo Step
EndIf

If KN1=1 Then
A.N=1
GoTo Step
EndIf

GoTo Opros_knopok

Step:
Next N

Код "горбатый", но идея думаю понятна

Сообщение отредактировал xvovanx - Пт, 11.12.2015, 00:43
PINCOD Дата: Пт, 11.12.2015, 05:34  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Привет xvovanx, Код твой не понятен,я думаю,что в моей ситуации нужно организовать массив,но вот беда у меня страдает правописание массивов

Добавлено (11.12.2015, 05:05)
---------------------------------------------
Я думаю как то вот так

Сообщений:

198
Репутация: 6
±
Замечания: 0%   ±
На сайте с 02.05.2013
Статус: Offline

Цитата PINCOD ()как сделать в проге так,что при нажатии на №0 у меня шла запись нолика,а
при нажатии №1,у меня шла запись единички.Вообщем если я нажал 4раза
подряд0 и 4 раза подряд 1,то у меня получится 00001111.Вопрос,как
полученный байт присвоить какой-нибудь переменной,допустим А
Наверно вот так :
Dim Mass[10]    As Byte   ' Массив для вывода нужной инф. на экран
For N = 9 To 0 Step -1

Opros_knopok:

If KN0 = 1 Then
Mass [N]= 0
GoTo Step
EndIf

If KN1 = 1 Then
Mass [N]= 1
GoTo Step
EndIf

GoTo Opros_knopok

Step:
Next N'---------------------- Выводим на экран -----------------------------------------------------
Led:
SHOut DataPin, ClockPin, MsbFirst, [Mass[0]\4, Mass[1]\4, Mass[2]\4, Mass[3]\4, Mass[4]\4, Mass[5]\4, Mass[6]\4, Mass[7]\4, Mass[8]\4, Mass[9]\4]

Добавлено (11.12.2015, 05:34)
---------------------------------------------

Сообщение отредактировал PINCOD - Пт, 11.12.2015, 05:47
Matrix252005 Дата: Пт, 11.12.2015, 08:46  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!!

PINCOD, не понял Ваш вопрос.... Но xvovanx, в принципе Вам правильно написал... Только немного не так.....
В начале, назначьте переменную что то типа:

Dim X_Key as byte      ' для счета от 0 до 7
Dim A_Key as byte      ' переменная в которой будет хранится полученное "число"

В коде, что отвечает за кнопки:

If But_0 = 1 then
  A_Key.X_Key = 0
  inc X_Key
endif

If But_1 = 1 then
  A_Key.X_Key = 1
  inc X_Key
endif

If X_Key > 7 then
  X_Key = 0
endif

Если Вам нужно выводить каждый бит отдельно, то можно и массивом, если:
Цитата PINCOD ()
...то у меня получится 00001111.Вопрос,как полученный байт присвоить какой-нибудь переменной,допустим А
 Опять же... Не понятно... Вы говорите про байт, а массив у Вас из 10 элементов:
Цитата PINCOD ()
Наверно вот так :
Dim Mass[10]    As Byte   ' Массив для вывода нужной инф. на экран
For N = 9 To 0 Step -1
...

Как я написал чуть выше, если нужно вывести отдельно бит, то можно так:

For X_Key = 0 to 7
       Mass [X_Key] = A_Key.X_Key
Next X_Key

Что то типа такого... Если Вы разъясните более точно, что Вы хотите, мы сможем лучше Вам помочь.


THE TRUTH IS OUT THERE.

С уважением, Николай.
PINCOD Дата: Пт, 11.12.2015, 10:47  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Matrix252005,  Доброго времени суток Николай если ты глянешь сюда     http://radiokot.ru/forum....b%C2%A0    то ты поймешь меня.Вообще мне надо не 10,а 13 бит,набирая в ручную,отправлять в HOLTEK1621B.короче двумя кнопками(1-0) я набираю биты которые хочу загнать 1621B, а третьей отправлять уже набранные 13 бит в 1621B.Хочу разобраться с командами конроллера ЖКИ HOLTEK1621B
Matrix252005 Дата: Пт, 11.12.2015, 11:13  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Не пойму, Вы хотите просто научиться управлять данным экраном???

THE TRUTH IS OUT THERE.

С уважением, Николай.
PINCOD Дата: Пт, 11.12.2015, 11:43  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Да,да именно так,у меня на их счёт есть планы,потому что их у меня 3 штуки.Ну не выбрасывать их только потому,что не понятно пока мне
Сообщение отредактировал PINCOD - Пт, 11.12.2015, 11:46
Matrix252005 Дата: Пт, 11.12.2015, 11:48  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

По Вашей ссылке, http://radiokot.ru/forum/viewtopic.php?f=2&t=89010 все хорошо расписано... Данных экранов у меня нет.... Проверить что и как не могу...

THE TRUTH IS OUT THERE.

С уважением, Николай.
Matrix252005 Дата: Пт, 11.12.2015, 11:55  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Пробовал работать с таким экраном:
http://img1.11467.com/u/11319052/169144607.jpg

Там как раз драйвер НТ1621. Но код написан на mikroBasic for ARM !!!!!
Прикрепления: 005.3gp (398.8 Kb)


THE TRUTH IS OUT THERE.

С уважением, Николай.
ЯНДЕКС Дата: 11.12.2015
PINCOD Дата: Сб, 12.12.2015, 05:03  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 1   ±
Замечания:   ±
На сайте с 05.10.2011

Статус: Offline

Спасибо Николай,спасибо всем за уделенное внимание,буду разбираться дальше
  • Страница 1 из 1
  • 1
Поиск: