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

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Пройтись по цифрам переменной и вывести соответствующие символы.
Реклама
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

Можно, пожалуйста, элементарный пример?
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

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

printf("%f", (readADC(0)*2.56*(15/2.56)/1023) );
:)
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Одно использование printf - и программа вырастает на килобайт.
Я не люблю stdlib в применении с микроконтроллерами.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

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

Сообщение Аlex »

А строка tantrum'а чем то отличается от моей ? :)
Какой, собственно, вопрос, такой и ответ :)
Реклама
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

Не получается вывести :o
В интернете уже много примеров перепробовал - у меня ничего не выводит на LCD. :(
Командой printf у меня ничего не выводит вообще :(

Думаю, все дело в библиотеке, т.к. по написанию команды отличаются.
Вот моя (с которой у меня получилось хоть что-то вывести на дисплей):

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

#ifndef LCD_LIB
#define LCD_LIB

#include <inttypes.h>
//Uncomment this if LCD 4 bit interface is used
//******************************************
#define LCD_4bit
//***********************************************

#define LCD_RS	0 	//define MCU pin connected to LCD RS
#define LCD_RW	1 	//define MCU pin connected to LCD R/W
#define LCD_E	2	//define MCU pin connected to LCD E
#define LCD_D4	4	//define MCU pin connected to LCD D3
#define LCD_D5	5	//define MCU pin connected to LCD D4
#define LCD_D6	6	//define MCU pin connected to LCD D5
#define LCD_D7	7	//define MCU pin connected to LCD D6
#define LDP PORTD	//define MCU port connected to LCD data pins
#define LCP PORTD	//define MCU port connected to LCD control pins
#define LDDR DDRD	//define MCU direction register for port connected to LCD data pins
#define LCDR DDRD	//define MCU direction register for port connected to LCD control pins

#define LCD_CLR             0	//DB0: clear display
#define LCD_HOME            1	//DB1: return to home position
#define LCD_ENTRY_MODE      2	//DB2: set entry mode
#define LCD_ENTRY_INC       1	//DB1: increment
#define LCD_ENTRY_SHIFT     0	//DB2: shift
#define LCD_ON_CTRL         3	//DB3: turn lcd/cursor on
#define LCD_ON_DISPLAY      2	//DB2: turn display on
#define LCD_ON_CURSOR       1	//DB1: turn cursor on
#define LCD_ON_BLINK        0	//DB0: blinking cursor
#define LCD_MOVE            4	//DB4: move cursor/display
#define LCD_MOVE_DISP       3	//DB3: move display (0-> move cursor)
#define LCD_MOVE_RIGHT      2	//DB2: move right (0-> left)
#define LCD_FUNCTION        5	//DB5: function set
#define LCD_FUNCTION_8BIT   4	//DB4: set 8BIT mode (0->4BIT mode)
#define LCD_FUNCTION_2LINES 3	//DB3: two lines (0->one line)
#define LCD_FUNCTION_10DOTS 2	//DB2: 5x10 font (0->5x7 font)
#define LCD_CGRAM           6	//DB6: set CG RAM address
#define LCD_DDRAM           7	//DB7: set DD RAM address
// reading:
#define LCD_BUSY            7	//DB7: LCD is busy
#define LCD_LINES			2	//visible lines
#define LCD_LINE_LENGTH		16	//line length (in characters)
// cursor position to DDRAM mapping
#define LCD_LINE0_DDRAMADDR		0x00
#define LCD_LINE1_DDRAMADDR		0x40
#define LCD_LINE2_DDRAMADDR		0x14
#define LCD_LINE3_DDRAMADDR		0x54
// progress bar defines
#define PROGRESSPIXELS_PER_CHAR	6


void lcd_dat(uint8_t);		//forms data ready to send to 74HC164
void lcd_com(uint8_t);	//forms data ready to send to 74HC164
void lcd_init(void);			//Initializes LCD
void lcd_clr(void);				//Clears LCD
void lcd_home(void);			//LCD cursor home
void lcd_string(uint8_t*, uint8_t);	//Outputs string to LCD
void lcd_gotoxy(uint8_t, uint8_t);	//Cursor to X Y position
void copy_string_to_lcd(const uint8_t*, uint8_t, uint8_t);//copies flash string to LCD at x,y
void lcd_definechar(const uint8_t *,uint8_t);//write char to LCD CGRAM 
void lcd_shift_right(uint8_t);	//shift by n characters Right
void lcd_shift_left(uint8_t);	//shift by n characters Left
void lcd_cursor_on(void);		//Underline cursor ON
void lcd_cursor_blink(void);	//Underline blinking cursor ON
void lcd_cursor_off(void);		//Cursor OFF
void lcd_blank(void);			//LCD blank but not cleared
void lcd_visible(void);			//LCD visible
void lcd_cursor_left(uint8_t);	//Shift cursor left by n
void lcd_cursor_right(uint8_t);	//shif cursor right by n
void lcd_progress_bar(uint8_t progress, uint8_t maxprogress, uint8_t length);

#endif
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

Я же вам давал ссылку, еще и благодарили... пользуйтесь printf в полном объёме!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

Так вы мне давали пример просто вывода текста, я же подумал, что она заработает у меня, поэтому и благодарил :))
Но оказывается моя библиотека не знает, что такое printf.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Да разбейте вы число на цифры (деление на 10) и выведите их посимвольно. Напишите свою функцию для этого. Тот же (s)printf делает ровно то же, только он сильно навороченный для этой мелкой функции, и его использование кушает много flash-памяти.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

В какой-то соседней теме уже разжовывали этот алгоритм. Вычитаем сотни пока число не станет меньше 100 - в результате получаем количество сотен, потом вычитаем 10 пока число не станет меньше 10 - получаем количество десятков... ну и в остатке остается количество единиц. Всё очень просто.
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

Та блин я уже не знаю что делать, в библиотеке нифига нет, никаких команд. И как тут вывести что-либо....
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

А они должны быть? тебе уже говорили вроде бы про printf - если надо все и сразу - пользуйся, если не устраивает напиши свою и поделись с народом.
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

tantrum писал(а):Но оказывается моя библиотека не знает, что такое printf.
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

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

Сообщение Alexeyslav »

Так используй ту что знает, либо дописывай свои функции(что более выгодно в перспективе).
Аватара пользователя
tantrum
Мучитель микросхем
Сообщения: 447
Зарегистрирован: Сб фев 09, 2013 11:39:13
Откуда: Украина, Марганец

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

Сообщение tantrum »

Alexeyslav писал(а):Так используй ту что знает
Нашел.
Neptyn
Родился
Сообщения: 15
Зарегистрирован: Чт июл 21, 2011 09:58:24

Библиотека LCD AVR Studio6.2

Сообщение Neptyn »

Подскажите, пожалуйста, библиотеку под шестую студию для LCD с контроллером KS0066U.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: Библиотека LCD AVR Studio6.2

Сообщение ARV »

в приложениях к статье
http://www.simple-devices.ru/articles/7 ... -interface
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Neptyn
Родился
Сообщения: 15
Зарегистрирован: Чт июл 21, 2011 09:58:24

Re: Библиотека LCD AVR Studio6.2

Сообщение Neptyn »

К сожалению эта библиотека в шестой студии не компилируется :cry: ...
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

Re: Библиотека LCD AVR Studio6.2

Сообщение oleg110592 »

а пример от самого производителя из документации на компилятор попробовать: ..\doc\avr-libc\avr-libc-user-manual\group__stdiodemo.html
взять тут можно http://www.nongnu.org/avr-libc/examples/stdiodemo/
upd проверил - отлично работает:
Изображение
Neptyn
Родился
Сообщения: 15
Зарегистрирован: Чт июл 21, 2011 09:58:24

Re: Библиотека LCD AVR Studio6.2

Сообщение Neptyn »

Спасибо. :))
А нет ли у вас готового проекта?
Ответить

Вернуться в «Периферия»