ЖКИ модуль на базе дисплея от Nokia 5110
16 Марта 2013
К комментариям
Очередное приобретение с ebay (и кажется самое быстрое, дошло за 16 дней):
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
Попозже оформлю код по лучше…
comments powered by Disqus