Страница 66 из 123

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт авг 02, 2013 16:52:50
dosikus
Пример о котором мы с Alex говорили находится в HI-TECH Software\PICC\STD\9.60\samples\delay
Надо всего лишь подключить хэдер и исходник и определить XTAL_FREQ.
Делов на 5 минут. :)))

А так , на xc8 все уже есть и не в пример проще.
Но вам похоже без разницы, ибо без знания языка изучать что то весьма трудно...

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт авг 02, 2013 16:55:51
Alexeyslav
Технический английский не так сложно выучить, а словари... не помогут, надо смотреть в словарях несколько значений слов, иногда нет полного аналога русского слова и перевод должен учитывать контекст, что не доступно автоматическим переводчикам хотя гугл к этому стремится при поддержке пользователей(накапливает базу переводов целыми выражениями).

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт авг 02, 2013 20:40:39
vitalik_1984
Может хватит тут компиляторы обсуждать и их некомпетентность в работе с задержками? Тут вроде тема про дисплеи с определеннным контролером. Как задержка относится к дисплею? Правильно - посредственно.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Ср авг 07, 2013 20:52:59
Mon
банальный вопрос, но всё же
пока крутил проверял БП на индикаторе вольтамперметра заметил - что пропал контраст.
попробовал подкрутить потенциометр, ничего не появилось, но подсветка начала тускло светить и моргать.
контраст тоже скачками появляется (но символы не выдаёт) --- это значит я угробил дисплей?(wh1602a-ygh-ctk)

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт авг 13, 2013 12:30:36
Gudd-Head
Mon писал(а):пока крутил проверял БП на индикаторе вольтамперметра заметил - что пропал контраст.
Вот это попробробней можно?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вт авг 13, 2013 23:38:06
Mon
Gudd-Head писал(а):
Mon писал(а):пока крутил проверял БП на индикаторе вольтамперметра заметил - что пропал контраст.
Вот это попробробней можно?
Блок питания, стабилизатор регулируемый на ЛМ317, если быть точным. С ним проблемы были, а мультиметр был подпаян к выходу БП. пока "игрался" вилкой на вкл\выкл, случилось вот такое приключение)

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 21, 2013 12:31:41
dimitriy91
Всем привет, пытаю инициализировать LCD ( аналог 44780 ), код на VHDL :
Спойлер

Код: Выделить всё

init_lcd : process
variable init : integer := 0;
variable var_lcd_e : boolean := true;
begin
wait until rising_edge(clk_load_lcd);
if var_lcd_e then
	if init = 0 then
	lcd_rs <= '0';
	lcd_data <= x"2";
	lcd_e <= '1';
	var_lcd_e := false;
	init := 1;
		elsif init = 1 then
		lcd_data <= x"0";
		lcd_e <= '1';
		var_lcd_e := false;
		init := 2;
			elsif init = 2 then
			lcd_data <= x"2";
			lcd_e <= '1';
			var_lcd_e := false;
			init := 3;
				elsif init = 3 then
				lcd_data <= x"0";
				lcd_e <= '1';
				var_lcd_e := false;
				init := 4;
					elsif init = 4 then
					lcd_data <= x"0";
					lcd_e <= '1';
					var_lcd_e := false;
					init := 5;
						elsif init = 5 then
						lcd_data <= x"1";
						lcd_e <= '1';
						var_lcd_e := false;
						init := 6;
							elsif init = 6 then
							lcd_data <= x"0";
							lcd_e <= '1';
							var_lcd_e := false;
							init := 7;
								elsif init = 7 then
								lcd_data <= x"c";
								lcd_e <= '1';
								var_lcd_e := false;
								init := 8;
									elsif init = 8 then
									lcd_rs <= '1';
									lcd_data <= x"3";
									lcd_e <= '1';
									var_lcd_e := false;
									init := 9;
										elsif init = 9 then
										lcd_data <= x"0";
										lcd_e <= '1';
										var_lcd_e := false;
										init := 10;
	end if;
else
var_lcd_e := true;
lcd_e <= '0';		
end if;
end process;
Пытаюсь включить 4 битный режим ( он припаян только верхним нибблом ) , далее пытаюсь вкл однострочный режим. И вывести "0" в DDRAM по адресу 0x00 . После включения , включаются обе строки , горят все пикселы, ноль почему то не выводится. :cry:

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 16:21:38
Teplotexnik
Здравствуйте, у меня проблема небольшая подключил дисплейчик RC1602A фирмы Raystar http://www.microchip.ua/LCD/Raystar/pdf/RC1602A.pdf к Atmega8
Изображение ,
прошивка прошла успешно. а светиться он так и не начал. все контакты прозванивал от дисплея до мк. может там питание на дисплей нужно не 5в или дополнительное питание на мк нужно подавать даже не знаю. и еще у меня остались не задействованные ножки 16 и 15 на дисплее.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 16:29:25
Alexeyslav
Настраивай контраст, у дисплея как минимум должны появится квадраты в первой строке если его никак не инициализировать. 15-16 контакты идут прямо к площадкам подсветки.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 17:04:19
Teplotexnik
Alexeyslav писал(а):Настраивай контраст, у дисплея как минимум должны появится квадраты в первой строке если его никак не инициализировать. 15-16 контакты идут прямо к площадкам подсветки.
Спасибо мил человек сопротивления 2,9кОм оказалось достаточно чтобы символы проступили. все еще не ясно что такое площадка подсветки.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 17:19:06
Alexeyslav
сбоку у индикатора есть контакты для подключения подсветки.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 17:54:01
Teplotexnik
Alexeyslav писал(а):сбоку у индикатора есть контакты для подключения подсветки.
подключил 15 к +5В 16й к земле светится.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб сен 28, 2013 20:41:32
Alexeyslav
Недолго оно у тебя будет светится от 5 вольт, однако. Ты просто издеваешься над светодиодами. Даташит читал? схему отслеживал как диоды соединены на плате от контактов до панельки с диодами? Ток через плату подсветки не превысил?

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Вс сен 29, 2013 00:31:16
Teplotexnik

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пн сен 30, 2013 19:24:33
vitalik_1984
dimitriy91 писал(а):После включения , включаются обе строки , горят все пикселы, ноль почему то не выводится. :cry:
К вам сообщение о контрасте тоже относится.Сначала можно просто подать питание и реостатом отрегулировать чтобы начали показываться символы первой строки. Далее уже можно говорить об инициализации.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 04, 2013 18:15:16
Ghost in shell
Доброго времени суток!
Пытаюсь запустить 1602 с библиотекой уважаемого Alex
Спойлер

Код: Выделить всё

// MK pic16f72
// работа с LCD
#include <pic.h>
//--------------------------------------------------------------------
volatile struct strPause			// объявление структуры strPause типа volatile
{
unsigned bPause1_1:1;		// бит на защелку задержки 01 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause2_1:1;		// бит на защелку задержки 02 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause3_1:1;		// бит на защелку задержки 03 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause4_1:1;		// бит на защелку задержки 04 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause5_1:1;		// бит на защелку задержки 05 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause6_1:1;		// бит на защелку задержки 06 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause7_1:1;		// бит на защелку задержки 07 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause8_1:1;		// бит на защелку задержки 08 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause9_1:1;		// бит на защелку задержки 09 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause10_1:1;		// бит на защелку задержки 10 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause11_1:1;		// бит на защелку задержки 11 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause12_1:1;		// бит на защелку задержки 12 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause13_1:1;		// бит на защелку задержки 13 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause14_1:1;		// бит на защелку задержки 14 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause15_1:1;		// бит на защелку задержки 15 символа в 1-й строке(1 - да, 0 - нет)
unsigned bPause16_1:1;		// бит на защелку задержки 16 символа в 1-й строке(1 - да, 0 - нет)
unsigned char varPause;		// strPause.varPause - счетчик до 10 миллисекунд
}strPause;
//--------------------------------------------------------------------
void interrupt isr(void) // обработчик прерываний
{
	if (T0IF && T0IE)  // ветка опроса флага прерывания по переполнению TMR0
	{
		T0IF = 0; 	// сброс флага прерывания по переполнению TMR0
		TMR0+= 6;	// предзагрузка TMR0
		T0IE = 1;  	// 1/0 разрешение/запрет прерывания по переполнению TMR0
		strPause.varPause++;
	}				// конец ППОП TMR0
}
//------------------------------------------------------------------
__CONFIG (XT & WDTDIS & PWRTDIS & BOREN & UNPROTECT);	// биты конфигурации программатора
//------------------------------------------------------------------
// объявление функций, используемые в файле------------------------------------------------------------------------------------------
extern void lcd_init(void);
extern void lcd_clear(void);	
extern void lcd_gotoxy(char, char);
extern void lcd_puts(char *);
extern void lcd_putch(char);
extern void lcd_cgram(char *, unsigned char); // Добавляет массив строк из arr в CGRAM, по адресу adr.
void podgot (void)	// настройки
{
GIE = 1;	// разрешены все немаскированные прерывания
// Начало настройки TMR0 ---------------------------------------------------
T0CS = 0;	// bit 5 TMR0 Выбор источника сигнала 0 - Fosc/4 (внутренний); 1 - подача на T0CKI
T0SE = 0;	// bit 4 TMR0 Выбор фронта приращения TMR0 при внешнем тактовом сигнале (0-передний фронт)
PSA  = 0;	// bit 3 Выбор включения предделителя: 0 - перед TMR0, 1 - перед WDT
PS2  = 0;	// bit 2 Настройка предделителя
PS1  = 0;	// bit 1 Настройка предделителя
PS0  = 1;	// bit 0 Настройка предделителя 
// Конец настройки TMR0 ---------------------------------------------------
}
// конец объявления функций, используемые в файле----------------------------------------------------------------------------------
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void main ()
{
podgot();	//настройки
//DelayMs(10); задержка на 10 миллисекунд
T0IE = 1;  	// 1/0 разрешение/запрет прерывания по переполнению TMR0
strPause.bPause1_1 = 1;
strPause.bPause2_1 = 0;
// (strPause.varPause >= 10)
//
T0IE = 0;  	// 1/0 разрешение/запрет прерывания по переполнению TMR0
lcd_init();			// инициализация дисплея
lcd_clear();		// очистка дисплея
strPause.varPause = 0;
//
for(;;)
{
//начало вывода 1-го символа 1-й строки-----------------------------------------------------
if(strPause.bPause1_1==1)
{
lcd_gotoxy(0,0);
lcd_putch('H');
if(strPause.varPause>9){strPause.bPause1_1 = 0; strPause.bPause1_2 = 1;}
}//конец вывода 1-го символа 1-й строки-----------------------------------------------------
//начало вывода 2-го символа 1-й строки-----------------------------------------------------
if(strPause.bPause1_2 == 1)
{
lcd_gotoxy(1,0);
lcd_putch('e');
strPause.varPause = 0;
	if(strPause.varPause>9)	{strPause.bPause1_2 = 0; strPause.bPause1_1 = 1;}
}//конец вывода 2-го символа 1-й строки-----------------------------------------------------
}// end main
//-------------------------------------------------------------------------------------------------------
Вылетает с руганью:
Error [255] D:\Work\PIC_CI\My_program\LCD\main.c; 81.70 not a member of the struct/union "strPause"
Error [182] D:\Work\PIC_CI\My_program\LCD\main.c; 81.73 illegal conversion between types
Error [255] D:\Work\PIC_CI\My_program\LCD\main.c; 84.23 not a member of the struct/union "strPause"
Error [206] D:\Work\PIC_CI\My_program\LCD\main.c; 84.27 illegal use of void expression
Error [255] D:\Work\PIC_CI\My_program\LCD\main.c; 89.45 not a member of the struct/union "strPause"
Error [182] D:\Work\PIC_CI\My_program\LCD\main.c; 89.48 illegal conversion between types
Warning [345] D:\Work\PIC_CI\My_program\LCD\main.c; 92.0 unreachable code
Error [195] D:\Work\PIC_CI\My_program\LCD\main.c; 92.0 expression syntax
Error [300] D:\Work\PIC_CI\My_program\LCD\main.c; 92.0 unexpected end of file

и какого ей недодали?!

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 04, 2013 23:29:40
Аlex
Ругается на отсутствие объявления strPause. Она у Вас объявлена неправильно.
Воть так надо:

Код: Выделить всё

volatile struct         // объявление структуры strPause типа volatile
{
............
}strPause;
а не так:

Код: Выделить всё

volatile struct strPause         // объявление структуры strPause типа volatile
{
..........
}strPause;
:)

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пт окт 04, 2013 23:59:50
urry
ну здесь хз, Леш, одновременное объявление и реализацию еще никто не запрещал...Зависит от конкретного компилятора.
То, что скобка после for(;;)пропущена, это да.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Сб окт 05, 2013 01:01:25
Аlex
одновременное объявление и реализацию еще никто не запрещал...
С одинаковыми именами ? Не знал :dont_know:

У него ошибка вообще не связана с отсутствием объявления, чёто я поспешил с ответом... :facepalm:
Ghost in shell, выложите весь проект, попробую скомпилировать. Очень трудно подсчитывать строки и искать проблему по одному тексту.

Re: Работа с ЖКИ на контроллере HD44780 и его аналогах

Добавлено: Пн окт 07, 2013 19:32:46
Ghost in shell
Alex вы правы: ликвидация двойного объявления ничего не дала.
Более того, в другой программе мой вариант объявления прекрасно работает, в т.ч. с оператором if.
Компилятор использую C:\Program Files\HI-TECH Software\PICC\std\9.60