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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: ivan_fd  
Форум Picbasic.ru » Программирование МК » PicBasicPro » Создание меню. (Помогите разобраться.)
Создание меню.
shaman Дата: Чт, 12.01.2012, 12:35  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Здравствуйте,помогите пожалуйста с построением меню,имеются кнопки Menu , Left Right (листать) , Enter , Esc (возврат)
При нажатии на кнопку Меню, на ЛСД выводится 4 пункта 1.2.3.4. При нажатии в право и влево не работают,использовал программу For Next подскажите в чем ошибка или у кого имеются живые примеры чтобы разобраться. Заранее спасибо,текст программы прилагаю:
DEFINE OSC 4
;-----------------------------------------;
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 1
DEFINE LCD_BITS 4
DEFINE LCD_LINES 4
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATAUS 50
;-----------------------------------------;
ADCON1 = 6
TrisA = %11111111
PortA = %00000000
TrisB = %00000000
PortB = %00000000
TrisC = %00000000
PortC = %00000000
;-----------------------------------------;
Symbol Menu = PORTA.0
Symbol Enter = PORTA.1
Symbol Left = PORTA.2
Symbol Right = PORTA.3
Symbol Esc = PORTA.4
;-----------------------------------------;
Symbol Led1 = PORTC.0
Symbol Led2 = PORTC.1
Symbol Led3 = PORTC.2
Symbol Led4 = PORTC.3
Symbol Led5 = PORTC.4
Symbol Led6 = PORTC.5
Symbol Led7 = PORTC.6
Symbol Led8 = PORTC.7
Symbol Led9 = PORTD.0
Symbol Led10 = PORTD.1
Symbol Led11 = PORTD.2
Symbol Led12 = PORTD.3
Symbol Led13 = PORTD.4
Symbol Led14 = PORTD.5
Symbol Led15 = PORTD.6
Symbol Led16 = PORTD.7
;-----------------------------------------;
w var byte
i var byte
;-----------------------------------------;
main:
Lcdout $FE,1
LCDOut $FE,$C0+7,0
LCDOUT $FE,$94-1," Hello"
lcdout $FE,$40,$00,$0A,$0A,$0A,$00,$11,$0E,$00
;-----------------------------------------;
if Menu = 0 then
pause 50
goto LCD
endif
;-----------------------------------------;
L:
if (Left = 0) and (i = 0) then
for i = 0 to 5
IF i = 1 THEN
goto Lcdout $FE,$80,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 2 THEN
goto Lcdout $FE,$C0,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 3 THEN
goto Lcdout $FE,$94,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 4 THEN
goto Lcdout $FE,$D4,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 5 THEN Clear
next
goto main
;-----------------------------------------;
LCD:
LCDOUT $FE,$80,"1.Led 1"
LCDOUT $FE,$C0,"2.Led 2"
LCDOUT $FE,$94,"3.Led 3"
LCDOUT $FE,$D4,"4.Led 4"
goto main
end
ЯНДЕКС Дата: 12.01.2012
ADMIN Дата: Чт, 12.01.2012, 17:51  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

В этом куске программы:

L:
if (Left = 0) and (i = 0) then If есть, а где endif? Также - если i = 0,
for i = 0 to 5
IF i = 1 THEN то как оно может здесь равно 1?
goto Lcdout $FE,$80,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 2 THEN if...endif
goto Lcdout $FE,$C0,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 3 THEN if...endif
goto Lcdout $FE,$94,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 4 THEN if...endif
goto Lcdout $FE,$D4,0
Lcdout $FE,$40,$00,$04,$02,$1F,$02,$04,$00,$00
IF i = 5 THEN Clear
next

потом - Lcdout - это команда, а не метка в программе. Это зарезервированное слово
shaman Дата: Вт, 17.01.2012, 11:17  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Добрый вечер,спасибо горомное за помощьADMIN,буду разбираться дальше.

Добавлено (17.01.2012, 11.17.05)
---------------------------------------------
Добрый день, подскажите пожалуйста что я не так сделал, в выделенном куске я запутался. Заранее спасибо текст программы прилогаю:
b0 var byte;Введём переменную
b1 var byte;Введём переменную
b2 var byte;Введём переменную
b3 var byte;Введём переменную
b4 var byte;Введём переменную
;----------------LEFT RIGHT---------------;
L:
if Left = 0 and b0 = 1 then
pause 60
endif
If b0 >= 5 Then
b0 = b0 + 1
Endif
If b0 = 5 Then
endif
goto select_lcd
R:
if Right = 0 and b1 = 5 then
pause 60
endif
if b1 <= 5 then
b1 = b1 - 1
endif
If b1 = 5 Then
endif
goto select_lcd
[color=purple]select_lcd:
if (b0 = 1) and (b1 = 4) then loop1
if (b0 = 2) and (b1 = 3) then loop2
if (b0 = 3) and (b1 = 2) then loop3
if (bo = 4) and (b1 = 1) then loop4
if (bo = 5) and (b1 = 5) then
endif
goto L
[/color]
loop1:
LCDOUT $FE,1,"LED"
lcdout $FE,$C0,"1"
loop2:
LCDOUT $FE,1,"LED"
lcdout $FE,$C0,"2"
loop3:
lcdout $FE,1,"LED"
lcdout $FE,$C0,"3"
loop4:
lcdout $FE,1,"LED"
lcdout $FE,$C0,"4"
end

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

Статус: Offline

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

shaman, Ваш код, не заработает никогда!!! У Вас в каждой строчке (почти) ошибки!!! Или это не весь код???
Например: If b1 = 5 Then endif - Если "b1 = 5", то что ?????????????? Где у Вас изменяется переменные b1 и b0???? Дальше "if (b0 = 1) and (b1 = 4) then loop1 " - даже если он сработает это строчка (в чем я сильно сомневаюсь!!!!) он перейдет на "loop1:", а как он от туда выйдет!!!

Без обид, но вначале напишите все на бумаге, в виде блок схемы, посмотрите все ли правильно, а потом переведите все в код!!!

Если Вас интересует реализация меню, поищите по форуму, тут есть готовые проекты реализации "Меню".

Если не сможете, опишите весь алгоритм, попробуем Вам помочь... biggrin


THE TRUTH IS OUT THERE.

С уважением, Николай.
ADMIN Дата: Вт, 17.01.2012, 12:44  |                                                                                                                Сообщение # 5
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1087
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Да-да. Здесь не пошлют на три буквы
shaman Дата: Вт, 17.01.2012, 15:20  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

При включении появляется надпись Hello и будет гореть до тех пор пока не будет нажата кнопка Menu,нажимаем Menu высвечивается 2 пункта.
1.Контроллеры
2.Звуковой сигнал
Кнопками Left-Right перемещаем укозатель в виде стрелочки в нужный пункт Menu,например выбрали 1.Контроллеры нажимаем кнопку ОК,высвечивается меню 1 пункта
1.8/14/20
2.28/40
3.18
Кнопками Left-Right перемещаем укозатель в виде стрелочки в нужный пункт,например выбрали 1.8/14/20 нажимаем кнопку ОК загорается 5 свето диодов нажимаем 2 раз выключаем,так и для 2. и 3.
Если выбрали
2. Звуковой сигнал
нажимаем ОК включили 2 раз выключаем
Кнопкой ESC делать возврат на предедыщий пунк.
Спасибо Вам за помощь,подскажите как лучше сделать,схему прилогаю:
Прикрепления: Menu..pdf (74.5 Kb)
Matrix252005 Дата: Вт, 17.01.2012, 15:31  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

shaman, Вам обязательно на "PicBasicPro"??? Я уже давно перешел на Протон... И если не трудно, я смотрю, Вы делали схему в протеусе, выложите ее, я попробую Вам помочь.

THE TRUTH IS OUT THERE.

С уважением, Николай.
shaman Дата: Вт, 17.01.2012, 15:45  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

Выкладываю что есть.

Добавлено (17.01.2012, 15.45.51)
---------------------------------------------
Matrix252005 а Вы можете скинуть книгу и исталяху на Протон я почитаю.

Прикрепления: _Menu.rar (67.1 Kb)
Matrix252005 Дата: Вт, 17.01.2012, 15:51  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Да, без проблем: http://www.terrarus.ucoz.ru/proton_plus_ide/index.html
http://www.picbasic.ru/search/?q=proton+ide
Сам протон: http://www.picbasic.ru/load/proton_development_suite_3_5_2_7/3-1-0-233 или http://www.sonsivri.to/forum/index.php?topic=25430.100
Это тоже Вам пригодится: http://www.picbasic.ru/publ/rabota_v_proton_i_proteus/2-1-0-95


THE TRUTH IS OUT THERE.

С уважением, Николай.
shaman Дата: Вт, 17.01.2012, 16:45  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

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

Статус: Offline

По какой ссылке?

THE TRUTH IS OUT THERE.

С уважением, Николай.
ЯНДЕКС Дата: 17.01.2012
shaman Дата: Вт, 17.01.2012, 16:58  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

http://www.picbasic.ru/load/proton_development_suite_3_5_2_7/3-1-0-233
Matrix252005 Дата: Вт, 17.01.2012, 17:03  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Скачивается!!!!! Выложите Ваш ящик, я скину Вам его.

THE TRUTH IS OUT THERE.

С уважением, Николай.
shaman Дата: Вт, 17.01.2012, 17:09  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

moskvitin21@mail.ru
Matrix252005 Дата: Вт, 17.01.2012, 17:26  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Отправил.

Добавлено (17.01.2012, 17.26.56)
---------------------------------------------
shaman, я не совсем понял эту строчку:

Quote (shaman)
...нажимаем кнопку ОК загорается 5 свето диодов нажимаем 2 раз выключаем...
!!!

Какие именно св.диоды, и 2 раза или 2-ой раз...??? Также и для звука...


THE TRUTH IS OUT THERE.

С уважением, Николай.
Форум Picbasic.ru » Программирование МК » PicBasicPro » Создание меню. (Помогите разобраться.)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: