реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> подключение lcd FDCC2004A к atmega8, простой код, а не пашет ничего
failguru
сообщение Nov 1 2011, 14:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



простой код(выводит символ на lcd), а не пашет ничего
вот код на cvavr:

#include <io.h>
#include <delay.h>
#define E PORTC.2
#define RS PORTC.0
#define RW PORTC.1
#define port PORTD
int chkbf(){ // проверка флага занятости
DDRD=0x00;
RS=0;
RW=1;
E=0;
delay_us(2);
port=0xff;
delay_us(2);
E=1;
delay_us(2);
E=0;
return(PIND.7);
}
void wrcmd(int cmd){ // пишу команду
DDRD=0xff;
while(chkbf());
RS=0;
RW=0;
E=0;
delay_us(2);
port=cmd;
delay_us(2);
E=1;
delay_ms(2);
E=0;
}
void main(){
DDRC=0xff;
PORTC=0x00;
delay_ms(100);

wrcmd(0b00111000); // инициализация
delay_us(40);
wrcmd(0b00001111);
delay_us(40);
wrcmd(0b00000001);
delay_ms(2);
wrcmd(0b00000110);
delay_us(40);

DDRD=0xff; // пишу символ
while(chkbf());
RS=0;
RW=1;
E=0;
delay_us(2);
PORTD=0b00110001;
delay_us(2);
E=1;
delay_us(2);
E=0;
delay_us(50);
}

че нитак??? v0 для контрастности кинул на землю через резистор 1 кОм вроде нормал
Go to the top of the page
 
+Quote Post
SortoVaritu
сообщение Nov 1 2011, 14:55
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 4-11-10
Пользователь №: 60 647



Контроллер SPLCD780D?
Go to the top of the page
 
+Quote Post
failguru
сообщение Nov 1 2011, 15:11
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



S6A0069 самсунговский помойму,
даташит даже нашел, прикрепляю
Прикрепленные файлы
Прикрепленный файл  6a0069.pdf ( 369 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
SortoVaritu
сообщение Nov 1 2011, 15:26
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 4-11-10
Пользователь №: 60 647



Код
DDRD=0x00; - выставляете порт D как выход
RS=0;
RW=1;
E=0;
delay_us(2);
port=0xff; - включаете подтяжку на порт D. почему после 2мкс?
delay_us(2);
E=1;
delay_us(2);
E=0;
return(PIND.7);



http://www.hantronix.com/files/down/splc780d.pdf
пункт 5.4 - подробно расписан пример написания слова на дисплее
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2011, 15:29
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(SortoVaritu @ Nov 1 2011, 19:26) *
Код
DDRD=0x00; - выставляете порт D как ...

ВХОД


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
SortoVaritu
сообщение Nov 1 2011, 15:33
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 4-11-10
Пользователь №: 60 647



Цитата(failguru @ Nov 1 2011, 18:11) *
S6A0069 самсунговский помойму,
даташит даже нашел, прикрепляю


именно поэтому лучше писать не жки а контроллер, так как в данном случае от жки мало что зависит

DDRD=0x00; - выставляете порт D как вход... это я очепятался
Go to the top of the page
 
+Quote Post
failguru
сообщение Nov 1 2011, 15:55
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



да, спасибо, поставил в начало функции проверки бизи флага, но это не спасло(((((((((

Изчезли темные квадраты!!!! и появился курсор в непонятном месте! УЖЕ ЧТОТО!!!!

Вот код переделал:

Код
#include <io.h>
#include <delay.h>
#define E PORTC.2
#define RS PORTC.0
#define RW PORTC.1
#define port PORTD
int chkbf(){    // проверка флага занятости
    DDRD=0x00;
    port=0xff;
    RS=0;
    RW=1;
    E=0;
    delay_us(2);
    E=1;
    delay_us(2);
    E=0;
    return(PIND.7);    
}
void wrcmd(int cmd){    // пишу команду
    DDRD=0xff;
    //while(chkbf());    
    RS=0;
    RW=0;
    E=0;
    delay_us(2);
    port=cmd;
    delay_us(2);
    E=1;
    delay_ms(2);
    E=0;
}
void main(){
    DDRC=0xff;
    PORTC=0x00;
    delay_ms(20);
    
    wrcmd(0b00111000);  // инициализация
    delay_ms(5);
    wrcmd(0b00001110);
    delay_us(40);
    //wrcmd(0b00000001);
    //delay_ms(2);
    wrcmd(0b00000110);
    delay_us(40);

        DDRD=0xff;    // пишу символ
        while(chkbf());
        RS=0;
        RW=1;
        E=0;
        delay_us(2);
        PORTD=0b1001010111;
        delay_us(2);
        E=1;
        delay_us(2);
        E=0;
        delay_us(50);
}
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2011, 16:04
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата
Изчезли темные квадраты!!!! и появился курсор в непонятном месте! УЖЕ
ЧТОТО!!!!

Ну и поставьте его на базу


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
failguru
сообщение Nov 1 2011, 16:08
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



в //пишу символ поставил RS=1 RW=0 ну как и должно быть, стал писать но вместо символа - черный квадрат
help.gif
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2011, 16:39
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(failguru @ Nov 1 2011, 20:08) *
в //пишу символ поставил RS=1 RW=0 ну как и должно быть, стал писать но вместо символа - черный квадрат
help.gif


Код
DDRD=0xff;    // пишу символ
while(chkbf());
        RS=1;      
        RW=0;
        E=1;
PORTD=0x30;
        delay_us(2);
        E=0
       delay_us(2);
        E=1;
}


А так


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
failguru
сообщение Nov 1 2011, 16:53
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



тоже самое angry.gif

Сообщение отредактировал failguru - Nov 1 2011, 16:55
Go to the top of the page
 
+Quote Post
SortoVaritu
сообщение Nov 1 2011, 17:05
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 4-11-10
Пользователь №: 60 647



А какой символ вообще должен высветиться... Какой у контроллера знакогенератор?
У вас много лишних задержек. Зря закоментили проверку флага занятости в процедуре записи.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2011, 17:07
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(failguru @ Nov 1 2011, 20:53) *
тоже самое angry.gif

А тупую без while(chkbf());

Цитата(SortoVaritu @ Nov 1 2011, 21:05) *
А какой символ вообще должен высветиться... Какой у контроллера знакогенератор?
У вас много лишних задержек. Зря закоментили проверку флага занятости в процедуре записи.


30 в любом 0
И в его коде вообще ничего не пишется сразу 2 ошибки

Код
DDRD=0xff;    // пишу символ
        while(chkbf());
        RS=0;
        RW=1;
        E=0;
        delay_us(2);
        PORTD=0b1001010111;
        delay_us(2);
        E=1;
        delay_us(2);
        E=0;
        delay_us(50);


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
failguru
сообщение Nov 1 2011, 17:15
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 1-11-11
Пользователь №: 68 094



Да, заработало disco.gif . Я убрал while(chkbf()); из функции записи команд - лсд инициализировался. Убрал из вывода символа, тоже заработало. Странно, а что проверку занятости не надо делать, или я ее неправильно делаю wacko.gif
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 1 2011, 17:17
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



Цитата(failguru @ Nov 1 2011, 21:15) *
Да, заработало disco.gif . Я убрал while(chkbf()); из функции записи команд - лсд инициализировался. Убрал из вывода символа, тоже заработало. Странно, а что проверку занятости не надо делать, или я ее неправильно делаю wacko.gif

Не правильно - читайте выложенный Вами же DS и уберите лишние задержки


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 18:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01514 секунд с 7
ELECTRONIX ©2004-2016