| Автор |
Съобщение |
|
asp
Ранг: Популярен
Регистриран на: Сря Фев 22, 2006 6:27 pm Мнения: 376 Местоположение: plovdiv
|
И аз така смятам опита ми по потвърждава.
|
| Пон Юли 03, 2006 10:15 pm |
|
 |
|
daniel_stefanov
Ранг: Ориентиран
Регистриран на: Нед Мар 27, 2005 12:40 am Мнения: 206 Местоположение: София
|
Опитай по този начин. При мен LCDто е на порт D, а ти си го вързал на порт B. Може би в това е проблема. Това работи на 100%. Наистина 3 пин трябва да е на маса. Успех
|
| Пон Юли 03, 2006 10:26 pm |
|
 |
|
martines
Ранг: Минаващ
Регистриран на: Пет Юни 23, 2006 6:54 pm Мнения: 15
|
 hi
здравейте
благодаря за помощта,значи свързах 3ти пин към маса и сега при включване всички сегменти от първият ред са черни и се виждат  обаче си остава проблема с драйвера засега ,нямах време да го променям и да пробвам ;ако някой има някакъв работещ код моля да го пейстне ако трбва ще преместя лцд-то спрямо софтуера само и само да запали веднъж пък после ще си го преправям
|
| Вто Юли 04, 2006 12:59 am |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
По-горе казаха времената или командите, то другаде няма къде да сбъркаш, щом си оправи контраста
Успех с LCD-то 
|
| Вто Юли 04, 2006 1:10 am |
|
 |
|
daniel_stefanov
Ранг: Ориентиран
Регистриран на: Нед Мар 27, 2005 12:40 am Мнения: 206 Местоположение: София
|
Ето ти драйвер. Погледни вътре в него къде да вържеш пиновете на LCDто към PICа.
|
| Вто Юли 04, 2006 7:41 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Тъкмо се засилих да ти напиша примерче по твоя чертеж и установих че не става ясно на каква честота е кварца.
|
| Вто Юли 04, 2006 9:16 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Спретнах ти нещо.
За части от секундата на Протон е така
За твойта схема при 4 Mhz кварц.
|
| Вто Юли 04, 2006 9:32 am |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Упс обръщам внимание че моя начин 5 крак на дисплея "RW" е на маса.
|
| Вто Юли 04, 2006 9:57 am |
|
 |
|
denis_hasan
Ранг: Новодошъл
Регистриран на: Сря Окт 26, 2005 7:17 pm Мнения: 106 Местоположение: Sofia
|
щом първия ред ти е почернял заначи не ти е инициализиран равилно дисплея
пробвай да го инициализираш два пъти подред
|
| Вто Юли 04, 2006 12:15 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 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; } } |  |  |  |  |
Абе ти продължаваш да пропагандираш с тоя Proton, не правихме ли едно сравнение преди време за бързодействието и RAM-а в сравнение със C компилатор (ако не се лъжа C спечели 1ms а Proton падна с 9ms )... Пак не виждам какво толкова се превъзбуждаш затова че вместо да пишеш кода горе пишеш 4 реда код на Proton - да, верно, става просто, ти само с алфанумерични LCD-та ли работиш..ами ако се наложи да ползваш някой, който го нямаш вграден в Proton ще трябва да седнеш да си го напишеш  Кода горе може и да ти се струва сложен, но един път напишеш ли го сам ще светнеш колко по-удобно е отколкото тия 4 реда в Proton... Ако питаш как правя тоя прогрес-бар на CCS - ето единствената функция която викам (300 байта с инициализацията на LCD):
като style е число от 0 до 3, това са 4 различни прогрес-бара в един код...ако ми се наложи да го напиша за Cygnal или ARM например, правя едно просто Copy-Paste oт CCS във KEIL, IAR или notepad (GCC)
|
| Вто Юли 04, 2006 12:32 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
Ти започна
Има си графични дисплеи
Волтмер с барче
за части от секундата
Това е аналога на твоя ред Print At 2,1, Rep 255\ADB, Rep 32\16-ADB ' bar value
334 думи и 24 променливи
martines намаза здраво хексове за проби.
|
| Вто Юли 04, 2006 1:34 pm |
|
 |
|
denis_hasan
Ранг: Новодошъл
Регистриран на: Сря Окт 26, 2005 7:17 pm Мнения: 106 Местоположение: Sofia
|
интересно как с RW на маса четеш BUSY_FLAG 
|
| Вто Юли 04, 2006 2:11 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
RW се ползва задължително за графични дисплеи.
За знаковите не е задължителен.
Несъм имал грижи по този начин.
|
| Вто Юли 04, 2006 2:41 pm |
|
 |
|
denis_hasan
Ранг: Новодошъл
Регистриран на: Сря Окт 26, 2005 7:17 pm Мнения: 106 Местоположение: Sofia
|
на симулатора може и да нямаш грижи, ама на практика? 
|
| Вто Юли 04, 2006 2:48 pm |
|
 |
|
rumen
Ранг: Почетен член
Регистриран на: Чет Ное 25, 2004 3:42 pm Мнения: 913
|
За практиката говоря.
|
| Вто Юли 04, 2006 3:35 pm |
|
|