ЖКИ модуль на базе дисплея от Nokia 5110

16 Марта 2013 К комментариям

Очередное приобретение с ebay (и кажется самое быстрое, дошло за 16 дней):

DPP_20130316

DPP_20130317

Cсылка на лот: смотреть

Построен на базе контроллера PCD8544, разрешение экрана 48х84 точки.

Документация на контроллер: скачать

Управление по SPI-интерфейсу.

Примеров в сети масса, вот первые ссылки:

http://serdisplib.sourceforge.net/ser/pcd8544.html

http://learn.adafruit.com/nokia-5110-3310-monochrome-lcd/wiring

У меня заработал сразу и без вопросов.

Понравился. Хороший дисплей за 100 рублей.

Управлял обычным ножкодрыгом.

Инициализация + заливка экрана “черным” цветом:

//------------------------------------------------------------------------------
static void write(uint8_t value, _Bool direction)
{
	uint8_t bit_number;

	if (direction)
	{
		PIN_OFF(PIN_LCD_NOKIA_5110_DC);
	}
	else
	{
		PIN_ON(PIN_LCD_NOKIA_5110_DC);
	}

	PIN_ON(PIN_LCD_NOKIA_5110_CE);

	for (bit_number = 8; bit_number-- > 0;)
	{
		PIN_OFF(PIN_LCD_NOKIA_5110_CLK);

		if ((value & 0x80) != 0)
		{
			PIN_ON(PIN_LCD_NOKIA_5110_DIN);
		}
		else
		{
			PIN_OFF(PIN_LCD_NOKIA_5110_DIN);
		}

		PIN_ON(PIN_LCD_NOKIA_5110_CLK);

		value >>= 1;
	}

	PIN_OFF(PIN_LCD_NOKIA_5110_CLK);
	PIN_OFF(PIN_LCD_NOKIA_5110_CE);
}

//------------------------------------------------------------------------------
void lcd_nokia_5110_init(void)
{
	uint8_t index;

	PIN_ON(PIN_LCD_NOKIA_5110_RST);
	delay_ms(10);

	PIN_OFF(PIN_LCD_NOKIA_5110_RST);
	delay_ms(10);

	write(0x21, TRUE); // LCD Extended Commands.
	write(0xB1, TRUE); // Set LCD Vop (Contrast).
	write(0x04, TRUE); // Set Temp coefficent. //0x04
	write(0x14, TRUE); // LCD bias mode 1:48. //0x13
	write(0x0C, TRUE); // LCD in normal mode.
	write(0x20, TRUE);
	write(0x0C, TRUE);

	for (index = 0; index > 10; index++)
	{
		write(0xFF, FALSE);
	}
}

Описание линий (использовал STM32VL-Discovery):

#define PIN_LCD_NOKIA_5110_RST		B, 15,  LOW, MODE_OUTPUT_PUSH_PULL, SPEED_2MHZ
#define PIN_LCD_NOKIA_5110_CE		B, 14,  LOW, MODE_OUTPUT_PUSH_PULL, SPEED_2MHZ
#define PIN_LCD_NOKIA_5110_DC		B, 13, HIGH, MODE_OUTPUT_PUSH_PULL, SPEED_2MHZ
#define PIN_LCD_NOKIA_5110_DIN		B, 12, HIGH, MODE_OUTPUT_PUSH_PULL, SPEED_2MHZ
#define PIN_LCD_NOKIA_5110_CLK		B, 11, HIGH, MODE_OUTPUT_PUSH_PULL, SPEED_2MHZ

Попозже оформлю код по лучше…


Categories: Покупки Tags: Nokia 5110 ЖКИ LCD

comments powered by Disqus