А резистор есть на подстройку контраста дисплея, именно так ведет себя дисплей без этого резистора или нужно провести подстройку контраста.При включении питания на индикаторе видны заполненные прямоугольники первых 8 разрядов.
Работа с ЖКИ на контроллере HD44780 и его аналогах
- Реклама
- Секретный кот
- Поставщик валерьянки для Кота
- Сообщения: 2106
- Зарегистрирован: Ср сен 17, 2008 14:32:15
- Откуда: Старые Васюки
- Контактная информация:
Программка для проверки ЖКИ.
Начальный код создан с помощью мастера 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);
}
};
}
- Реклама
Не надо истерики, JTAG отключите и будет вам щщасте.kybertech писал(а):Ребята спасайте !
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
- kybertech
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Пт окт 31, 2008 02:54:28
- Откуда: Украина
- Контактная информация:
имеете введу фьюз JTAGEN ?smac писал(а):Не надо истерики, JTAG отключите и будет вам щщасте.kybertech писал(а):Ребята спасайте !
На всех портах atmega16 дисплей работает и выводится информация !
а именно на порту C не хочет работать и даже я так понимаю не инициализируется - то есть при включении нижний ряд просто горят чёрные квадратики.
Дисплей 16х2.
У меня уже истерики начинаются ))))))))))))))
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
Я не знаю что-такое понипрог, но знаю что фьюз JTAGEN должен быть незапрограммирован т. е. согласно документации атмел - быть равен 1.kybertech писал(а): имеете введу фьюз JTAGEN ?
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
- kybertech
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Пт окт 31, 2008 02:54:28
- Откуда: Украина
- Контактная информация:
smac писал(а):Я не знаю что-такое понипрог, но знаю что фьюз JTAGEN должен быть незапрограммирован т. е. согласно документации атмел - быть равен 1.kybertech писал(а): имеете введу фьюз JTAGEN ?
Я прошиваю через PonyProg и в битах конфигурации установлена галочка на против JTAGEN я так понимаю он и есть выключен
Так он и не запрограмирован ! - это заводские настройки !
и всёравно экран не пашет на порту С
- kybertech
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Пт окт 31, 2008 02:54:28
- Откуда: Украина
- Контактная информация:
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
а кнопки и индикатор цепляйте куда хотите
фузы за это не отвечают
сконфигурируйте порты правильно и все
для пинов с кнопками на вход для индикатора на выход
АЦП тоже на вход
ну и естественно кварц к контроллеру подцепить
и совет на будущее
учите английский и читайте даташиты - очень полезно
в них много интересного написано
надеятся каждый раз что дядя вам все подскажет не надо
да и Вам польза будет при том оч большая
Удачи
- kybertech
- Нашел транзистор. Понюхал.
- Сообщения: 170
- Зарегистрирован: Пт окт 31, 2008 02:54:28
- Откуда: Украина
- Контактная информация:
Вот выкладываю всё как я делал и всёравно не работает на порту С.
Выкладываю скриншот из протеуса, там работает всё замечательно, а вот на собраном устройстве не работает.
Характеристики дисплея:
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 КБ) 1039 скачиваний


