Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Управление ЖК
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
somebody111
Здраствуйте. Я новичок в программировании контроллеров.
Задача такая: есть 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 бит) ну итд...
Pavel_Bor
а сигналы RW, A0 устанавливаются правильно правильно?
Попробуйте пощупать их осцилой.
zltigo
Нет на этом форуме более избитой темы, чем подключение очередного алфавитноцифрового LCD на HD44780 к очередному восьмибитнику sad.gif. Пожалуйста, воспользуйтесь поиском ответов на вопросы Ваших многочисленных предшественников.

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

По даташиту, он в 0 постоянно при инициализации
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.