В "идеале должно выглядеть так ( раньше так и выглядело с этим индикатором)А теперь это выглядит так С другими индикаторами этой же линейки всё показывает как и прежде, т.е - как на первой картинкеvitalik_1984 писал(а):А не пробовали весь экран заполнять? может понятнее картинка станет?
Работа с ЖКИ на контроллере HD44780 и его аналогах
Последний раз редактировалось I-Basil Пн авг 06, 2012 20:23:49, всего редактировалось 1 раз.
"... Не НАДО изобретать велосипед, а НЕОБХОДИМО!"
- Реклама
Чет я не пойму у нас что новый формат вложений появился, что я вложение как цитату вижу, а не как ссылку 
В поисках истины человек развивается.
Сорри, уже исравил - вложения активны 
"... Не НАДО изобретать велосипед, а НЕОБХОДИМО!"
Неужели никто не знает - где собака порылась
?
"... Не НАДО изобретать велосипед, а НЕОБХОДИМО!"
Вы показали на фото рабочее устройство вместо того, чтобы вывести все заполненные символы, чтобы было понятно матрица это или что.
И не нужно редактировать , нужно фото реальное
Тем более вы сами продиагностировали, если с этой же программой другой дисплей работает, то это точно мертв.
И не нужно редактировать , нужно фото реальное
Тем более вы сами продиагностировали, если с этой же программой другой дисплей работает, то это точно мертв.
В поисках истины человек развивается.
- Реклама
Не знаю, может быть так понятнее
МК с платы удалил, чтобы были видны те "квадраты, что пока ещё "остались в живых"... Кстати, обратил внимание, что при включении питания проскакивают и незаполненные ячейки, но тут же сразу и исчезают
З.Ы : ТО фото редактировалось из-за лени
- не охота было вновь вставлять "дефективного" 
МК с платы удалил, чтобы были видны те "квадраты, что пока ещё "остались в живых"... Кстати, обратил внимание, что при включении питания проскакивают и незаполненные ячейки, но тут же сразу и исчезают
З.Ы : ТО фото редактировалось из-за лени
"... Не НАДО изобретать велосипед, а НЕОБХОДИМО!"
На первом фото видно что не заполнена первая строчка на втором- нижняя А верхняя полностью заполнена.Значит уже понятно, что это не из-за плохого контакта матриц.Странная ситуация, конечно, больше похоже на то, что инициализация как то неправильно проходит.Пробовали прижать неиспользуемые выводы к минусу?Я так понял, что у вас по четырех битной шине подключено?
В поисках истины человек развивается.
Нет, не пробовал. Подключено по четырёх битной шине... Жаль, что у меня нет свободного ( под разборку) индикатора, уж тогда бы было проще вычислить - в чём причина
"... Не НАДО изобретать велосипед, а НЕОБХОДИМО!"
Помогите с дисплеем wh1602. Не выводит русский язык. Пробовал с #pragma +\- не хочет...
Потом скачал lcd_rus.h начал выводить вообще полный бред, и буквы бегут влево
Вывожу так чищу, gotoxy, putsf,
Английский выводит нормально


Потом скачал lcd_rus.h начал выводить вообще полный бред, и буквы бегут влево
Вывожу так чищу, gotoxy, putsf,
Английский выводит нормально


Только что в соседней теме ответили
Это проблема компилятора
библиотека от Danko
Если это не поможет, то можно вывести в цикле все символы по очереди от 1 до 255 и посмотреть какие отвечают за русские буквы.
Вообще еще и в даташите описано что в каких ячейках хранятся.
Это проблема компилятора
библиотека от Danko
Если это не поможет, то можно вывести в цикле все символы по очереди от 1 до 255 и посмотреть какие отвечают за русские буквы.
Вообще еще и в даташите описано что в каких ячейках хранятся.
В поисках истины человек развивается.
Как раз эту библиотеку от данко я и скачал... Попробую цикл...vitalik_1984 писал(а):Только что в соседней теме ответили
Это проблема компилятора
библиотека от Danko
Если это не поможет, то можно вывести в цикле все символы по очереди от 1 до 255 и посмотреть какие отвечают за русские буквы.
Вообще еще и в даташите описано что в каких ячейках хранятся.
а родную .lib внутри папки установки поменяли?
В поисках истины человек развивается.
- Сообщения: 145
- Зарегистрирован: Пн дек 07, 2009 19:29:29
подскажите есть какой нибуть дисплей размером 4х2 см чтоб цепануть его к Avr ?
Это наверно 8x2 вам размер экрана?вот дисплейчик или всего дисплея?Если всего дисплея, то только какие нибудь телефонные подбирать.
В поисках истины человек развивается.
Доброго времени суток Ув. Радиокоты!
Есть Дисплейчик WH1602 и контроллер Мега8(частота 8 МГц)
Вот бьюсь над ним уже очень длительное время, пытаюсь приручить.
А ему хоть бы что!
Что только не пытался в него посылать, уже кучу статей и даташитов перечитал.
Код то усложнял, то упрощал. Уже в элементарщине записал все.
Не отвечает он мне взаимностью! Прям горе какое-то
Задача - выдать на него единичку!
Подскажите где ошибки?

Есть Дисплейчик WH1602 и контроллер Мега8(частота 8 МГц)
Вот бьюсь над ним уже очень длительное время, пытаюсь приручить.
А ему хоть бы что!
Что только не пытался в него посылать, уже кучу статей и даташитов перечитал.
Код то усложнял, то упрощал. Уже в элементарщине записал все.
Не отвечает он мне взаимностью! Прям горе какое-то
Задача - выдать на него единичку!
Подскажите где ошибки?
Код: Выделить всё
include "m8def.inc"
.CSEG
ldi r16,0b11111111 ;Настройка портов
out DDRB,r16
ldi r16,0b00000111
out DDRD,r16
;Инициализация
rcall Delay30m ;Ждем 30 мс
ldi r16,0b00110000 ;Шина 8 бит 2 строки
out PortB,r16
ldi r16,0b00000000
out PortB,r16
rcall Delay40mk ;Ждем 40 мкс
ldi r16,0b00110000 ;Шина 8 бит 2 строки
out PortB,r16
ldi r16,0b00000000
out PortB,r16
rcall Delay40mk ;Ждем 40 мкс
ldi r16,0b00110000 ;Шина 8 бит 2 строки
out PortB,r16
ldi r16,0b00000000
out PortB,r16
rcall Delay40mk ;Ждем 40 мкс
ldi r16,0b00111000 ;Установка параметров
out PortB,r16
ldi r16,0b00001000 ;Выключение дисплея
out PortB,r16
ldi r16,0b00001100 ;Включение дисплея
out PortB,r16
ldi r16,0b00000001 ;Очистка дисплея
out PortB,r16
ldi r16,0b00010100 ;Сдвинули курсор вправо
out PortB,r16
ldi r16,0b00000110 ;Установка режима ввода данных
out PortB,r16
ldi r16,0b00000100 ;RS=1
out PortD,r16
ldi r16,0b00110001 ;Записали "1"
out PortB,r16
B:
rjmp B
Delay30m: ;Задержка 30 мс
ldi r18, 2
ldi r19, 56
ldi r20, 173
L1: dec r20
brne L1
dec r19
brne L1
dec r18
brne L1
nop
ret
Delay40mk: ;Задержка 40 мкс
ldi r18, 106
L2: dec r18
brne L2
ret

Дисплей то как раз и отвечает вам взаимностью.Вы игнорируете даташит, требования для корректной работы, а он в свою очередь игнорирует вас.
Вот я уже помог парню,который тоже мучался.Можно как идею посмотреть и доработать.
Читать отсюда
Ошибка примерно похожа на вашу.
Вот я уже помог парню,который тоже мучался.Можно как идею посмотреть и доработать.
Читать отсюда
Ошибка примерно похожа на вашу.
В поисках истины человек развивается.
Судя по коду вы нарушили все правила работы с экранчиком.
1. Каждая команда сопровождается строб импульсом по линии Е.
2. Для выполнения посланной команды надо подождать какоето время, т.е. вызвать подпрограмму задержки.
1. Каждая команда сопровождается строб импульсом по линии Е.
2. Для выполнения посланной команды надо подождать какоето время, т.е. вызвать подпрограмму задержки.
- Сообщения: 574
- Зарегистрирован: Вт ноя 02, 2010 17:46:37
Подскажите, как вывести число с плавающей точкой.
делаю так но он что-то нечего не выводит (при целых числах работает )
Спойлер
Код: Выделить всё
#include <mega128.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD functions
#asm
.equ __lcd_port=0x15 ;PORTC // Для изменения порта подключения вставляем вместо .equ __lcd_port=0x15 ;PORTC (исходя из даташита стр. Register Summary)
#endasm // .equ __lcd_port=0x1B ;PORTA или .equ __lcd_port=0x18 ;PORTB или .equ __lcd_port=0x12 ;PORTD (даташит atmega16)
#include <lcd.h>
float x; //
char lcd_buffer[33];
void lcd_show(void)
{
x=0.3;
lcd_gotoxy(0,1);
sprintf(lcd_buffer,"x=%f", x);
lcd_puts(lcd_buffer);
}
void main(void)
{
lcd_init( 16 ); /* инициализация на 16 символов */
while (1) {
lcd_show();
};
// Place your code here
}
Код: Выделить всё
int x; //
...
sprintf(lcd_buffer,"x=%u", x);
...Вроде правильно.Киньте весь проект.делаю так но он что-то нечего не выводит (при целых числах работает )
В Протеусе работает а на реальном дисплее - нет (((
Возможно он работает, но вы не видите, что там с контрастом?
задержки не могут быть большими, ведь все происходит лишь по спаду сигнала Е , то что происходит между этими спадами уже не важно.
Может быть такое что задержки слишком длительные?(это всеобщий вопрос по ЖК)
А вот слишком короткая пауза может привести к тому, что будут пропущены некоторые команды.
В листке данных о контроллере дисплея или самого дисплея все необходимые паузы описаны.
В поисках истины человек развивается.



