Свежие обсуждения
Микроконтроллеры

Как выводить информацию на ЖКИ(24х2, контроллер HD44780)

1 5

Схема четырёхпроводная.
http://i068.radikal.ru/0909/8e/86ffcd4bc12f.png
Неподключенные ноги висят. Прикол в том что прога написанная на микроСИ выводит на экран что угодно, а на ццс-си нет. Так что с подключением всё нормально. Моя тока в протеусе и работает.

 

Vladikas: Неподключенные ноги висят.
я бы их заземлил (на индикаторе)

 

Прям на землю или через резисторы?

 

у меня прямо на землю

 

Ок, всё заработало. На другом экране и на другом контроллере
Но думаю, что ошибка была в том, что включена подтяжка на порту, а нога RW висела в воздухе у МК. Заморочки компилятора...

Сейчас другой вопрос. Написал прогу, которая выводит все символы на первом знакоместе, а далее показывает номер этого символа.

	for(;;)
{
for(i = 0;i=255;++i) {
lcd_putc(i);//показать символ с таким номером
lcd_gotoxy(3,1);
lcd_putc("Simvol# ");
sprintf(mystring,"%3u",i);//преобразовать переменную в строку
lcd_gotoxy(11,1);
lcd_putc(mystring[0]);//первый знак
lcd_putc(mystring[1]);//второй знак
lcd_putc(mystring[2]);//третий знак
delay_ms(200);
lcd_putc("\f"); //lcd clear
}
}
Вопрос - можно ли строку (массив символов) как-то иначе вывести? Или только так?

 

Я выводил так, как указанно выше. Правда... чуть сложнее

void lcd_VarOut(int16 OutVar) //Вывод на ЖК числа
{
byte buffer[8]={0,0,0,0,0,0,0,0};
unsigned char i;

//sprintf(buffer,"%3.0w",OutVar);
sprintf(buffer,"%lu",OutVar);
i=0;
while(i<8) {if (buffer[i]>32) lcd_putc(buffer[i]);
i++;
restart_wdt();
}
}

 

Ясненько, мерси.

 

Начинаю осваивать PIC18F14K50. Собрал плату, подключил ЖК-дисплей RC2002C. Я всегда ипользовал стандартную распиновку ножек на МК для подключения дисплея и все работало. Теперь мне пришлось изменить назначение ножек. Поковырялся в драйвере LCD.C и написал следующие строки:

#define LCD_TYPE 2 //2 lines

#define LCD_DATA_PORT getenv("SFR:PORTC")

#define LCD_ENABLE_PIN PIN_C4
#define LCD_RS_PIN PIN_C6
#define LCD_RW_PIN PIN_C7
#define LCD_DATA4 PIN_C0
#define LCD_DATA5 PIN_C1
#define LCD_DATA6 PIN_C2
#define LCD_DATA7 PIN_C3

#include <LCD.C>

Но после прошивки МК и его запуска на дисплее так ничего и не появилось
После подачи питания на дисплее зажигается черная верхняя строка (контрастность регулировал).
После того, как МК начинает инициализацию ЖКИ, то верхняя строка становиться светлее и во втрой строке верхние 3 строчки пикселей также зажигаются черным во всей второй строке.

Вчера целый вечер промучался, но так и не понял в чем дело. Тут еще и несколько факторов: МК, ЖКИ-дисплей, изменение распиновки, с которыми ранее я не имел дела. Да и компилятор (PIСС ССS) я обновил.

МК проверял, вывожу на одну ножку 0/1 через 2 секунды. Работает. Уже и не знаю, в какую сторону копать . В моем Протеусе этого МК нету

 

На свежую голову обнаружил, что перепутал провода к линиям D6 и D7 индикатора. Перепаял - все заработало!

Но заметил еще один глюк: компилятор CCS неправильно выставляет слово конфигурации для PIC18F14K50, в том числе и тип тактового генератора. Приходится идти в настройки MPLabs и вручную изменять тип кварца после каждой компиляции.

 
1 5