Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Меню для GLCD 128X64


Меню для GLCD 128X64

Сообщений 1 страница 7 из 7

1

Подскажите, как написать меню для GLCD 128Х64 c управлением от четырех кнопок( вверх, вни3, Enter. Esc). Желательно с проектом в протеусе. Контроллер Атмега 32. Не пинайте пожалуйста, я только начинающий.

0

2

вначале потренироваться на кошечках, т.е. символьном индикаторе.
Здесь четыре задачи:
- построение и организации системы в целом;
- обработка клавиатуры;
- формирование текстовых сообщений;
- вывод на экран (все равно на симв. или граф.)
решай по очереди

0

3

поищите мои сообщения: я недавно задавал подобный вопрос

0

4

С меню разобрался более менее. Только не пойму как сделать меню в графическом режиме( с инверсией символов). В обычном режиме инверсии нет( по справке). И не понял - как вывести  кириллицу? Для 2-4 строчных программка есть, для GLCD ничего в инете не нашёл...

0

5

sashashemelev1 написал(а):

для GLCD ничего в инете не нашёл

А это, не?

0

6

Попробую разобраться..

0

7

Попытался сделать на графическом дисплее что то типа меню - не хочет работать. В текстовом режиме работает нормально. Подскажите, что не так?
Не все пункты меню  готовы, но что есть -как заставить работать? Не знаю как прицепить сюда проект из протеуса...

Выкладываю кусок кода:

ОФОРМЛЯЙТЕ КОД СООТВЕТСТВУЮЩИМ ОБРАЗОМ - ЕСТЬ КНОПОЧКА "КОД"
модератор

Код:
$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)

-1


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Меню для GLCD 128X64