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

 
 
> подключение 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
 
Start new topic
Ответов
failguru
сообщение Nov 3 2011, 13:36
Сообщение #2


Участник
*

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



Согласен полностью) но как задержку в 120нсек сделать???

Когда задаешь двустрочный, он ничего не отображает((((

Код
void main(){
    DDRC=0xff;
    PORTC=0x00;
    delay_ms(20);
    
    wrcmd(0b00111000);  // инициализация двустрочного режима
    delay_ms(2);
    wrcmd(0b00001110);
    delay_us(40);
    wrcmd(0b00000001);
    delay_ms(2);
    wrcmd(0b00000110);
    delay_us(40);
    wrcmd(0b11000000);  //переход на вторую строчку
    delay_us(2);
    
    for(i=0;i<10;i++)wrsym(48+i);
}


Сообщение отредактировал failguru - Nov 3 2011, 13:48
Go to the top of the page
 
+Quote Post
XVR
сообщение Nov 3 2011, 14:09
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата(failguru @ Nov 3 2011, 17:36) *
Согласен полностью) но как задержку в 120нсек сделать???
Вставить пару NOP'ов

Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Nov 3 2011, 15:08
Сообщение #4


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

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



Цитата(XVR @ Nov 3 2011, 18:09) *
Вставить пару NOP'ов

Не надо NOP лучше так
Код
outr    LCD_PORT,temp;/ Выводим первый полубайт в порт
;+ И готовим второй , чтобы не ставить "тупые" NOP для задержки
swap    temp1
cbr    temp1,0x0F
cbr    temp,0xF0
cbi    LCD_Port,LCD_E;" Записываем данные в LCD


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

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

Сообщений в этой теме
- failguru   подключение lcd FDCC2004A к atmega8   Nov 1 2011, 14:09
- - SortoVaritu   Контроллер SPLCD780D?   Nov 1 2011, 14:55
- - failguru   S6A0069 самсунговский помойму, даташит даже нашел,...   Nov 1 2011, 15:11
|- - SortoVaritu   Цитата(failguru @ Nov 1 2011, 18:11) S6A0...   Nov 1 2011, 15:33
- - SortoVaritu   КодDDRD=0x00; - выставляете порт D как выход RS=0;...   Nov 1 2011, 15:26
|- - ILYAUL   Цитата(SortoVaritu @ Nov 1 2011, 19:26) К...   Nov 1 2011, 15:29
- - failguru   да, спасибо, поставил в начало функции проверки би...   Nov 1 2011, 15:55
- - ILYAUL   ЦитатаИзчезли темные квадраты!!!! ...   Nov 1 2011, 16:04
- - failguru   в //пишу символ поставил RS=1 RW=0 ну как и должно...   Nov 1 2011, 16:08
|- - ILYAUL   Цитата(failguru @ Nov 1 2011, 20:08) в //...   Nov 1 2011, 16:39
- - failguru   тоже самое   Nov 1 2011, 16:53
|- - ILYAUL   Цитата(failguru @ Nov 1 2011, 20:53) тоже...   Nov 1 2011, 17:07
- - SortoVaritu   А какой символ вообще должен высветиться... Какой ...   Nov 1 2011, 17:05
- - failguru   Да, заработало . Я убрал while(chkbf()); из функц...   Nov 1 2011, 17:15
|- - ILYAUL   Цитата(failguru @ Nov 1 2011, 21:15) Да, ...   Nov 1 2011, 17:17
- - SortoVaritu   В процедуре проверки флага думаю нужно инвертирова...   Nov 1 2011, 17:19
- - failguru   Вот код Код#include <io.h> #include ...   Nov 1 2011, 17:20
- - SortoVaritu   у вас в процедуре вывода символа Код E=1; port=s...   Nov 1 2011, 17:27
- - failguru   загвоздка была в этом Кодvoid wrcmd(int cmd...   Nov 1 2011, 17:39
- - ILYAUL   КодDDRD=0xff; это перенести в конец функции Busy в...   Nov 1 2011, 19:25
- - failguru   нет, так не катит. если перенести в конец функции ...   Nov 1 2011, 20:02
|- - ILYAUL   Цитата(failguru @ Nov 2 2011, 00:02) нет,...   Nov 1 2011, 20:09
- - XVR   У вас в чтении bsy флага ошибка. Вот тут - Код E=1...   Nov 2 2011, 11:15
- - SortoVaritu   tDH=300 ns. Может успеть прочитать))))))))))))))))...   Nov 2 2011, 12:12
- - failguru   походу успевает, раз ноль читает с портд.7)))) час...   Nov 2 2011, 20:09
- - SortoVaritu   E выставляешь в 1. делаешь задержку на время нужно...   Nov 2 2011, 20:18
- - failguru   дк я и говорю в даташите максимум 120нс. с частото...   Nov 2 2011, 20:33
|- - XVR   Цитата(failguru @ Nov 3 2011, 00:33) дк я...   Nov 3 2011, 12:52
- - failguru   Кто-нибудь знает, когда ставлю двухстрочный режим ...   Nov 3 2011, 13:16
- - SortoVaritu   На практике будет работать как вы сделали, но вооб...   Nov 3 2011, 13:23
- - SortoVaritu   А вы напишите в первую строчку символов больше чем...   Nov 3 2011, 13:50
- - failguru   она переходит в третью как и должно быть по адреса...   Nov 3 2011, 14:05
- - failguru   я в асме не очень, примерно понимаю но не все а...   Nov 3 2011, 17:39
- - XVR   Цитата(failguru @ Nov 3 2011, 21:39) я в ...   Nov 3 2011, 18:01


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

 


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


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