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

 
 
> Сорри но опять инициализация LCD, Не получается запустить LCD основаный на HD44780
John23
сообщение Jan 23 2008, 13:43
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 15
Регистрация: 17-01-08
Пользователь №: 34 156



Здравствуйте!
Понимаю что до дыр затёртая тема, но всё же прочитав подобные темы не смог применить к своей инициализации. У меня Atmega 128, с ней портом С подсоединён двустрочный LCD основаный на HD44780. Провожу всеми описываемую инициализацию, но результата нет.
Если не сильно надоело отвечать на подобные вопросы подскажите пожалуйста как быть.
Имеется вот такой вот примитивчик инициализации...

Код
void delay_ms(unsigned short ms)
   {
        unsigned short outer1, outer2;
        outer1 = 200;
        while (outer1) {
                outer2 = 1000;
                while (outer2) {
                        while ( ms ) ms--;
                        outer2--;
                }
                outer1--;
        }
   }
//-------------------------------------------------------------------------------------
//инициализация дисплея
//-------------------------------------------------------------------------------------
//VLED - PC0
//RS   - PC1
//R/W  - PC2
//E    - PC3
//DB4..DB7 - PC4..PC7
//N  - line number (2)
//F  - font type (5x8)
//DL - data length (4 bit)
//D  - display
//C  - cursor
//B  - blink

void Write_8Bit(int value, int pause)
{
  PORTC=value;
  sbi(PORTC,3);
  cbi(PORTC,3);
  PORTC=0xF1;/установить DB4-DB7 в HI
  delay_ms(pause);  
}

void Write_4Bit(int hi, int low, int pause)
{
  PORTC=hi;//старший полубайт
  sbi(PORTC,3);
  cbi(PORTC,3);
  PORTC=low;//младший полубайт
  sbi(PORTC,3);
  cbi(PORTC,3);  
  PORTC=0xF1;//установить DB4-DB7 в HI
  delay_ms(pause);  
  }

void disp_init(void)
{
   DDRC=0xFF;// порт С на выход
  PORTC=0x01;// включить питание
  delay_ms(40);  //пауза после включения питания

for(int c=0; c<3; c++) //3 раза устанавливается 8 битный режим
{
  Write_8Bit(0x31, 40);
}

  Write_4Bit(0x21,0x01,40); // переход в 4 битный режим
  Write_4Bit(0x21,0x81,40); //переход в 4 битный режим, повтор
  Write_4Bit(0x01,0x81,40); //выключить дисплей
  Write_4Bit(0x01,0x61,40); //установить направление сдвига курсора
  Write_4Bit(0x01,0xF1,40); //включить индикатор и разрешить курсор, установить его тип
  Write_4Bit(0x01,0x11,40); //очистить индикатор и курсор домой
}

На дисплее ничего не происходит , кроме того что он светится при подаче на него питания. При посылке битов всегда добавляю 1 для того чтобы питание не пропало, потому как оно физически подсоеденено к PC0. Подскажите что у меня не так.
Заранее спасибо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- John23   Сорри но опять инициализация LCD   Jan 23 2008, 13:43
- - Сергей Борщ   Цитата(John23 @ Jan 23 2008, 15:43) Подск...   Jan 23 2008, 14:19
- - Freeze Anti   Сейчас не помню уже, но функцию Write_8Bit(0x31, 4...   Jan 23 2008, 17:36
|- - Qwertty   Цитата(Freeze Anti @ Jan 23 2008, 20:36) ...   Jan 23 2008, 17:56
- - Freeze Anti   Что-то я тут не понял... функция void disp_init(vo...   Jan 23 2008, 18:12
- - Kirill Frolov   Цитата(John23 @ Jan 23 2008, 16:43) приме...   Jan 23 2008, 20:05
- - Qwertty   И еще что заметил - первый переход в 4 битный режи...   Jan 23 2008, 21:33
- - John23   Здравствуйте попытаюсь оправдаться. Пользовался ре...   Jan 24 2008, 08:07
|- - aesok   Цитата(John23 @ Jan 24 2008, 11:07) Я так...   Jan 24 2008, 08:16
|- - Kirill Frolov   Цитата(John23 @ Jan 24 2008, 11:07) Здрав...   Jan 24 2008, 18:20
- - smk   ЦитатаЯ так понимаю нужно для начала найти цивилиз...   Jan 24 2008, 08:25
- - John23   Цитата(aesok @ Jan 24 2008, 12:16) Скачай...   Jan 24 2008, 09:14
|- - Qwertty   Цитата(John23 @ Jan 24 2008, 12:14) Я вид...   Jan 24 2008, 10:59
- - John23   Не стал заморачиваться с неработающим у меня WinAv...   Jan 24 2008, 14:02
- - Freeze Anti   Да не... на инициализацию дисплея можно и delay по...   Jan 24 2008, 19:11
- - John23   Спасибо, поэксперементирую ещё. Надо же его всё та...   Jan 25 2008, 06:47
- - hd44780   Возьми LCD модуль из avrLib, попробуй. У меня 3 ра...   Jan 25 2008, 07:55
- - smk   ЦитатаНе стал заморачиваться с неработающим у меня...   Jan 25 2008, 21:06
- - John23   Доброго времени суток! ЦитатаПопробуйте эти би...   Jan 29 2008, 08:30
- - John23   Уважаемые знатоки, благодарю за помощь, проблема р...   Jan 29 2008, 14:20
- - Pyku_He_oTTyda   Даже когда индикатор не инициализирован, его полов...   Jan 29 2008, 15:12
- - John23   Здравствуйте. ЦитатаДаже когда индикатор не иници...   Jan 31 2008, 09:13
- - Pyku_He_oTTyda   я не дока в индикаторах, но когда первый раз подкл...   Jan 31 2008, 09:43
- - John23   Да уж, я даже не догадывался что для маленького ди...   Jan 31 2008, 10:03
- - j_serg   Уважаемый John23. За AVR и С я взялся буквально ме...   Jan 31 2008, 10:14
- - John23   Спасибо за совет , всегда рад здравым мыслям. Ко...   Jan 31 2008, 11:41
- - j_serg   Цитата(John23 @ Jan 31 2008, 14:41) Спаси...   Feb 1 2008, 11:02


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

 


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


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