Отговори на тема  [ 43 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща
проблем с LCD 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Сря Фев 22, 2006 6:27 pm
Мнения: 376
Местоположение: plovdiv
Мнение 
Wise написа:
Просто със забит 3 пин на + няма да се вижда , защото е на минимум контраста
Ако е през 2 К на маса ще се вижда малко бледичко. Забучваш директно на маса и нямаш грижи. :wink:

//става дума за първата схема на питащия

И аз така смятам опита ми по потвърждава.


Пон Юли 03, 2006 10:15 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Нед Мар 27, 2005 12:40 am
Мнения: 206
Местоположение: София
Мнение 
Опитай по този начин. При мен LCDто е на порт D, а ти си го вързал на порт B. Може би в това е проблема. Това работи на 100%. Наистина 3 пин трябва да е на маса. Успех


Прикачени файлове:
lcd.JPG
lcd.JPG [ 211.61 KiB | Прегледано 3172 пъти ]
Пон Юли 03, 2006 10:26 pm
Профил
Ранг: Минаващ
Ранг: Минаващ

Регистриран на: Пет Юни 23, 2006 6:54 pm
Мнения: 15
Мнение hi
здравейте
благодаря за помощта,значи свързах 3ти пин към маса и сега при включване всички сегменти от първият ред са черни и се виждат :) обаче си остава проблема с драйвера засега ,нямах време да го променям и да пробвам ;ако някой има някакъв работещ код моля да го пейстне ако трбва ще преместя лцд-то спрямо софтуера само и само да запали веднъж пък после ще си го преправям


Вто Юли 04, 2006 12:59 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Пет Авг 19, 2005 11:38 am
Мнения: 978
Местоположение: Europe -> BG
Мнение 
По-горе казаха времената или командите, то другаде няма къде да сбъркаш, щом си оправи контраста :wink:
Успех с LCD-то :)

_________________
един факт :-)
Съжалявам , че исках да помогна ...


Вто Юли 04, 2006 1:10 am
Профил ICQ
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Нед Мар 27, 2005 12:40 am
Мнения: 206
Местоположение: София
Мнение 
Ето ти драйвер. Погледни вътре в него къде да вържеш пиновете на LCDто към PICа.


Прикачени файлове:
LCD.C [5.62 KiB]
356 пъти
Вто Юли 04, 2006 7:41 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Тъкмо се засилих да ти напиша примерче по твоя чертеж и установих че не става ясно на каква честота е кварца.


Вто Юли 04, 2006 9:16 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Спретнах ти нещо.
За части от секундата на Протон е така :lol:
За твойта схема при 4 Mhz кварц.


Прикачени файлове:
proba.zip [31.22 KiB]
269 пъти
lcd.jpg
lcd.jpg [ 40.53 KiB | Прегледано 3139 пъти ]
Вто Юли 04, 2006 9:32 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Упс обръщам внимание че моя начин 5 крак на дисплея "RW" е на маса.


Вто Юли 04, 2006 9:57 am
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Окт 26, 2005 7:17 pm
Мнения: 106
Местоположение: Sofia
Мнение 
щом първия ред ти е почернял заначи не ти е инициализиран равилно дисплея
пробвай да го инициализираш два пъти подред


Вто Юли 04, 2006 12:15 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Окт 07, 2004 1:22 pm
Мнения: 1949
Местоположение: София
Мнение 
Код:
#define lcd_type 2           // 0=5x7, 1=5x10, 2=2 lines
#define lcd_line_two 0x40    // LCD RAM address for the second line

#byte LCD_DATA =  0xF80
#byte LCD_DATA_TRIS = 0xF92
#byte LCD_CTRL_TRIS = 0xF93

#define  RS    3
#define  EN    2

#bit  LCD_RS   =  0xF81.3
#bit  LCD_EN   =  0xF81.2


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};

void lcd_send_nibble( BYTE n ) {
#use FAST_IO(a)
      LCD_DATA = n;
      delay_cycles(1);
      LCD_EN = 1;
      delay_us(2);
      LCD_EN = 0;
}


void lcd_send_byte( BYTE address, BYTE n ) {

      LCD_RS = 0;
      delay_us(500);
      LCD_RS = address;
      delay_cycles(1);
      LCD_EN = 0;
      lcd_send_nibble(n >> 4);
      lcd_send_nibble(n & 0xf);
}


void lcd_init() {
    BYTE i;
    LCD_DATA_TRIS = 0xF0;
    bit_clear(LCD_CTRL_TRIS,RS);
    bit_clear(LCD_CTRL_TRIS,EN);
    LCD_RS = 0;
    LCD_EN = 0;
    delay_ms(15);
    for(i=1;i<=3;++i) {
       lcd_send_nibble(3);
       delay_ms(5);
    }
    lcd_send_nibble(2);
    for(i=0;i<=3;++i)
       lcd_send_byte(0,LCD_INIT_STRING[i]);
    delay_ms(20);
}


void lcd_gotoxy( BYTE x, BYTE y) {
   BYTE address;

   if(y!=1)
     address=lcd_line_two;
   else
     address=0;
   address+=x-1;
   lcd_send_byte(0,0x80|address);
}

void lcd_putc( char c) {
   switch (c) {
     case '\f'   : lcd_send_byte(0,1);
                   delay_ms(2);
                                           break;
     case '\n'   : lcd_gotoxy(1,2);        break;
     case '\b'   : lcd_send_byte(0,0x10);  break;
     default     : lcd_send_byte(1,c);     break;
   }
}




rumen написа:
За части от секундата на Протон е така


Абе ти продължаваш да пропагандираш с тоя Proton, не правихме ли едно сравнение преди време за бързодействието и RAM-а в сравнение със C компилатор (ако не се лъжа C спечели 1ms а Proton падна с 9ms )... Пак не виждам какво толкова се превъзбуждаш затова че вместо да пишеш кода горе пишеш 4 реда код на Proton - да, верно, става просто, ти само с алфанумерични LCD-та ли работиш..ами ако се наложи да ползваш някой, който го нямаш вграден в Proton ще трябва да седнеш да си го напишеш :wink: Кода горе може и да ти се струва сложен, но един път напишеш ли го сам ще светнеш колко по-удобно е отколкото тия 4 реда в Proton... Ако питаш как правя тоя прогрес-бар на CCS - ето единствената функция която викам (300 байта с инициализацията на LCD):
Код:
void bargraph(BYTE percent,int8 min, int8 max, int8 style)

като style е число от 0 до 3, това са 4 различни прогрес-бара в един код...ако ми се наложи да го напиша за Cygnal или ARM например, правя едно просто Copy-Paste oт CCS във KEIL, IAR или notepad (GCC)


Прикачени файлове:
Коментар на файл: Ето как е закачено LCD-то
IR_AMP.jpg
IR_AMP.jpg [ 71.84 KiB | Прегледано 3168 пъти ]
Вто Юли 04, 2006 12:32 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
Ти започна 8)
Има си графични дисплеи

Волтмер с барче
за части от секундата :wink:

Това е аналога на твоя ред Print At 2,1, Rep 255\ADB, Rep 32\16-ADB ' bar value


334 думи и 24 променливи

martines намаза здраво хексове за проби.


Прикачени файлове:
proba.zip [47.89 KiB]
288 пъти
VOLTMER.jpg
VOLTMER.jpg [ 176.07 KiB | Прегледано 3150 пъти ]
Вто Юли 04, 2006 1:34 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Окт 26, 2005 7:17 pm
Мнения: 106
Местоположение: Sofia
Мнение 
интересно как с RW на маса четеш BUSY_FLAG :oops:


Вто Юли 04, 2006 2:11 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
RW се ползва задължително за графични дисплеи.
За знаковите не е задължителен.
Несъм имал грижи по този начин.


Вто Юли 04, 2006 2:41 pm
Профил
Ранг: Новодошъл
Ранг: Новодошъл

Регистриран на: Сря Окт 26, 2005 7:17 pm
Мнения: 106
Местоположение: Sofia
Мнение 
rumen написа:
RW се ползва задължително за графични дисплеи.
За знаковите не е задължителен.
Несъм имал грижи по този начин.


на симулатора може и да нямаш грижи, ама на практика? :oops:


Вто Юли 04, 2006 2:48 pm
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Чет Ное 25, 2004 3:42 pm
Мнения: 913
Мнение 
За практиката говоря.


Прикачени файлове:
EPSN0814a.jpg
EPSN0814a.jpg [ 42.35 KiB | Прегледано 3138 пъти ]
Вто Юли 04, 2006 3:35 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 43 мнения ]  Отиди на страница Предишна  1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни