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

 
 
> Управление ЖК
somebody111
сообщение Mar 2 2011, 14:17
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 2-03-11
Пользователь №: 63 341



Здраствуйте. Я новичок в программировании контроллеров.
Задача такая: есть PIC16F84A, есть ЖК MT-20S4A
Документация на этот ЖКтут
Программу пишу в среде microC.Передача 4 бита. В программе проходит только инициализация.После выполнения должен мигать курсор
Delay_Cyc(16) - делает задержку:подбирал по дебагеру
delay_ms(int) -задержка в мс
PB0 -ножка 0 порта B
Листинг.
Код
void _LCD_INIT(void){
/*
PB0=DB4;PB1=DB5;PB2=DB6;PB3=DB7;
PB4=A0;PB5=R/W;PB6=E;
|PB7|PB6|PB5|PB4|PB3|PB2|PB1|PB0
|XXX| E |R/W|A0 |DB7|DB6|DB5|DB4
*/
delay_ms(20);
PORTB=0b01000011;
PORTB=0b00000011;
Delay_Cyc(16);
//----------------
PORTB=0b01000011;
PORTB=0b00000011;

Delay_Cyc(16);
//----------------
PORTB=0b01000011;
PORTB=0b00000011;
Delay_Cyc(16);
//----------------
PORTB=0b01000010;
PORTB=0b00000010;
Delay_Cyc(16);
//----------------
//|PB7|PB6|PB5|PB4|PB3|PB2|PB1|PB0
//|XXX| E |R/W|A0 |DB7|DB6|DB5|DB4

PORTB=0b01000010;
PORTB=0b00000010;
Delay_Cyc(16);

PORTB=0b01000010;
PORTB=0b00000010;
Delay_Cyc(16);
//Установка параметров
PORTB=0b01000010;
PORTB=0b00000010;
PORTB=0b01001000;
PORTB=0b00001000;
delay_ms(1);
//Выключение дисплея
PORTB=0b01000000;
PORTB=0b00000000;
PORTB=0b01001111;
PORTB=0b00001111;
delay_ms(1);
//Очистка дисплея
PORTB=0b01000000;
PORTB=0b00000000;
PORTB=0b01000001;
PORTB=0b00000001;
delay_ms(1);
//Установка режима ввода данных
PORTB=0b01000000;
PORTB=0b00000000;
PORTB=0b01000110;
PORTB=0b00000110;
delay_ms(1);
}
void main()
{
TRISB = 0x00; //порт B-вывод
PORTB = 0x00;
_LCD_INIT();
while(1)
{};
}

Что я делаю не так? В порт записывают данные с документации (при этом E=1), следующей командой E устанавливаю в 0 (как понял, происходит передача первых 4 бит) ну итд...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Pavel_Bor
сообщение Mar 2 2011, 14:53
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



а сигналы RW, A0 устанавливаются правильно правильно?
Попробуйте пощупать их осцилой.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 2 2011, 14:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Нет на этом форуме более избитой темы, чем подключение очередного алфавитноцифрового LCD на HD44780 к очередному восьмибитнику sad.gif. Пожалуйста, воспользуйтесь поиском ответов на вопросы Ваших многочисленных предшественников.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
somebody111
сообщение Mar 2 2011, 15:07
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 2-03-11
Пользователь №: 63 341



Цитата(Pavel_Bor @ Mar 2 2011, 17:53) *
а сигналы RW, A0 устанавливаются правильно правильно?
Попробуйте пощупать их осцилой.

По даташиту, он в 0 постоянно при инициализации
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:10
Рейтинг@Mail.ru


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