Интересно как контрастность то правильно регулировать? Программно или аппаратно? А то непонятно почему мусор на индикаторе высыпается
Я правильных ответов знаю мало, поэтому не стесняюсь и много спрашиваю.
Код: Выделить всё
' Работа с ЖК индикатором WO1602F-TMI-AT к контроллером ST7032
' 8-bit mode
' Инициализация индикатора выполнена на основании даташита на контроллер
' Автор serg_svd
$regfile = "m8def.dat"
$crystal = 8000000
$hwstack = 40
$swstack = 16
$framesize = 32
' НАСТРОЙКА ПОРТОВ МИКРОКОНТРОЛЛЕРА
'0 - вход, 1 - выход
Ddrb = &B11111111
Ddrc = &B00000011
Ddrd = 0
' КОНФИГУРАЦИЯ ИНДИКАТОРА
Config Lcdpin = Pin , Port = Portb , E = Portc.0 , Rs = Portc.1
Config Lcd = 16 * 2
' ИНИЦИАЛИЗАЦИЯ ДИСПЛЕЯ
Waitms 50 ' Ожидание после включения питания
' Function set normal mode
Lcdcmd &B00111000 ' DL=1 (8bit), N=1 (2 line), DH=0 (5x8dot), IS=0 Normal mode
Waitus 30
' Function set Extension mode
Lcdcmd &B00111001 ' IS=1 Extension mode
Waitus 30
' Internal OSC frequency
Lcdcmd &B00010100 ' BS=1/5, F2,F1,F0=192 Hz
Waitus 30
' Contrast Set
Lcdcmd &B01110000 ' C3,C2,C1,C0 =0000
Waitus 30
' Power/ICON/Contrast control
Lcdcmd &B01010010 ' Ion=0(display OFF), Bon=0, C5,C4=10
Waitus 30
' Follower control
Lcdcmd &B01101010 ' Fon=1, Rab2,Rab1,Rab0=010
Waitms 200
' Display ON/OFF control
Lcdcmd &B00001100 ' D=1(display ON), C=0(cursor OFF), B=0(blink OFF)
Waitus 30
' КОНЕЦ ИНИЦИАЛИЗАЦИИ ИНДИКАТОРА
Cls
Do
Locate 1 , 3
Lcd "Hello, world!"
Locate 2 , 1
Lcd "0123456789ABCDEF"
Wait 1
Cls
Wait 1
Loop
End
Вот тут на эту тему очень хорошо разжевано. Именно на Баскоме, и именно со сдвиговыми регистрами 74HC595. С поясняющими картинками, с примером программы.Cat@lex писал(а):динамической индикации со сдвиговым регистром. Но не могу разобраться с протоколом передачи.
На мой взгляд так понятнее, особенно для новичка. А при использовании материала автора код можно (и нужно) оптимизировать в соответствии с собственным опытом.edm2007 писал(а): у автора явно прослеживается "таймеробоязнь".
А подсветка - не чересчурная ? Как по мне - таки да. Большой расход тока и малая контрастность. Сколько потребляет подсветка? Гасящий резистор есть ?serg_svd писал(а):
Это такой яркий на фотографии вышел. В реальности как и любой "синий" китайский дисплей, если видели. Подсветка кушает меньше 20 мА. Резистор уже впаян, но можно на плате поставить еще Ом 20 и занизить ток. Не так ярко светить будетJack_A писал(а): А подсветка - не чересчурная ? Как по мне - таки да. Большой расход тока и малая контрастность. Сколько потребляет подсветка? Гасящий резистор есть ?
Вообще не ясно, зачем после дата ставить return? Не надо.Microtech писал(а):Нечаянно наткнулся на особенность Lookup.
По привычке, поставил RETURN после блока DATA. Всё сползло на 2 байта.
B = Lookup(1 , Tabl) даёт ерунду (предыдущий байт из памяти).
B = Lookup(2 , Tabl) b=&H44 даёт первый элемент массива tabl
B = Lookup(3 , Tabl) b=&H65 даёт второй элемент массива tabl
.....
....
end
Tabl:
Data &H44 , &H65 , &H6C
Return
А где в Вашем коде "Witems", шина I2C,(возможно и 1Wire)?chernishovmihail писал(а): Проблема такова: после выхода из Powersave что-то происходит с частотой- некорректно работает "Witems", шина I2C,(возможно и 1Wire), но $baud - не меняется.
Значит единица в седьмом бите - это "минус".The code is encoded in two’s complement, with
bit 7 representing the sign bit.