А резистор есть на подстройку контраста дисплея, именно так ведет себя дисплей без этого резистора или нужно провести подстройку контраста.При включении питания на индикаторе видны заполненные прямоугольники первых 8 разрядов.
Работа с ЖКИ на контроллере HD44780 и его аналогах
Я не Сашок!!!
- Реклама
Без резистора вроде либо все знакоместа должен заливать чёрным, либо совсем ничего не отображать. А тут что-то среднее описывают.
Автор, код программы с инициализацией в студию
Будем исправлять ошибки
Будем исправлять ошибки
У меня с дисплеем от AV светился только 1 ряд.Секретный кот писал(а):Без резистора вроде либо все знакоместа должен заливать чёрным, либо совсем ничего не отображать. А тут что-то среднее описывают.
Я не Сашок!!!
- Сообщения: 14
- Зарегистрирован: Пт дек 15, 2006 07:14:06
Программка для проверки ЖКИ.
Начальный код создан с помощью мастера CVAVR.
Резистор 10К в цепи контраста есть. Все соединения контроллер - ЖКИ есть. Пробовал 2 ЖКИ.
#include <mega16>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd>
#include <stdio>
char lcd_buffer[17];
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0xAF;
DDRD=0x50;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
{
if (PIND.0==0)
{PORTD.4=1;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"1");
lcd_puts(lcd_buffer);
}
if (PIND.1==0)
{
PORTD.4=0;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"01");
lcd_puts(lcd_buffer);
}
if (PIND.2==0)
{
PORTD.6=1;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"2");
lcd_puts(lcd_buffer);
}
if (PIND.3==0)
{
PORTD.6=0;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"02");
lcd_puts(lcd_buffer);
}
};
}
Начальный код создан с помощью мастера CVAVR.
Резистор 10К в цепи контраста есть. Все соединения контроллер - ЖКИ есть. Пробовал 2 ЖКИ.
#include <mega16>
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd>
#include <stdio>
char lcd_buffer[17];
void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0xAF;
DDRD=0x50;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
lcd_init(16);
while (1)
{
if (PIND.0==0)
{PORTD.4=1;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"1");
lcd_puts(lcd_buffer);
}
if (PIND.1==0)
{
PORTD.4=0;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"01");
lcd_puts(lcd_buffer);
}
if (PIND.2==0)
{
PORTD.6=1;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"2");
lcd_puts(lcd_buffer);
}
if (PIND.3==0)
{
PORTD.6=0;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd_buffer,"02");
lcd_puts(lcd_buffer);
}
};
}
- Реклама
- Сообщения: 5
- Зарегистрирован: Вс фев 15, 2009 20:02:38
Ребята спасайте !
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Не надо истерики, JTAG отключите и будет вам щщасте.kybertech писал(а):Ребята спасайте !
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
имеете введу фьюз JTAGEN ?smac писал(а):Не надо истерики, JTAG отключите и будет вам щщасте.kybertech писал(а):Ребята спасайте !
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
- Сообщения: 459
- Зарегистрирован: Вс июн 01, 2008 12:16:38
Я не знаю что-такое понипрог, но знаю что фьюз JTAGEN должен быть незапрограммирован т. е. согласно документации атмел - быть равен 1.kybertech писал(а): имеете введу фьюз JTAGEN ?
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
smac писал(а):Я не знаю что-такое понипрог, но знаю что фьюз JTAGEN должен быть незапрограммирован т. е. согласно документации атмел - быть равен 1.kybertech писал(а): имеете введу фьюз JTAGEN ?
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
Так он и не запрограмирован ! - это заводские настройки !
и всёравно экран не пашет на порту С
dt_andrew писал(а):В понипрог галочку фуза JTAG надо убрать - однозначно
иначе порт С программируется на работу с JTAG для отладки
сам наступал на эти грабли
иногда (редко правда но у меня было) при сбои при программирование от почему то включался сам
А можете подсказать как мне установить фьюзы чтобы
я мог нормально подключить дисплей на порт С кнопки на порт D
на порту а у меня АЦП и включить работу от внешнего кварца на 4 МГц.
Просто вчера в понипрог снял галочку JTAGEN после чего программатор просто перестал видеть контроллер вылетала ошибка постоянно с кодом "-24"
фузы для МЕГИ16
это от другого моего проекта но не важно
http://radiokot.ru/forum/viewtopic.php?p=176287#176287
там правда для кварца на 8 но один хрен что 4 или 8
а кнопки и индикатор цепляйте куда хотите
фузы за это не отвечают
сконфигурируйте порты правильно и все
для пинов с кнопками на вход для индикатора на выход
АЦП тоже на вход
ну и естественно кварц к контроллеру подцепить
и совет на будущее
учите английский и читайте даташиты - очень полезно
в них много интересного написано
надеятся каждый раз что дядя вам все подскажет не надо
да и Вам польза будет при том оч большая
Удачи
это от другого моего проекта но не важно
http://radiokot.ru/forum/viewtopic.php?p=176287#176287
там правда для кварца на 8 но один хрен что 4 или 8
а кнопки и индикатор цепляйте куда хотите
фузы за это не отвечают
сконфигурируйте порты правильно и все
для пинов с кнопками на вход для индикатора на выход
АЦП тоже на вход
ну и естественно кварц к контроллеру подцепить
и совет на будущее
учите английский и читайте даташиты - очень полезно
в них много интересного написано
надеятся каждый раз что дядя вам все подскажет не надо
да и Вам польза будет при том оч большая
Удачи
C кнопками и АЦП я розабрался да и в протеусе весь проэкт работает отлично и на экран выводит и кнопки работают и измерения все. в общем всё работает а зашил в контроллер экран не работает. датащит я почитаю обязательно просто мне срочно нада.
dt_andrew писал(а):с экраном тяжело помочь не видя схемы подключения
вашего кода
и типа индикатора
Я пробывал просто собрать устройство только что бы выводило на экран чё-нить подключеный к порту С и всёравно не работало.
Сейчас всё подготовлю и скину код, модель экрана и схему подключения.
ага ОК
Последний раз редактировалось kybertech Пн мар 09, 2009 22:31:45, всего редактировалось 1 раз.
Вот выкладываю всё как я делал и всёравно не работает на порту С.
Выкладываю скриншот из протеуса, там работает всё замечательно, а вот на собраном устройстве не работает.
Характеристики дисплея:
BC1602AGPLCH$
Bolymin QC OK
081001002 081119
- это всё что на нём написано.
вот тут можно глянуть на его внешний вид http://www.eltis.ua/pics/pic_61e2811b43 ... 1e5f3a.jpg
На МК всегда фьюзы были выставлены по умолчанию, то есть заводсткие.
ещё раз напомню что на других портах дисплей работает нормально.
Как по мне так кажется что всё дело во фьюзах.
И есть ли зависимость устанавливать фьюзы до прошивки или после.
Если дело во фьюзах покажите плз. на примере как они должны быть установлены.
Выкладываю скриншот из протеуса, там работает всё замечательно, а вот на собраном устройстве не работает.
Характеристики дисплея:
BC1602AGPLCH$
Bolymin QC OK
081001002 081119
- это всё что на нём написано.
вот тут можно глянуть на его внешний вид http://www.eltis.ua/pics/pic_61e2811b43 ... 1e5f3a.jpg
На МК всегда фьюзы были выставлены по умолчанию, то есть заводсткие.
ещё раз напомню что на других портах дисплей работает нормально.
Как по мне так кажется что всё дело во фьюзах.
И есть ли зависимость устанавливать фьюзы до прошивки или после.
Если дело во фьюзах покажите плз. на примере как они должны быть установлены.
- Вложения
-
- test.c
- Исходник который выводит на экран текст.
- (2.6 КБ) 546 скачиваний
-
- podkluchenie.jpg
- Скриншот из протеуса, там видно как я подключаю экранчик.
- (67.65 КБ) 1040 скачиваний


