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

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

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

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


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Бегущая строка для HD44780


Бегущая строка для HD44780

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

1

Приветствую! Ни у кого нет случаем примера как организовать бегущую строку для ЖК на базе контроллера HD44780. Может кто уже сталкивался. Выложите пожалуйста.

0

2

не совсем понял

если в 1 строку, то делаете переменную из 16 (или сколько надо) символов
и в ней изменяете (перемещаете) символы

0

3

Не совсем понятен алгоритм перемещения пробовал Shiftlcd,не то.

0

4

есть функция MID

0

5

Всё зависит какое перемещение нужно, целыми буквами или сдвиг по пиксельный.

0

6

Может у кого то есть кусок кода для бегущей строки...Сдвиг буквами.

0

7

Airat
Ну ведь Александр вам уже дал ответ про функцию MID...

banned6
Enable=PORTB.4
RS=PORTB.5
D7=PORTB.0
D6=PORTB.1
D5=PORTB.2
D4=PORTB.3

Код:
Config Lcd = 16 * 2

Dim All_str As String * 256
Dim Lcd_str As String * 16
Dim A As Byte
Dim B As Byte
Cursor = Off , Noblink

' В начале и в конце по 16 пробелов
All_str = "                0123456789 ABCDEFGH 0123456789 abcdefgh                "

Cls
Label1:
B = Len(all_str) - 16
For A = 1 To B
   Lcd_str = Mid(all_str , A , 16)
   Upperline
   Lcd Lcd_str
   Waitms 200
Next A
Goto Label1

End

0

8

Спасибо за код! Еще один вопрос как организовать одновременную работу двух подпрограмм,т.е. опрос кнопок и бегущая строка?

0

9

В подпрограмму бегущей строки, в место где происходит постоянный проход кода вставляете опрос кнопок.

0

10

Захотел себе в самоделку тож бегущую строку но вариант с задержками и прочем в общем теле не устроил (но за идею огромный СПС, не раз Ваш сайт меня выручал решениями) и решил привязаться к счетчику и к прерыванию по нему (все равно уже он задействован в прошивке), можно также (если надо) сделать порог переполнения счетчика изменяемой переменной и внести пункт в меню- можно будет легко менять скорость прокрутки . Сделал тестовый вариант в протеусе на базе 8 меги- работает. И предложенный pдесь вариант работает и мой. Мож кому облегчит жизнь и упростит задачу Вот полный код моего варианта:
(за чистоту просьба не пинать - новичок и делал очень быстро)

Код:
$regfile = "m8def.dat"
$crystal = 8000000


Config Lcd = 16 * 4
Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , E = Portb.1 , Rs = Portb.0

Config Timer0 = Timer , Prescale = 1024

On Timer0 Scroll
Enable Timer0

Enable Interrupts



Config Lcd = 16 * 2
Dim Test As String * 16
Dim All_str As String * 256
Dim Lcd_str As String * 16
Dim A As Byte
Dim B As Byte

Dim Count As Byte
Dim Flag As Bit                                             '  флаг на разрешение сдвига

Cursor = Off , Noblink


Declare Sub Indi








' В начале и в конце по 16 пробелов
All_str = "                0123456789 ABCDEFGH 0123456789 abcdefgh                "
Test = "  Scroll String "
Cls




Do
   Upperline
   Lcd Lcd_str
   Lowerline
   lcd test
   If Flag = 1 Then Call Indi
Loop


Sub Indi
Count = 0
Flag = 0



B = Len(all_str) - 16
A = A + 1
   Lcd_str = Mid(all_str , A , 16)
If A = B Then A = 1
End Sub






Scroll:
Incr Count
If Count = 15 Then Flag = 1 'счетчик Переполняется Где -то 15 Раз В Секунду , 
Return                                    'Изменяя Значение Порога Переполнения - Меняем Скорость Прокрутки 

End

для ленивых (таких как я к примеру :) ) можно скачать, пощупать и посмотреть

http://ifolder.ru/images/download_2.jpg

0


Вы здесь » Программирование ATMEL в BASCOM. » Дисплеи и индикация » Бегущая строка для HD44780