HOLTEK 1621
|
|
PINCOD |
Дата: Пн, 07.12.2015, 19:56 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 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 '---------------------------------------------------------------------------------------------------
Сообщение отредактировал
PINCOD - Вт, 08.12.2015, 09:19
|
|
|
|
Matrix252005 |
Дата: Вт, 08.12.2015, 08:24 | Сообщение # 2 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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 |
Группа:
Модераторы
Ранг:
Помогаю всем
Сообщений:
327
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Не пойму, Вы хотите просто научиться управлять данным экраном???
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
PINCOD |
Дата: Пт, 11.12.2015, 11:43 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 05.10.2011
Статус:
Offline
|
Да,да именно так,у меня на их счёт есть планы,потому что их у меня 3 штуки.Ну не выбрасывать их только потому,что не понятно пока мне
Сообщение отредактировал
PINCOD - Пт, 11.12.2015, 11:46
|
|
|
|
Matrix252005 |
Дата: Пт, 11.12.2015, 11:48 | Сообщение # 10 |
Группа:
Проверенные
Ранг:
Разобрался
Сообщений:
636
Замечания:
±
На сайте с 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
Замечания:
±
На сайте с 12.10.2007
Статус:
Offline
|
Пробовал работать с таким экраном: http://img1.11467.com/u/11319052/169144607.jpg
Там как раз драйвер НТ1621. Но код написан на mikroBasic for ARM !!!!!
THE TRUTH IS OUT THERE.
С уважением, Николай.
|
|
|
|
PINCOD |
Дата: Сб, 12.12.2015, 05:03 | Сообщение # 12 |
Группа:
Проверенные
Ранг:
Начал соображать
Сообщений:
31
Замечания:
±
На сайте с 05.10.2011
Статус:
Offline
|
Спасибо Николай,спасибо всем за уделенное внимание,буду разбираться дальше
|
|
|
|