Как сохронить данные введёные с на LCD? - Страница 2 - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как сохронить данные введёные с на LCD?
Как сохронить данные введёные с на LCD?
Alexej79 Дата: Сб, 17.05.2014, 14:30  |                                                                                                                Сообщение # 16
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 78
Репутация: 0   ±
Замечания:   ±
На сайте с 16.08.2010

Статус: Offline

Цитата Matrix252005 ()
клавиатура какая

Клавиатура спаянна по такой вот схеме, но резисторы и расположение их другое, но принцип такой.

Вот фрагмент кода моей программы. Часть где обрабатывается нажатие кнопок
Код
Dim K As Byte 'переменная для опроса клавиатуры
Dim A As Bit 'переменная для опроса нажатия кнопок
Dim Z As Byte 'переменная для присвоения цифры с таблицы
Dim Zahl As Byte 'переменная фактически нажатой кнопки
Dim I As Byte 'переменная флаг для формулы после запятой
Dim R As Word 'переменная для целых чисел
Dim G As Float 'переменная для десятичных чисел
Dim X As Byte 'переменная позиции курсора для вывода запятой
A=0:R=0:I=0:X=1
........
Start:
K=ADIn 1 'опросить клавиатуру с вывода 3 AN1
DelayUS 1'пауза для разрядки кондёра
Z=LookDownL K,<=[35,42,50,55,57,68,74,80,86,92,94,96]' таблица присваивания
Zahl=LookUpL Z,  [3, 6, 9,11, 0, 8, 5, 2, 1, 4, 7,10]' фактически нажатая цифра
Print $FE,$0F' мигающий курсор
If Zahl=10 And K<240 And A=0 Then A=1: I=1:Print At 1,X,"."'если нажата запятая
If Zahl=11 And K<240 And A=0 Then A=1: R=0:I=0:X=1:Cls' если нажат  ENTER 
If K<240 And A=0 And I=0 Then DelayMS 10:R=(R*10)+Zahl:Print At 1,1, Dec R: A=1:X=X+1' формула для целых чисел
If K<240 And A=0 And I=1 Then DelayMS 10:G=R+(Zahl/10):Print At 1,1, Dec1 G: A=1' формула для десятичных чисел
If K>240 Then DelayMS 10: A=0' когда отпущена кнопка

Goto Start
Вот как то так я реализовал эту часть программы. Если есть какие замечания пишите.

Сообщение отредактировал Alexej79 - Сб, 17.05.2014, 14:34
ЯНДЕКС Дата: 17.05.2014
Matrix252005 Дата: Пн, 19.05.2014, 14:25  |                                                                                                                Сообщение # 17
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 672
Репутация: 20   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

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

Цитата
If Zahl=10 And K<240 And A=0 Then A=1: I=1:Print At 1,X,"."'если нажата запятая
If Zahl=11 And K<240 And A=0 Then A=1: R=0:I=0:X=1:Cls' если нажат  ENTER
If K<240 And A=0 And I=0 Then DelayMS 10:R=(R*10)+Zahl:Print At 1,1, Dec R: A=1:X=X+1' формула для целых чисел
If K<240 And A=0 And I=1 Then DelayMS 10:G=R+(Zahl/10):Print At 1,1, Dec1 G: A=1' формула для десятичных чисел
If K>240 Then DelayMS 10: A=0' когда отпущена кнопка


Alexej79, возьмите себе за правило, не пишите все в одну строчку!!!!!!!!
Это тяжело читать и не поймешь где ошибка...

If Zahl = 10 And K < 240 And A = 0 Then                                     ' если нажата запятая
   A = 1
   I = 1
   Print At 1, X, "."
EndIf

С уважением, Николай.

Добавлено (19.05.2014, 14:25)
---------------------------------------------
Alexej79, а где у Вас идет обнуление "Х"??? Присваивание 1 вижу.... Инкремент "Х" вижу... А обнуление не вижу....

sad Или я что то не так понял...

Если можно, выложите весь проект вместе с схемой в протеусе...

С уважением, Николай.

Сообщение отредактировал Matrix252005 - Пн, 19.05.2014, 14:14
ADMIN Дата: Ср, 21.05.2014, 03:04  |                                                                                                                Сообщение # 18
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Alexej79, здесь, судя по всему, вам будет полезно почитать
Alexej79 Дата: Пт, 23.05.2014, 23:55  |                                                                                                                Сообщение # 19
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 78
Репутация: 0   ±
Замечания:   ±
На сайте с 16.08.2010

Статус: Offline

ADMIN, спасибо за ссылку, полезная для меня статья.
Цитата Matrix252005 ()
Если можно, выложите весь проект вместе с схемой в протеусе...
Да, я выложу проект но позже сейчас я уже сам там запутался. Всё это время разбирался в Протеусе как запустить отладку программы.
Дело в том что окно с названием Variables - U1 остаётся всегда пустым хотя там должны показываться переменные которые присутствуют в моей программе. Вот так выглядит это.

может где в настройках галку поставить надо? Уже не знаю что сделать.
ivan_fd Дата: Сб, 24.05.2014, 17:03  |                                                                                                                Сообщение # 20
Группа: Модераторы
Ранг:  Специалист
Сообщений: 882
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Тут дел, скорее всего в Протоне, а не в Протеусе. Попробуйте через COFF? или ставьте последнюю версию Протона.
Alexej79 Дата: Пн, 26.05.2014, 23:08  |                                                                                                                Сообщение # 21
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 78
Репутация: 0   ±
Замечания:   ±
На сайте с 16.08.2010

Статус: Offline

Цитата ivan_fd ()
Попробуйте через COFF? или ставьте последнюю версию Протона.
Что значит COFF а Протон у меня версии IDE 2.0.0.8 Loader 3.5.1.5 Compiler 3.5.1.7
ivan_fd Дата: Пн, 26.05.2014, 23:35  |                                                                                                                Сообщение # 22
Группа: Модераторы
Ранг:  Специалист
Сообщений: 882
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Declare Create_Coff = On 

И в Протеусе выбираете не BAS, а coff.

И все таки скачайте новую версию ПРОТОНА и все будет хорошо.
Alexej79 Дата: Пн, 26.05.2014, 23:53  |                                                                                                                Сообщение # 23
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 78
Репутация: 0   ±
Замечания:   ±
На сайте с 16.08.2010

Статус: Offline

Цитата ivan_fd ()
И все таки скачайте новую версию ПРОТОНА и все будет хорошо.
Спасибо за совет я не знал о существовании новой версии. Скачал установил всё заработало. smile
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Как сохронить данные введёные с на LCD?
Страница 2 из 2«12
Поиск: