Подскажите, как написать меню для GLCD 128Х64 c управлением от четырех кнопок( вверх, вни3, Enter. Esc). Желательно с проектом в протеусе. Контроллер Атмега 32. Не пинайте пожалуйста, я только начинающий.
Меню для GLCD 128X64
Сообщений 1 страница 7 из 7
Поделиться22012-03-22 08:29:09
вначале потренироваться на кошечках, т.е. символьном индикаторе.
Здесь четыре задачи:
- построение и организации системы в целом;
- обработка клавиатуры;
- формирование текстовых сообщений;
- вывод на экран (все равно на симв. или граф.)
решай по очереди
Поделиться32012-03-22 11:23:37
поищите мои сообщения: я недавно задавал подобный вопрос
Поделиться42012-03-24 11:17:11
С меню разобрался более менее. Только не пойму как сделать меню в графическом режиме( с инверсией символов). В обычном режиме инверсии нет( по справке). И не понял - как вывести кириллицу? Для 2-4 строчных программка есть, для GLCD ничего в инете не нашёл...
Поделиться52012-03-24 12:39:02
для GLCD ничего в инете не нашёл
Поделиться62012-03-24 12:42:34
Попробую разобраться..
Поделиться72012-03-25 12:23:19
Попытался сделать на графическом дисплее что то типа меню - не хочет работать. В текстовом режиме работает нормально. Подскажите, что не так?
Не все пункты меню готовы, но что есть -как заставить работать? Не знаю как прицепить сюда проект из протеуса...
Выкладываю кусок кода:
ОФОРМЛЯЙТЕ КОД СООТВЕТСТВУЮЩИМ ОБРАЗОМ - ЕСТЬ КНОПОЧКА "КОД"
модератор
$regfile = "m64def.dat" 'заголовочный файл для определения типа контроллера $crystal = 1000000 $lib "glcdks108.lib" $sim Config Graphlcd = 128 * 64sed , Dataport = Portb , Controlport = Portc , Ce = 4 , Ce2 = 5 , Cd = 0 , Rd = 1 , Enable = 2 , Reset = 3 Dim A As Integer On Int4 Up 'кнопка "UP" On Int5 Down 'кнопка "DOWN" On Int6 Ok 'кнопка "OK" On Int7 Esc 'кнопка "ESC" Enable Interrupts Enable Int4 Enable Int5 Enable Int6 Enable Int7 A = 10 'присваиваем переменной значение Cls Do 'главный цикл програамы. постоянно проверяем значение переменной А Select Case A 'проверили значение переменной Case 10 : Gosub 10 'свалили на выполнение подпрограммы Case 20 : Gosub 20 Case 30 : Gosub 30 Case 11 : Gosub 11 Case 12 : Gosub 12 Case 13 : Gosub 13 Case 21 : Gosub 21 Case 22 : Gosub 22 Case 23 : Gosub 23 Case 31 : Gosub 31 Case 32 : Gosub 32 Case 33 : Gosub 33 Case 110 : Gosub 110 Case 120 : Gosub 120 Case 130 : Gosub 130 Case 210 : Gosub 210 Case 220 : Gosub 220 Case 230 : Gosub 230 Case 310 : Gosub 310 Case 320 : Gosub 320 Case 330 : Gosub 330 End Select Waitms 500 Loop Ok: 'обработка нажатия кнопки "OK" If A = 11 Or A = 12 Or A = 13 Then A = A * 10 End If If A = 21 Or A = 22 Or A = 23 Then A = A * 10 End If If A = 31 Or A = 32 Or A = 33 Then A = A * 10 End If If A = 10 Or A = 20 Or A = 30 Then Incr A End If Return Esc: 'обработка нажатия кнопки "ESC" If A = 11 Or A = 12 Or A = 13 Then A = 10 End If If A = 21 Or A = 22 Or A = 23 Then A = 20 End If If A = 31 Or A = 32 Or A = 33 Then A = 30 End If If A > 100 Then A = A / 10 End If Return Down: 'обработка нажатия кнопки "DOWN" If A = 10 Or A = 20 Then A = A + 10 End If If A = 11 Or A = 12 Then Incr A End If If A = 21 Or A = 22 Then Incr A End If If A = 31 Or A = 32 Then Incr A End If Return Up: 'обработка нажатия кнопки "UP" If A = 20 Or A = 30 Then A = A - 10 End If If A = 12 Or A = 13 Then Decr A End If If A = 22 Or A = 23 Then Decr A End If If A = 32 Or A = 33 Then Decr A End If Return End 10: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" , 1 Lcdat 4 , 1 , "LABEL 2" Lcdat 5 , 1 , "LABEL 3" Loop Return 20: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" Lcdat 4 , 1 , "LABEL 2" , 1 Lcdat 5 , 1 , "LABEL 3" Loop Return 30: Setfont Font8x8 Lcdat 1 , 1 , " PRIMER " Do Lcdat 3 , 1 , "LABEL 1" Lcdat 4 , 1 , "LABEL 2" Lcdat 5 , 1 , "LABEL 3" , 1 Loop Return $include "font8x8.font"
Отредактировано Александр Д. (2012-03-25 13:01:02)