Страница 13 из 123

Добавлено: Вт ноя 24, 2009 09:42:51
Alex_A
ну ёёёёмана ... опять началясь свистопляска :( ..

ЖКИ начинает мигать ... проверил - скачет напряжение на 3 ноге (контраст). От переменника не зависит. От схемы не зависит (цеплял к чужим схемам). Думал - сдох индикатор ... подцепил вместо 16х2 попавшийся под руку 20х4 ... та же фигня ... оба винстаровские, новые, только из магазина.

Судя по осцилографу - похоже на то, что на ноге какой-то цифоровой сигнал скачет ....

да, ещё ... судя по заущенным таймерам, на работу схемы это мигание никак не влияет ... т.е. контроллер пашет исправно, и ЖКИ тоже пашет, ибо инициализацию не теряет. Просто скачет картинка ...

Добавлено: Вт ноя 24, 2009 22:44:57
yaotzin
подскажите, хочу купить HD44780 но такого нет и вообше у нас впервые про него на радио рынке слышат, какие - то видел ЖК индикаторы но продавец не шарит нифига как и я, как бы это так купить чтоб не промахнутся. на что обратить внимание чтоб купить аналог HD44780

Добавлено: Вт ноя 24, 2009 23:26:50
Pooher
НаписАть на бумажке какие есть, и в гугль :)

Добавлено: Ср ноя 25, 2009 17:52:41
Sannex
Товарищи, требуется помощь.
Есть необходимость отображать на LCD индикаторе символы которых нет в стандартном наборе. В КодеВижне нашел примерно следующее по поводу определения собственных символов:
//
fflash char symbol[8]={0x00,...0x00}; //массив с кодом символа
char i, addr;
addr=0;
for (i=0; i<8; i++)
{
lcd_write_byte(addr,symbol);
addr++
};

.......
А вот как теперь вывести на экран? что-то типа этого?

llcd_putchar(0);

Тут как я понимаю должен указываться адрес нового символа, но какой адрес?
И еще, чтобы выводить кириллицу необходимо составить массив или строку с кодировкой символов типа:
char privet[]={0xA8, 0x50, 0xB8, 0xB3, 0x65, 0BF}; //Привет

И как теперь сочленить новый символ и надпись сочленить в одной строке?
Вывести символ, потом позиционировать курсор и вывести остатки? Или есть пути проще?

А еще в книге Лебедева "CodeVisionAVR Пособие для начинающих" видел такую конструкцию:

#pragma ruslsd+ //Включить автоматическую перекодировку кириллицы
sprintf(buffer,"Символ: %d",symbol);
#pragma ruslcd-
lcd_puts(buffer);


Но CodeVision ругается по поводу директивы #pragma ruslcd - говорит о незнании таковой. Вопрос - таким вариантом кто-нибудь пользовался?

Добавлено: Ср ноя 25, 2009 21:37:31
yaotzin
http://www.winstar.com.tw/include/files/jpg/pdf.jpg

WINSTAR WH1602D-YGH-CT (на базе KS0066) это аналог HD44780 ?

Добавлено: Ср ноя 25, 2009 21:45:13
yaotzin
похоже аналог.

Добавлено: Ср ноя 25, 2009 22:22:35
ARV
Sannex писал(а):Товарищи, требуется помощь.
Есть необходимость отображать на LCD индикаторе символы которых нет в стандартном наборе.
...
И еще, чтобы выводить кириллицу необходимо составить массив или строку с кодировкой символов типа:
char privet[]={0xA8, 0x50, 0xB8, 0xB3, 0x65, 0BF}; //Привет

И как теперь сочленить новый символ и надпись сочленить в одной строке?
Вывести символ, потом позиционировать курсор и вывести остатки? Или есть пути проще?
посмотрите исходники моей библиотечки TUI - там:
1. есть пример использования нестандартного знакогенератора
2. есть пример "сочленения строк"
кроме этого, на моем сайте есть утилита для "переконвертации" русских символов для вывода на ЖКИ.

P.S. Пользовательский знакогенератор состоит из 8 символов с кодами от 0 до 7.

Добавлено: Чт ноя 26, 2009 15:53:12
k000858
подскажите плиз где ошибочка

Код: Выделить всё

.include "m8def.inc"

.def Temp=R16
;.def t0=R17
;.def t1=R18

.cseg
.org 0


;***********èíèöèàëèçàöèÿ ïîðòòîâ**************

ldi Temp,low(RAMEND)
out SPL,Temp
ldi Temp,high(RAMEND)
out SPH,Temp

ldi Temp,0b11110000						;íàñòðîéêà ïîðòîâ
out DDRD, Temp


;***********èíèöèàëèçàöèÿ æêè******************
rcall Paus              				; 20 ìñ
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 ìêñ
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 ìêñ
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 ìêñ
ldi Temp,0b00100000
out PortD, Temp
rcall Paus1								; 40 ìêñ


;ldi Temp,0b00010000						;óñòàíîâêà ïàðàìåòðîâ
;out PortD, Temp
;ldi Temp,0b10000000
;out PortD, Temp

;ldi Temp,0b00000000						;âûêëþ÷åíèå äèñïëåÿ
;out PortD, Temp
;ldi Temp,0b10000000
;out PortD, Temp

;ldi Temp,0b00000000						;î÷èñòêà äèñïëåÿ
;out PortD, Temp
;ldi Temp,0b00010000
;out PortD, Temp	
			
;ldi Temp,0b00000000						;óñòàíîâêà ðåæèìà ââîäà äàííûõ
;out PortD, Temp										
;ldi Temp,0b01100000
;out PortD, Temp



;***********çàäåðæêà  20mc***************************

Paus:									
			ldi R17,246
			ldi R18,80

loop:		
			dec R17
			brne loop
			dec R18
			brne loop
ret

;***********çàäåðæêà 40 ìêñ***************************

Paus1:
			ldi R17,40
loop1:
			dec R17
			brne loop1
ret

Добавлено: Чт ноя 26, 2009 15:58:13
GP1
ни чё не понял :shock:
где выбор: данные-команды?
где строб-импульс?
где хотя бы схема включения?

Добавлено: Чт ноя 26, 2009 15:59:02
ARV
ошибка в том, что нет основного цикла: ваша программа доберется до подпрограммы Paus и примется ее выполнять, после чего выполнит ret и окажется неизвестно где...

Добавлено: Пт ноя 27, 2009 03:24:00
Sasha1986
yaotzin Большинство знакосинтезирующих это аналоги HD44780.

вот смотри и радуйся)))

Добавлено: Пт ноя 27, 2009 07:06:52
k000858
ARV писал(а):ошибка в том, что нет основного цикла: ваша программа доберется до подпрограммы Paus и примется ее выполнять, после чего выполнит ret и окажется неизвестно где...
спасибо
добавил основной цикл аля

Код: Выделить всё

Inf:	
rjmp Inf
и все встало на свои места :)

ps. не обращайте внимания что в проге пока ничего нет, это лишь набросочка )) первые шаги так сказать )

Добавлено: Пт ноя 27, 2009 11:30:02
k000858
эх что то ничего не получается.
Пытаюсь подключить HD44780 к меге 8. Программировать только учусь, пока только научился программить мегу под светодиоды (бегущий огонек с обучалки) но этих знаний не хватает, что б справится с моей задачей.
HD44780 подключаю по 4х битному режиму.
Схему подключения прикладываю ниже. Кому не сложно, не могли бы накидать простейший прогр. код для инициализации + вывода пары симвалов на экран? а дальше по примеру думаю разобрался бы. Очень помогли бы комментарии по ходу выполнения проги. Учусь под асм.
Нашел кучи готовых программ но там слишком много всего, слишком много не знакоммых комманд и операций. попроще бы как ниьудь
Заранее благодарен откликнувшимся

Пока только накидал программу инициализации, и то пока не уверен, сработает ли.

Код: Выделить всё

.include "m8def.inc"

.def Temp=R16
.def t0=R17
.def t1=R18

.cseg
.org 0


;***********инициализация порттов**************

ldi Temp,low(RAMEND)
out SPL,Temp
ldi Temp,high(RAMEND)
out SPH,Temp

ldi Temp,0b11110000						;настройка портов
out DDRD, Temp


;***********инициализация жки******************
rcall Paus              				; 20 мс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 мкс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 мкс
ldi Temp,0b00110000
out PortD, Temp
rcall Paus1								; 40 мкс
ldi Temp,0b00100000
out PortD, Temp
rcall Paus1								; 40 мкс



ldi Temp,0b00010000						;установка параметров
out PortD, Temp
ldi Temp,0b10000000
out PortD, Temp

ldi Temp,0b00000000						;выключение дисплея
out PortD, Temp
ldi Temp,0b10000000
out PortD, Temp

ldi Temp,0b00000000						;очистка дисплея
out PortD, Temp
ldi Temp,0b00010000
out PortD, Temp	
			
ldi Temp,0b00000000						;установка режима ввода данных
out PortD, Temp										
ldi Temp,0b01100000
out PortD, Temp

Inf:
		rjmp Inf					;основной цикл


;***********задержка  20mc***************************

Paus:									
			ldi t0,246
			ldi t1,80

loop:		
			dec t0
			brne loop
			dec t1
			brne loop
ret

;***********задержка 40 мкс***************************

Paus1:
			ldi t0,40
loop1:
			dec t0
			brne loop1
ret

Добавлено: Пт ноя 27, 2009 16:15:37
GP1
страниц 2-3 назад Pooher, ibiza11 и я выкладывали свои библы по работе с LCD посмотри там.

Добавлено: Вс ноя 29, 2009 19:42:39
HekuToc

Добавлено: Пн ноя 30, 2009 21:14:53
HekuToc
Если у дисплея подключить только Анод, Катод. Vcc Vdd и Vee, что он должен показывать.
Как можно проверить функциональность без МК?

Добавлено: Пн ноя 30, 2009 21:53:52
AI_Disable
HekuToc без мк полностью работоспособность не проверить. Но если подать питание и выкрутить контрастность на максимум, то верхняя строка ЖКИ покажет "чёрные квадраты".

Добавлено: Пн ноя 30, 2009 21:55:57
HekuToc
Я могу переменный на 100Ком поставить, а то на 40 нет.

Добавлено: Пн ноя 30, 2009 22:52:03
AI_Disable
100? 40? вроде как всю жизнь 10-тю Комами обходились...

Добавлено: Пн ноя 30, 2009 22:53:56
HekuToc
Дома, по ка что только на 100КОм. И тот из тостера...